├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── event_driven_weather_forecast.png ├── plot_ufs_phyf_tmp2m.gif ├── plot_ufs_phyf_tprcp.gif └── src ├── .gitignore ├── app.py ├── cdk.json ├── lambda ├── cluster.py ├── forecast.py ├── hpc6a.yaml └── jobs │ ├── fini.sh │ ├── post.sh │ ├── pre.sh │ └── run.sh ├── requirements-dev.txt ├── requirements.txt ├── resources ├── get_fix.sh ├── parallelcluster-api.yaml ├── post_install_headnode.sh ├── run │ ├── .gitignore │ ├── INPUT │ │ ├── mosaic.nc │ │ ├── oro_data.tile1.nc │ │ ├── oro_data.tile2.nc │ │ ├── oro_data.tile3.nc │ │ ├── oro_data.tile4.nc │ │ ├── oro_data.tile5.nc │ │ └── oro_data.tile6.nc │ ├── RESTART │ │ └── .nothing │ ├── aerosol.dat │ ├── data_table │ ├── diag_table │ ├── field_table │ ├── fort.41.in │ ├── get_gfs │ ├── global_h2oprdlos.f77 │ ├── global_o3prdlos.f77 │ ├── input.nml │ ├── model_configure.in │ ├── nems.configure │ ├── post │ │ ├── 00 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ ├── 01 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ ├── 02 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ ├── 03 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ ├── 04 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ ├── 05 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ │ └── 06 │ │ │ ├── itag │ │ │ ├── params_grib2_tbl_new │ │ │ └── postxconfig-NT.txt │ ├── seaice_newland.grb │ ├── sfc_emissivity_idx.txt │ ├── solarconstant_noaa_an.txt │ └── suite_FV3_GFS_v15p2.xml ├── spack-external-packages.yaml ├── ufs-image-config.yaml └── ufs-spack-component.yaml └── wx ├── __init__.py ├── bucket.py ├── cluster.py ├── forecast.py ├── network.py ├── pclusterapi.py ├── root.py └── slurmdb.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | package-lock.json 3 | __pycache__ 4 | .pytest_cache 5 | .venv 6 | *.egg-info 7 | 8 | # CDK asset staging directory 9 | .cdk.staging 10 | cdk.out 11 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional 4 | documentation, we greatly value feedback and contributions from our community. 5 | 6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary 7 | information to effectively respond to your bug report or contribution. 8 | 9 | 10 | ## Reporting Bugs/Feature Requests 11 | 12 | We welcome you to use the GitHub issue tracker to report bugs or suggest features. 13 | 14 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already 15 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: 16 | 17 | * A reproducible test case or series of steps 18 | * The version of our code being used 19 | * Any modifications you've made relevant to the bug 20 | * Anything unusual about your environment or deployment 21 | 22 | 23 | ## Contributing via Pull Requests 24 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: 25 | 26 | 1. You are working against the latest source on the *main* branch. 27 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 28 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. 29 | 30 | To send us a pull request, please: 31 | 32 | 1. Fork the repository. 33 | 2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. 34 | 3. Ensure local tests pass. 35 | 4. Commit to your fork using clear commit messages. 36 | 5. Send us a pull request, answering any default questions in the pull request interface. 37 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. 38 | 39 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and 40 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 41 | 42 | 43 | ## Finding contributions to work on 44 | Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start. 45 | 46 | 47 | ## Code of Conduct 48 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 49 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 50 | opensource-codeofconduct@amazon.com with any additional questions or comments. 51 | 52 | 53 | ## Security issue notifications 54 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. 55 | 56 | 57 | ## Licensing 58 | 59 | See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. 60 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 11 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 12 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Event Driven Weather Forecasts 2 | 3 | ![Overview image](./event_driven_weather_forecast.png) 4 | 5 | A fully automated cloud-native event driven weather forecasting. 6 | 7 | ## FV3GFS Forecast 8 | 9 | The Unified Forecast System (UFS) atmospheric model is FV3GFS. The UFS is a community-based, coupled, comprehensive Earth modeling system. 10 | The UFS numerical applications span local to global domains and predictive time scales from sub-hourly analyses to seasonal predictions. 11 | It is designed to support the Weather Enterprise and to be the source system for NOAA‘s operational numerical weather prediction applications. 12 | The UFS Weather Model (WM) is a prognostic model that can be used for short- and medium-range research and operational forecasts, as exemplified by 13 | its use in the operational Global Forecast System (GFS) of the National Oceanic and Atmospheric Administration (NOAA). 14 | 15 | We are running the FV3GFS for a 6 hour global forecast at a resolution of approximately 13 km (C768). 16 | 17 | The forecast consists of the following steps: 18 | 19 | 1. Preprocessing the input data with `chgres_cube` (~ 3:30 minutes on 20 instances). 20 | 2. Model forecast with `ufs_weather_model` (~ 7:30 minutes on 20 instances). 21 | 3. Post processing with `upp.x` (~ 13:00minutes on 7 instances). 22 | 23 | ![Total precipitation](plot_ufs_phyf_tprcp.gif) 24 | ![2 M Temperature](plot_ufs_phyf_tmp2m.gif) 25 | 26 | 27 | ## Installation 28 | 29 | Install the AWS CDK application and the python library. 30 | 31 | ``` 32 | npm install -g aws-cdk 33 | cd src/ 34 | python3 -m venv .venv 35 | . .venv/bin/activate 36 | pip install -r requirements.txt 37 | ``` 38 | 39 | ## Deploying 40 | 41 | Create a lambda layer that contains `requests` and `pyyaml`. 42 | ``` 43 | mkdir layer && cd $_ 44 | pip install requests pyyaml -t python/ 45 | zip -r ../layer.zip python 46 | cd .. 47 | ``` 48 | 49 | Download the fix/static files from NOAA. Note, this will take awhile as it 50 | will download ~ 2 Gigabytes. 51 | ``` 52 | cd resources 53 | ./get_fix.sh 54 | cd .. 55 | ``` 56 | 57 | Then deploy the CDK stack. Note: you must specify a bucket where you want the 58 | forecast output uploaded to, in the following example I am using 59 | `my-bucket-name`. 60 | 61 | ``` 62 | cdk bootstrap 63 | cdk deploy --parameters BucketName=my-bucket-name 64 | ``` 65 | 66 | ## Cleanup 67 | 68 | To completely tear down all infrastructure when it is not needed. 69 | 70 | ``` 71 | cdk destroy --all 72 | ``` 73 | 74 | ## Repository Layout 75 | 76 | All the source code lives under `src`, the main entry point for the CDK application is `app.py`. 77 | 78 | ``` 79 | . 80 | ├── README.md 81 | └── src 82 | ├── app.py 83 | ├── cdk.json 84 | ├── lambda 85 | │   ├── cluster.py 86 | │   ├── forecast.py 87 | │   ├── hpc6a.yaml 88 | │   └── jobs 89 | │   ├── fini.sh 90 | │   ├── post.sh 91 | │   ├── pre.sh 92 | │   └── run.sh 93 | ├── layer.zip 94 | ├── layers 95 | ├── requirements-dev.txt 96 | ├── requirements.txt 97 | ├── resources 98 | │   ├── parallelcluster-api.yaml 99 | │   ├── post_install_headnode.sh 100 | │   ├── spack-external-packages.yaml 101 | │   ├── ufs-image-config.yaml 102 | │   └── ufs-spack-component.yaml 103 | └── wx 104 | ├── bucket.py 105 | ├── forecast.py 106 | ├── network.py 107 | ├── pclusterapi.py 108 | └── slurmdb.py 109 | ``` 110 | ### Lambda 111 | 112 | The cluster creation and deletion functions are within the `lambda/cluster.py` file, with the ParallelCluster configuration file is `lambda/hpc6a.yaml`. 113 | 114 | The forecast job submission functions are within the `lambda/forecast.py` file. 115 | 116 | ### S3 Bucket 117 | 118 | The S3 bucket contains all the run directory, outputs, and templates used. The top-level bucket structure is as follows: 119 | 120 | ``` 121 | └──my-bucket-name 122 | └── outputs 123 | ``` 124 | 125 | The `outputs` directory contain prefixes related to the forecast valid time (`%Y/%m/%d/%H`). 126 | 127 | ### Slurm 128 | 129 | The Slurm jobs are submitted through the [Slurm REST API](https://slurm.schedmd.com/rest.html) with inter job dependencies. The job run scripts are within the `lambda/jobs` directory and are: 130 | 131 | 1. `pre` -- [UFS Utils](https://github.com/ufs-community/UFS_UTILS) `chgres_cube`. 132 | 2. `run` -- [UFS Weather Model](https://github.com/ufs-community/ufs-weather-model/) `ufs_weather_model`. 133 | 3. `post` -- [UPP](https://github.com/NOAA-EMC/UPP) `upp.x`. 134 | 4. `fini` -- Uploads a sentinel file to Amazon S3. 135 | 136 | ## Custom EC2 Image. 137 | 138 | We are going to create a custom ParallelCluster EC2. In doing so we will install the following packages with [Spack](https://github.com/spack/spack). 139 | 140 | * [Intel OneAPI Compilers](https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html) 141 | * [Intel OneAPI MPI Libraries](https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html) 142 | * [UFS Weather Model](https://ufs-weather-model.readthedocs.io/en/latest/) 143 | * [UFS Utilities](https://noaa-emcufs-utils.readthedocs.io/en/latest/ufs_utils.html) 144 | * [Unified Post Processor](https://dtcenter.org/community-code/unified-post-processor-upp) 145 | 146 | A custom component to install these packages exists in `src/resources/ufs-spack-component.yaml`. 147 | This needs to be deployed to a bucket, that exists. Which means we need to 148 | create it before creating the image and before deploying the stack. In this 149 | example, we are calling our bucket `my-templates-bucket` and our account 150 | number is `987654321`. 151 | 152 | ``` 153 | aws s3api create-bucket --acl private --bucket my-templates-bucket --region us-east-2 --create-bucket-configuration LocationConstraint=us-east-2 154 | sed -i 's/aws-weather-bucket/my-templates-bucket/' src/resources/ufs-spack-component.yaml 155 | sed -i 's/123456789/987654321/' src/resources/ufs-image-config.yaml 156 | aws s3 cp src/resources/ufs-spack-component.yaml s3://my-templates-bucket/templates/ 157 | ``` 158 | Once deployed we need to register it with EC2 ImageBuilder. 159 | ``` 160 | aws imagebuilder create-component --name ufs-spack --semantic-version "1.0.0" \ 161 | --change-description "Inital version" --platform "Linux" \ 162 | --uri "s3://my-templates-bucket/templates/ufs-spack-component.yaml" 163 | ``` 164 | 165 | Build the new image 166 | ``` 167 | cd src/resources 168 | pcluster build-image --image-configuration ufs-image-config.yaml --image-id alinux2-ufs-image 169 | ``` 170 | 171 | Once the image is built, get the AMI identification number and add this to the ParallelCluster configuration file. 172 | ``` 173 | export AMI=$(pcluster list-images --image-status AVAILABLE | jq -r '.[][] | select(.imageId=="alinux2-ufs-image") | .ec2AmiInfo.amiId') 174 | yq e '.Image.CustomAmi = env(AMI)' -i ../lambda/hpc6a.yaml 175 | ``` 176 | 177 | ## License 178 | This code is licensed under the MIT-0 License. See the LICENSE file. 179 | -------------------------------------------------------------------------------- /event_driven_weather_forecast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/event_driven_weather_forecast.png -------------------------------------------------------------------------------- /plot_ufs_phyf_tmp2m.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/plot_ufs_phyf_tmp2m.gif -------------------------------------------------------------------------------- /plot_ufs_phyf_tprcp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/plot_ufs_phyf_tprcp.gif -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | layer 2 | layer.zip 3 | 4 | -------------------------------------------------------------------------------- /src/app.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import aws_cdk as cdk 4 | 5 | from wx.root import Root 6 | 7 | app = cdk.App() 8 | 9 | wx = Root(app, 'WX') 10 | cdk.Tags.of(wx).add("Purpose", "Event Driven Weather Forecast", priority=300) 11 | 12 | app.synth() 13 | -------------------------------------------------------------------------------- /src/cdk.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "python3 app.py", 3 | "watch": { 4 | "include": [ 5 | "**" 6 | ], 7 | "exclude": [ 8 | "README.md", 9 | "cdk*.json", 10 | "requirements*.txt", 11 | "source.bat", 12 | "**/__init__.py", 13 | "python/__pycache__", 14 | "tests" 15 | ] 16 | }, 17 | "context": { 18 | "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, 19 | "@aws-cdk/core:stackRelativeExports": true, 20 | "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, 21 | "@aws-cdk/aws-lambda:recognizeVersionProps": true, 22 | "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, 23 | "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, 24 | "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, 25 | "@aws-cdk/aws-iam:minimizePolicies": true, 26 | "@aws-cdk/core:target-partitions": [ 27 | "aws", 28 | "aws-cn" 29 | ] 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/lambda/cluster.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | import datetime as dt 5 | import os 6 | import re 7 | 8 | import boto3 9 | import botocore 10 | import json 11 | import requests 12 | import yaml 13 | 14 | baseurl = os.getenv("PCLUSTER_API_URL") 15 | cluster_name = os.getenv("CLUSTER_NAME", "wx-pcluster") 16 | region = os.getenv("REGION", "us-east-2") 17 | path = f"{baseurl}/v3/clusters" 18 | 19 | def gateway(url, method, data): 20 | 21 | req_call = { 22 | "POST": requests.post, 23 | "GET": requests.get, 24 | "PUT": requests.put, 25 | "PATCH": requests.patch, 26 | "DELETE": requests.delete, 27 | }.get(method) 28 | 29 | print(f"url: {url}") 30 | session = botocore.session.Session() 31 | request = botocore.awsrequest.AWSRequest(method=method, url=url, data=data) 32 | botocore.auth.SigV4Auth(session.get_credentials(), "execute-api", region).add_auth(request) 33 | boto_request = request.prepare() 34 | boto_request.headers["content-type"] = "application/json" 35 | response = req_call(url, data=data, headers=boto_request.headers, timeout=30) 36 | code = response.status_code 37 | print(f"Response code: {code}") 38 | return response.json() 39 | 40 | def destroy(event, context): 41 | print(event) 42 | 43 | c = boto3.client("iam") 44 | roles = c.list_roles() 45 | for role in roles["Roles"]: 46 | n = role["RoleName"] 47 | if n.startswith(f"{cluster_name}-Role") and not n.startswith(f"{cluster_name}-RoleHeadNode"): 48 | policies = c.list_attached_role_policies(RoleName=n) 49 | for policy in policies["AttachedPolicies"]: 50 | c.detach_role_policy(RoleName=n, PolicyArn=policy["PolicyArn"]) 51 | 52 | params = {"region": region} 53 | data = json.dumps({"clusterName": cluster_name}) 54 | method = "DELETE" 55 | url = f"{path}/{cluster_name}?region={region}" 56 | print(gateway(url, method, data)) 57 | 58 | def create(event, context): 59 | 60 | msg = json.loads(event["Records"][0]["Sns"]["Message"]) 61 | key = msg["Records"][0]["s3"]["object"]["key"] 62 | p = re.compile(r""" 63 | gfs. # GFS prefix 64 | (?P\d{4}) # Year 65 | (?P\d{2}) # Month 66 | (?P\d{2}) # Day 67 | /(?P\d{2}) # Hour 68 | /atmos # Atmospheric components 69 | /gfs.t(?P=h)z.atmanl.nc # Filename 70 | """, 71 | re.VERBOSE) 72 | m = p.match(key) 73 | if not m: 74 | return 75 | 76 | print(key) 77 | ftime = f"{m.group('y')}-{m.group('m')}-{m.group('d')}T{m.group('h')}:00:00Z" 78 | 79 | sfn = boto3.client('stepfunctions') 80 | sfn.start_execution( 81 | stateMachineArn=os.getenv("SM_ARN") 82 | ) 83 | 84 | with open("hpc6a.yaml", "r") as cf: 85 | config_data = yaml.safe_load(cf) 86 | 87 | config_data["Region"] = region 88 | config_data["HeadNode"]["Networking"]["SubnetId"] = os.getenv("SUBNETID") 89 | config_data["HeadNode"]["Networking"]["AdditionalSecurityGroups"][0] = os.getenv("SG") 90 | config_data["Scheduling"]["SlurmQueues"][0]["Networking"]["SubnetIds"][0] = os.getenv("SUBNETID") 91 | config_data["Scheduling"]["SlurmQueues"][0]["Iam"]["S3Access"][0]["BucketName"] = os.getenv("BUCKET_NAME") 92 | 93 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Script"] = os.getenv("S3_URL_POST_INSTALL_HEADNODE") 94 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Args"][0] = region 95 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Args"][1] = os.getenv("SNS_TOPIC") 96 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Args"][2] = ftime 97 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Args"][3] = os.getenv("JWTKEY") 98 | config_data["HeadNode"]["CustomActions"]["OnNodeConfigured"]["Args"][4] = os.getenv("FORECAST_TMPL") 99 | 100 | method = "POST" 101 | data = json.dumps({"clusterConfiguration": yaml.dump(config_data, default_flow_style=False), 102 | "clusterName": cluster_name}) 103 | print(data) 104 | print(gateway(url, method, data)) 105 | 106 | -------------------------------------------------------------------------------- /src/lambda/forecast.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from functools import lru_cache 5 | import os 6 | 7 | import boto3 8 | import botocore 9 | import json 10 | import requests 11 | 12 | region = os.getenv("AWS_REGION") 13 | ip = "127.0.0.1" 14 | bucket = os.getenv("BUCKET_NAME") 15 | output = f"s3://{bucket}/outputs/${{y}}/${{m}}/${{d}}/${{h}}/" 16 | template = { 17 | "job": { 18 | "name":"", 19 | "nodes":1, 20 | "cpus_per_task": 4, 21 | "tasks_per_node": 24, 22 | "current_working_directory":"/fsx/run", 23 | "environment":{ 24 | "PATH":"/bin:/usr/bin/:/usr/local/bin/", 25 | "LD_LIBRARY_PATH":"/lib/:/lib64/:/usr/local/lib" 26 | }, 27 | "requeue": "false" 28 | }, 29 | "script": "" 30 | } 31 | 32 | @lru_cache 33 | def token(): 34 | session = boto3.session.Session() 35 | sm = session.client('secretsmanager') 36 | secret = sm.get_secret_value(SecretId="JWTKey") 37 | return secret['SecretString'] 38 | 39 | @lru_cache 40 | def headers(): 41 | return { 42 | "X-SLURM-USER-NAME": "ec2-user", 43 | "X-SLURM-USER-TOKEN": token(), 44 | "content-type": "application/json", 45 | } 46 | 47 | def submit(data): 48 | global ip 49 | url = f"http://{ip}:8080/slurm/v0.0.37/job/submit" 50 | resp = requests.post(url, data=json.dumps(data), headers=headers()) 51 | jid = resp.json()["job_id"] 52 | print(resp.json()) 53 | print(resp.status_code) 54 | return jid 55 | 56 | def status(jobid, headers): 57 | global ip 58 | url = f"http://{ip}:8080/slurm/v0.0.37/job/{jobid}" 59 | resp = requests.post(url, headers=headers()) 60 | print(resp.json()) 61 | 62 | def pre(): 63 | with open("jobs/pre.sh", "r") as f: 64 | script = f.read() 65 | script += f"\naws s3 cp slurm-${{SLURM_JOB_ID}}.out {output}/logs/slurm-${{SLURM_JOB_ID}}.out\n" 66 | template["job"]["name"] = "pre" 67 | template["job"]["nodes"] = 20 68 | template["script"] = script 69 | print(template) 70 | return submit(template) 71 | 72 | def run(pid): 73 | with open("jobs/run.sh", "r") as f: 74 | script = f.read() 75 | script += f"\naws s3 cp slurm-${{SLURM_JOB_ID}}.out {output}/logs/slurm-${{SLURM_JOB_ID}}.out\n" 76 | template["job"]["name"] = "ufs" 77 | template["job"]["nodes"] = 20 78 | template["job"]["dependency"] = f"afterok:{pid}" 79 | template["script"] = script 80 | print(template) 81 | return submit(template) 82 | 83 | def post(pid): 84 | with open("jobs/post.sh", "r") as f: 85 | script = f.read() 86 | script += f"\naws s3 cp --no-progress ${{grib}} {output}/${{grib}}" 87 | script += f"\naws s3 cp slurm-${{SLURM_JOB_ID}}.out {output}/logs/slurm-${{SLURM_JOB_ID}}.out\n" 88 | template["job"]["nodes"] = 1 89 | jids = [] 90 | for i in range(0, 7): 91 | template["job"]["name"] = f"post-{i:03}" 92 | template["job"]["dependency"] = f"afterok:{pid}" 93 | template["job"]["current_working_directory"] = f"/fsx/run/post/{i:02}" 94 | template["script"] = script 95 | print(template) 96 | jids.append(submit(template)) 97 | return jids 98 | 99 | def fini(ids): 100 | with open("jobs/fini.sh", "r") as f: 101 | script = f.read() 102 | script += f"\naws s3 cp forecast.done {output}/forecast.done" 103 | script += f"\naws s3 cp slurm-${{SLURM_JOB_ID}}.out {output}/logs/slurm-${{SLURM_JOB_ID}}.out\n" 104 | template["job"]["nodes"] = 1 105 | template["job"]["name"] = "fini" 106 | template["job"]["tasks_per_node"] = 1 107 | template["job"]["dependency"] = f"afterok:{':'.join([str(x) for x in ids])}" 108 | template["script"] = script 109 | print(template) 110 | return submit(template) 111 | 112 | def main(event, context): 113 | 114 | global ip 115 | 116 | print(event) 117 | subject = event['Records'][0]['Sns']['Subject'] 118 | ip = event['Records'][0]['Sns']['Message'] 119 | 120 | if subject != "Parallel Cluster Post Install - SUCCESS": 121 | return 1 122 | 123 | pid = pre() 124 | fid = run(pid) 125 | pids = post(fid) 126 | fini(pids) 127 | 128 | -------------------------------------------------------------------------------- /src/lambda/hpc6a.yaml: -------------------------------------------------------------------------------- 1 | Region: {REGION: ''} 2 | Image: 3 | Os: alinux2 4 | CustomAmi: ami-0ae35db9d39bbf647 5 | Tags: 6 | - Key: Purpose 7 | Value: Event Driven Weather Forecast 8 | HeadNode: 9 | InstanceType: hpc6a.48xlarge 10 | Networking: 11 | SubnetId: {SUBNET: ''} 12 | AdditionalSecurityGroups: !!seq 13 | - {SLURM: ''} 14 | Iam: 15 | AdditionalIamPolicies: 16 | - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore 17 | - Policy: arn:aws:iam::aws:policy/AmazonS3FullAccess 18 | - Policy: arn:aws:iam::aws:policy/AmazonFSxFullAccess 19 | - Policy: arn:aws:iam::aws:policy/SecretsManagerReadWrite 20 | - Policy: arn:aws:iam::aws:policy/AmazonSNSFullAccess 21 | Ssh: 22 | KeyName: tpbrown 23 | LocalStorage: 24 | RootVolume: 25 | Size: 50 26 | CustomActions: 27 | OnNodeConfigured: 28 | Script: {S3_URL_POST_INSTALL_HEADNODE: ''} 29 | Args: !!seq 30 | - {REGION: ''} 31 | - {SNS: ''} 32 | - {FTIME: ''} 33 | - {JWT: ''} 34 | - {TMPL: ''} 35 | Scheduling: 36 | Scheduler: slurm 37 | SlurmQueues: 38 | - Name: general 39 | ComputeResources: 40 | - Name: hpc6a 41 | InstanceType: hpc6a.48xlarge 42 | MinCount: 0 43 | MaxCount: 100 44 | Efa: 45 | Enabled: true 46 | Networking: 47 | SubnetIds: !!seq 48 | - {SUBNET: ''} 49 | PlacementGroup: 50 | Enabled: true 51 | Iam: 52 | S3Access: 53 | - BucketName: {BUCKET_NAME: ''} 54 | EnableWriteAccess: true 55 | SharedStorage: 56 | - Name: FsxLustre 57 | StorageType: FsxLustre 58 | MountDir: /fsx 59 | FsxLustreSettings: 60 | StorageCapacity: 4800 61 | DeploymentType: PERSISTENT_1 62 | PerUnitStorageThroughput: 200 63 | DataCompressionType: LZ4 64 | -------------------------------------------------------------------------------- /src/lambda/jobs/fini.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | 3 | set -x 4 | ftime=$(< /fsx/run/ftime) 5 | y=${ftime:0:4} 6 | m=${ftime:5:2} 7 | d=${ftime:8:2} 8 | h=${ftime:11:2} 9 | 10 | date -u +"%Y-%m-%dT%H:%M:%SZ" > forecast.done 11 | -------------------------------------------------------------------------------- /src/lambda/jobs/post.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | 3 | export I_MPI_OFI_LIBRARY_INTERNAL=0 4 | module load intelmpi 5 | module load libfabric-aws 6 | spack load upp 7 | set -x 8 | ulimit -s unlimited 9 | ulimit -a 10 | 11 | export FI_PROVIDER=efa 12 | export I_MPI_DEBUG=5 13 | export I_MPI_FABRICS=ofi 14 | export I_MPI_OFI_PROVIDER=efa 15 | export I_MPI_PIN_DOMAIN=omp 16 | export SLURM_EXPORT_ENV=ALL 17 | 18 | cat postxconfig-NT.txt > /dev/null 19 | time mpiexec.hydra $(which upp.x) 20 | 21 | ftime=$(< /fsx/run/ftime) 22 | y=${ftime:0:4} 23 | m=${ftime:5:2} 24 | d=${ftime:8:2} 25 | h=${ftime:11:2} 26 | grib=$(ls -1 GFSPRS*) 27 | -------------------------------------------------------------------------------- /src/lambda/jobs/pre.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | export I_MPI_OFI_LIBRARY_INTERNAL=0 3 | module load intelmpi 4 | module load libfabric-aws 5 | spack load ufs-utils 6 | set -x 7 | ulimit -s unlimited 8 | ulimit -a 9 | 10 | cd /fsx/run 11 | ftime=$(< /fsx/run/ftime) 12 | y=${ftime:0:4} 13 | m=${ftime:5:2} 14 | d=${ftime:8:2} 15 | h=${ftime:11:2} 16 | sed -r -e "s/atm_files_input_grid=.*/atm_files_input_grid=\'gfs.t${h}z.atmanl.nc\'/; 17 | s/sfc_files_input_grid=.*/sfc_files_input_grid=\'gfs.t${h}z.sfcanl.nc\'/; 18 | s/(cycle_hour=).*/\1 ${h}/; 19 | s/(cycle_day=).*/\1 ${d}/; 20 | s/(cycle_mon=).*/\1 ${m}/;" \ 21 | fort.41.in > fort.41 22 | sed -r -e "s/(start_hour:).*/\1 ${h}/; 23 | s/(start_day:).*/\1 ${d}/; 24 | s/(start_month:).*/\1 ${m}/; 25 | s/(start_year:).*/\1 ${y}/;" \ 26 | model_configure.in > model_configure 27 | 28 | for i in {0..6} ; do 29 | j=$(printf "%02d" $(($h + $i))) 30 | sed -i "5 s/.*/ DateStr='${y}-${m}-${d}_${j}:00:00'/" /fsx/run/post/0${i}/itag 31 | done 32 | 33 | export FI_PROVIDER=efa 34 | export I_MPI_DEBUG=5 35 | export I_MPI_FABRICS=ofi 36 | export I_MPI_OFI_PROVIDER=efa 37 | export I_MPI_PIN_DOMAIN=omp 38 | export KMP_AFFINITY=compact 39 | export OMP_NUM_THREADS=4 40 | export OMP_STACKSIZE=12G 41 | export SLURM_EXPORT_ENV=ALL 42 | 43 | time mpiexec.hydra $(which chgres_cube) 44 | 45 | ln -fs ../gfs_ctrl.nc INPUT/gfs_ctrl.nc 46 | for n in {1..6}; do 47 | ln -fs ../out.atm.tile$n.nc INPUT/gfs_data.tile$n.nc 48 | ln -fs ../out.sfc.tile$n.nc INPUT/sfc_data.tile$n.nc 49 | done 50 | 51 | -------------------------------------------------------------------------------- /src/lambda/jobs/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | export I_MPI_OFI_LIBRARY_INTERNAL=0 3 | module load intelmpi 4 | module load libfabric-aws 5 | spack load ufs-weather-model 6 | set -x 7 | ulimit -s unlimited 8 | ulimit -a 9 | 10 | export FI_PROVIDER=efa 11 | export I_MPI_DEBUG=5 12 | export I_MPI_FABRICS=ofi 13 | export I_MPI_OFI_PROVIDER=efa 14 | export I_MPI_PIN_DOMAIN=omp 15 | export KMP_AFFINITY=compact 16 | export OMP_NUM_THREADS=4 17 | export OMP_STACKSIZE=12G 18 | export SLURM_EXPORT_ENV=ALL 19 | 20 | time mpiexec.hydra $(which ufs_weather_model) 21 | 22 | ftime=$(< /fsx/run/ftime) 23 | y=${ftime:0:4} 24 | m=${ftime:5:2} 25 | d=${ftime:8:2} 26 | h=${ftime:11:2} 27 | 28 | -------------------------------------------------------------------------------- /src/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | pytest==6.2.5 2 | -------------------------------------------------------------------------------- /src/requirements.txt: -------------------------------------------------------------------------------- 1 | aws-cdk-lib==2.20.0 2 | constructs>=10.0.0,<11.0.0 3 | requests 4 | pyyaml 5 | boto3 6 | botocore 7 | -------------------------------------------------------------------------------- /src/resources/get_fix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -x 4 | 5 | nco="https://ftp.emc.ncep.noaa.gov/static_files/public/UFS/GFS" 6 | 7 | in_dir=run/INPUT 8 | in_grid=( \ 9 | grid_spec.nc 10 | C768_grid.tile[1-6].nc \ 11 | C768_mosaic.nc \ 12 | C768_oro_data.tile[1-6].nc \ 13 | ) 14 | 15 | fix_dir=run/fix 16 | fix_sfc=( \ 17 | C768.facsf.tile[1-6].nc \ 18 | C768.maximum_snow_albedo.tile[1-6].nc \ 19 | C768.slope_type.tile[1-6].nc \ 20 | C768.snowfree_albedo.tile[1-6].nc \ 21 | C768.soil_type.tile[1-6].nc \ 22 | C768.substrate_temperature.tile[1-6].nc \ 23 | C768.vegetation_greenness.tile[1-6].nc \ 24 | C768.vegetation_type.tile[1-6].nc \ 25 | ) 26 | fix_am=( \ 27 | CFSR.SEAICE.1982.2012.monthly.clim.grb \ 28 | RTGSST.1982.2012.monthly.clim.grb \ 29 | global_albedo4.1x1.grb \ 30 | global_glacier.2x2.grb \ 31 | global_hyblev.l65.txt \ 32 | global_maxice.2x2.grb \ 33 | global_mxsnoalb.uariz.t1534.3072.1536.rg.grb \ 34 | global_shdmax.0.144x0.144.grb \ 35 | global_shdmin.0.144x0.144.grb \ 36 | global_slmask.t1534.3072.1536.grb \ 37 | global_slope.1x1.grb \ 38 | global_snoclim.1.875.grb \ 39 | global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb \ 40 | global_soilmgldas.statsgo.t1534.3072.1536.grb \ 41 | global_soiltype.statsgo.t1534.3072.1536.rg.grb \ 42 | global_tg3clim.2.6x1.5.grb \ 43 | global_vegfrac.0.144.decpercent.grb \ 44 | global_vegtype.igbp.t1534.3072.1536.rg.grb \ 45 | ) 46 | 47 | fix_co2=( \ 48 | global_co2historicaldata_[2009-2021].txt \ 49 | ) 50 | 51 | ( 52 | test -d $in_dir || mkdir $in_dir 53 | cd $in_dir 54 | for file in ${in_grid[@]} ; do 55 | curl -O $nco/fix/fix_fv3/C768/$file 56 | done 57 | curl -O $nco/fix/fix_fv3/C768_gfdl/grid_spec.nc 58 | ) 59 | 60 | ( 61 | test -d $fix_dir || mkdir $fix_dir 62 | cd $fix_dir 63 | for file in ${fix_sfc[@]} ; do 64 | curl -O $nco/fix_nco_gfsv16/fix_fv3_gmted2010/C768/fix_sfc/$file 65 | done 66 | for file in ${fix_am[@]} ; do 67 | curl -O $nco/fix/fix_am/$file 68 | done 69 | ) 70 | 71 | ( 72 | cd run 73 | for file in ${fix_co2[@]} ; do 74 | curl $nco/fix/fix_am/fix_co2_update/$file -o "co2historicaldata_#1.txt" 75 | done 76 | ) 77 | -------------------------------------------------------------------------------- /src/resources/post_install_headnode.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -l 2 | 3 | . /etc/parallelcluster/cfnconfig 4 | . /etc/profile.d/spack.sh 5 | 6 | test "$cfn_node_type" != "HeadNode" && exit 7 | 8 | set -eux 9 | 10 | main() { 11 | local region=$1 12 | local sns=$2 13 | local ftime=$3 14 | local jwt=$4 15 | local template=$5 16 | spack_compilers 17 | mkdir -p /fsx/run 18 | systemd_units 19 | slurm_db $region 20 | extract $template 21 | fini $region $sns $ftime $jwt 22 | } 23 | 24 | spack_compilers() { 25 | spack load intel-oneapi-compilers 26 | spack compiler find 27 | spack unload 28 | mkdir -p ~ec2-user/.spack/linux 29 | cp ~/.spack/linux/compilers.yaml ~ec2-user/.spack/linux 30 | chown -R ec2-user:ec2-user ~ec2-user/.spack 31 | } 32 | 33 | systemd_units() { 34 | 35 | cat > /etc/systemd/system/slurmdbd.service <<- EOF 36 | [Unit] 37 | Description=SlurmDBD daemon 38 | After=munge.service network.target 39 | ConditionPathExists=/opt/slurm/etc/slurmdbd.conf 40 | 41 | [Service] 42 | Type=simple 43 | Restart=always 44 | RestartSec=1 45 | User=root 46 | ExecStart=/opt/slurm/sbin/slurmdbd -D -s 47 | ExecReload=/bin/kill -HUP \$MAINPID 48 | LimitNOFILE=65536 49 | 50 | [Install] 51 | WantedBy=multi-user.target 52 | EOF 53 | 54 | cat > /etc/systemd/system/slurmrestd.service <<- EOF 55 | [Unit] 56 | Description=Slurm REST daemon 57 | After=network.target munge.service slurmctld.service 58 | ConditionPathExists=/opt/slurm/etc/slurm.conf 59 | Documentation=man:slurmrestd(8) 60 | 61 | [Service] 62 | Type=simple 63 | User=slumrestd 64 | Group=slumrestd 65 | Environment="SLURM_JWT=daemon" 66 | ExecStart=/opt/slurm/sbin/slurmrestd -a rest_auth/jwt 0.0.0.0:8080 67 | ExecReload=/bin/kill -HUP \$MAINPID 68 | 69 | [Install] 70 | WantedBy=multi-user.target 71 | EOF 72 | 73 | groupadd -r slumrestd 74 | useradd -r -c 'SLURM REST API user' -g slumrestd slumrestd 75 | systemctl enable slurmdbd.service 76 | systemctl enable slurmrestd.service 77 | } 78 | 79 | slurm_db() { 80 | local region=$1 81 | yum install -y mysql 82 | aws secretsmanager get-secret-value \ 83 | --secret-id SlurmDbCreds \ 84 | --query 'SecretString' \ 85 | --region $region \ 86 | --output text > /tmp/dbcreds 87 | export DBHOST=$(jq -r '.host' /tmp/dbcreds) 88 | export DBPASSWD=$(jq -r '.password' /tmp/dbcreds) 89 | rm /tmp/dbcreds 90 | 91 | cat > /opt/slurm/etc/slurmdbd.conf <<- EOF 92 | ArchiveEvents=yes 93 | ArchiveJobs=yes 94 | ArchiveResvs=yes 95 | ArchiveSteps=no 96 | ArchiveSuspend=no 97 | ArchiveTXN=no 98 | ArchiveUsage=no 99 | AuthType=auth/munge 100 | AuthAltTypes=auth/jwt 101 | AuthAltParameters=jwt_key=/opt/slurm/etc/jwt_hs256.key 102 | DbdHost=$(hostname) 103 | DbdPort=6819 104 | DebugLevel=info 105 | PurgeEventAfter=1month 106 | PurgeJobAfter=12month 107 | PurgeResvAfter=1month 108 | PurgeStepAfter=1month 109 | PurgeSuspendAfter=1month 110 | PurgeTXNAfter=12month 111 | PurgeUsageAfter=24month 112 | SlurmUser=slurm 113 | LogFile=/var/log/slurmdbd.log 114 | PidFile=/var/run/slurmdbd.pid 115 | StorageType=accounting_storage/mysql 116 | StorageUser=admin 117 | StoragePass=${DBPASSWD} 118 | StorageHost=${DBHOST} 119 | StoragePort=3306 120 | EOF 121 | 122 | chmod 600 /opt/slurm/etc/slurmdbd.conf 123 | chown slurm:slurm /opt/slurm/etc/slurmdbd.conf 124 | 125 | dd if=/dev/urandom of=/opt/slurm/etc/jwt_hs256.key bs=32 count=1 126 | chmod 600 /opt/slurm/etc/jwt_hs256.key 127 | chown slurm:slurm /opt/slurm/etc/jwt_hs256.key 128 | 129 | cat >> /opt/slurm/etc/slurm.conf <<- EOF 130 | AuthAltTypes=auth/jwt 131 | AuthAltParameters=jwt_key=/opt/slurm/etc/jwt_hs256.key 132 | # ACCOUNTING 133 | JobAcctGatherType=jobacct_gather/linux 134 | JobAcctGatherFrequency=30 135 | # 136 | AccountingStorageType=accounting_storage/slurmdbd 137 | AccountingStorageHost=$(hostname) 138 | AccountingStorageUser=admin 139 | AccountingStoragePort=6819 140 | EOF 141 | 142 | systemctl start slurmdbd.service 143 | systemctl start slurmrestd.service 144 | } 145 | 146 | extract() { 147 | local template=$1 148 | cd /fsx/run 149 | aws s3 cp $template . 150 | unzip ${template##*/} 151 | rm ${template##*/} 152 | chown -R ec2-user:ec2-user /fsx/run 153 | } 154 | 155 | fini() { 156 | local region=$1 157 | local sns=$2 158 | local ftime=$3 159 | local jwt=$4 160 | local y=${ftime:0:4} 161 | local m=${ftime:5:2} 162 | local d=${ftime:8:2} 163 | local h=${ftime:11:2} 164 | 165 | cat > /tmp/jwt.sh <<-EOF 166 | #!/bin/bash 167 | 168 | . /etc/profile.d/slurm.sh 169 | cd /fsx/run 170 | echo $ftime > /fsx/run/ftime 171 | /fsx/run/get_gfs 172 | sudo systemctl restart slurmctld.service 173 | sleep 15 174 | aws secretsmanager update-secret \ 175 | --region ${region} \ 176 | --secret-id "$jwt" \ 177 | --secret-string \$(/opt/slurm/bin/scontrol token lifespan=7200 | cut -f 2 -d = ) 178 | 179 | export ip=$(curl -q -s http://169.254.169.254/latest/meta-data/local-ipv4) 180 | aws sns publish \ 181 | --region ${region} \ 182 | --subject "Parallel Cluster Post Install - SUCCESS" \ 183 | --message "\$ip" \ 184 | --topic-arn $sns 185 | 186 | EOF 187 | chmod 755 /tmp/jwt.sh 188 | chown ec2-user:ec2-user /tmp/jwt.sh 189 | cat > /etc/systemd/system/jwt.service <<- EOF 190 | [Unit] 191 | Description=JWT generation 192 | After=slurmctld.service 193 | 194 | [Service] 195 | Type=simple 196 | User=ec2-user 197 | Group=ec2-user 198 | ExecStart=/tmp/jwt.sh 199 | WorkingDirectory=/tmp 200 | 201 | [Install] 202 | WantedBy=multi-user.target 203 | EOF 204 | systemctl enable jwt.service 205 | systemctl start jwt.service 206 | } 207 | 208 | main $@ 209 | -------------------------------------------------------------------------------- /src/resources/run/.gitignore: -------------------------------------------------------------------------------- 1 | grid_spec.nc 2 | C768_grid.tile*.nc 3 | C768_mosaic.nc 4 | C768_oro_data.tile*.nc 5 | C768.facsf.tile*.nc 6 | C768.maximum_snow_albedo.tile*.nc 7 | C768.slope_type.tile*.nc 8 | C768.snowfree_albedo.tile*.nc 9 | C768.soil_type.tile*.nc 10 | C768.substrate_temperature.tile*.nc 11 | C768.vegetation_greenness.tile*.nc 12 | C768.vegetation_type.tile*.nc 13 | CFSR.SEAICE.1982.2012.monthly.clim.grb 14 | RTGSST.1982.2012.monthly.clim.grb 15 | global_albedo4.1x1.grb 16 | global_glacier.2x2.grb 17 | global_hyblev.l65.txt 18 | global_maxice.2x2.grb 19 | global_mxsnoalb.uariz.t1534.3072.1536.rg.grb 20 | global_shdmax.0.144x0.144.grb 21 | global_shdmin.0.144x0.144.grb 22 | global_slmask.t1534.3072.1536.grb 23 | global_slope.1x1.grb 24 | global_snoclim.1.875.grb 25 | global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb 26 | global_soilmgldas.statsgo.t1534.3072.1536.grb 27 | global_soiltype.statsgo.t1534.3072.1536.rg.grb 28 | global_tg3clim.2.6x1.5.grb 29 | global_vegfrac.0.144.decpercent.grb 30 | global_vegtype.igbp.t1534.3072.1536.rg.grb 31 | grid_spec.nc 32 | co2historicaldata_*.txt 33 | -------------------------------------------------------------------------------- /src/resources/run/INPUT/mosaic.nc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 404 Not Found 4 | 5 |

Not Found

6 |

The requested URL /static_files/public/UFS/GFS/fix/fix_fv3/C768_gfdl/mosaic.nc was not found on this server.

7 | 8 | -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile1.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile1.nc -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile2.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile2.nc -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile3.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile3.nc -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile4.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile4.nc -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile5.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile5.nc -------------------------------------------------------------------------------- /src/resources/run/INPUT/oro_data.tile6.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/INPUT/oro_data.tile6.nc -------------------------------------------------------------------------------- /src/resources/run/RESTART/.nothing: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/resources/run/data_table: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/data_table -------------------------------------------------------------------------------- /src/resources/run/diag_table: -------------------------------------------------------------------------------- 1 | 20161003.00Z.C96.64bit.non-mono 2 | 2016 10 03 00 0 0 3 | 4 | "grid_spec", -1, "months", 1, "days", "time" 5 | "atmos_4xdaily", 6, "hours", 1, "days", "time" 6 | "atmos_static", -1, "hours", 1, "hours", "time" 7 | "fv3_history", 0, "hours", 1, "hours", "time" 8 | "fv3_history2d", 0, "hours", 1, "hours", "time" 9 | 10 | # 11 | #======================= 12 | # ATMOSPHERE DIAGNOSTICS 13 | #======================= 14 | ### 15 | # grid_spec 16 | ### 17 | "dynamics", "grid_lon", "grid_lon", "grid_spec", "all", .false., "none", 2, 18 | "dynamics", "grid_lat", "grid_lat", "grid_spec", "all", .false., "none", 2, 19 | "dynamics", "grid_lont", "grid_lont", "grid_spec", "all", .false., "none", 2, 20 | "dynamics", "grid_latt", "grid_latt", "grid_spec", "all", .false., "none", 2, 21 | "dynamics", "area", "area", "grid_spec", "all", .false., "none", 2, 22 | ### 23 | # 4x daily output 24 | ### 25 | "dynamics", "slp", "slp", "atmos_4xdaily", "all", .false., "none", 2 26 | "dynamics", "vort850", "vort850", "atmos_4xdaily", "all", .false., "none", 2 27 | "dynamics", "vort200", "vort200", "atmos_4xdaily", "all", .false., "none", 2 28 | "dynamics", "us", "us", "atmos_4xdaily", "all", .false., "none", 2 29 | "dynamics", "u1000", "u1000", "atmos_4xdaily", "all", .false., "none", 2 30 | "dynamics", "u850", "u850", "atmos_4xdaily", "all", .false., "none", 2 31 | "dynamics", "u700", "u700", "atmos_4xdaily", "all", .false., "none", 2 32 | "dynamics", "u500", "u500", "atmos_4xdaily", "all", .false., "none", 2 33 | "dynamics", "u200", "u200", "atmos_4xdaily", "all", .false., "none", 2 34 | "dynamics", "u100", "u100", "atmos_4xdaily", "all", .false., "none", 2 35 | "dynamics", "u50", "u50", "atmos_4xdaily", "all", .false., "none", 2 36 | "dynamics", "u10", "u10", "atmos_4xdaily", "all", .false., "none", 2 37 | "dynamics", "vs", "vs", "atmos_4xdaily", "all", .false., "none", 2 38 | "dynamics", "v1000", "v1000", "atmos_4xdaily", "all", .false., "none", 2 39 | "dynamics", "v850", "v850", "atmos_4xdaily", "all", .false., "none", 2 40 | "dynamics", "v700", "v700", "atmos_4xdaily", "all", .false., "none", 2 41 | "dynamics", "v500", "v500", "atmos_4xdaily", "all", .false., "none", 2 42 | "dynamics", "v200", "v200", "atmos_4xdaily", "all", .false., "none", 2 43 | "dynamics", "v100", "v100", "atmos_4xdaily", "all", .false., "none", 2 44 | "dynamics", "v50", "v50", "atmos_4xdaily", "all", .false., "none", 2 45 | "dynamics", "v10", "v10", "atmos_4xdaily", "all", .false., "none", 2 46 | #### 47 | "dynamics", "tm", "tm", "atmos_4xdaily", "all", .false., "none", 2 48 | "dynamics", "t1000", "t1000", "atmos_4xdaily", "all", .false., "none", 2 49 | "dynamics", "t850", "t850", "atmos_4xdaily", "all", .false., "none", 2 50 | "dynamics", "t700", "t700", "atmos_4xdaily", "all", .false., "none", 2 51 | "dynamics", "t500", "t500", "atmos_4xdaily", "all", .false., "none", 2 52 | "dynamics", "t200", "t200", "atmos_4xdaily", "all", .false., "none", 2 53 | "dynamics", "t100", "t100", "atmos_4xdaily", "all", .false., "none", 2 54 | "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 55 | "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 56 | #### 57 | "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 58 | "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 59 | "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 60 | "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 61 | "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 62 | "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 63 | "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 64 | "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 65 | #### 66 | #"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 67 | "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 68 | "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 69 | "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 70 | "dynamics", "w200", "w200", "atmos_4xdaily", "all", .false., "none", 2 71 | #### 72 | "dynamics", "q1000", "q1000", "atmos_4xdaily", "all", .false., "none", 2 73 | "dynamics", "q850", "q850", "atmos_4xdaily", "all", .false., "none", 2 74 | "dynamics", "q700", "q700", "atmos_4xdaily", "all", .false., "none", 2 75 | "dynamics", "q500", "q500", "atmos_4xdaily", "all", .false., "none", 2 76 | "dynamics", "q200", "q200", "atmos_4xdaily", "all", .false., "none", 2 77 | "dynamics", "q100", "q100", "atmos_4xdaily", "all", .false., "none", 2 78 | "dynamics", "q50", "q50", "atmos_4xdaily", "all", .false., "none", 2 79 | "dynamics", "q10", "q10", "atmos_4xdaily", "all", .false., "none", 2 80 | #### 81 | "dynamics", "rh1000", "rh1000", "atmos_4xdaily", "all", .false., "none", 2 82 | "dynamics", "rh850", "rh850", "atmos_4xdaily", "all", .false., "none", 2 83 | "dynamics", "rh700", "rh700", "atmos_4xdaily", "all", .false., "none", 2 84 | "dynamics", "rh500", "rh500", "atmos_4xdaily", "all", .false., "none", 2 85 | "dynamics", "rh200", "rh200", "atmos_4xdaily", "all", .false., "none", 2 86 | "dynamics", "omg1000", "omg1000", "atmos_4xdaily", "all", .false., "none", 2 87 | "dynamics", "omg850", "omg850", "atmos_4xdaily", "all", .false., "none", 2 88 | "dynamics", "omg700", "omg700", "atmos_4xdaily", "all", .false., "none", 2 89 | "dynamics", "omg500", "omg500", "atmos_4xdaily", "all", .false., "none", 2 90 | "dynamics", "omg200", "omg200", "atmos_4xdaily", "all", .false., "none", 2 91 | "dynamics", "omg100", "omg100", "atmos_4xdaily", "all", .false., "none", 2 92 | "dynamics", "omg50", "omg50", "atmos_4xdaily", "all", .false., "none", 2 93 | "dynamics", "omg10", "omg10", "atmos_4xdaily", "all", .false., "none", 2 94 | ### 95 | # gfs static data 96 | ### 97 | "dynamics", "pk", "pk", "atmos_static", "all", .false., "none", 2 98 | "dynamics", "bk", "bk", "atmos_static", "all", .false., "none", 2 99 | "dynamics", "hyam", "hyam", "atmos_static", "all", .false., "none", 2 100 | "dynamics", "hybm", "hybm", "atmos_static", "all", .false., "none", 2 101 | "dynamics", "zsurf", "zsurf", "atmos_static", "all", .false., "none", 2 102 | ### 103 | # FV3 variabls needed for NGGPS evaluation 104 | ### 105 | "gfs_dyn", "ucomp", "ugrd", "fv3_history", "all", .false., "none", 2 106 | "gfs_dyn", "vcomp", "vgrd", "fv3_history", "all", .false., "none", 2 107 | "gfs_dyn", "sphum", "spfh", "fv3_history", "all", .false., "none", 2 108 | "gfs_dyn", "temp", "tmp", "fv3_history", "all", .false., "none", 2 109 | "gfs_dyn", "liq_wat", "clwmr", "fv3_history", "all", .false., "none", 2 110 | "gfs_dyn", "o3mr", "o3mr", "fv3_history", "all", .false., "none", 2 111 | "gfs_dyn", "delp", "dpres", "fv3_history", "all", .false., "none", 2 112 | "gfs_dyn", "delz", "delz", "fv3_history", "all", .false., "none", 2 113 | "gfs_dyn", "w", "dzdt", "fv3_history", "all", .false., "none", 2 114 | "gfs_dyn", "ice_wat", "icmr", "fv3_history", "all", .false., "none", 2 115 | "gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 116 | "gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 117 | "gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 118 | "gfs_dyn", "ps", "pressfc", "fv3_history", "all", .false., "none", 2 119 | "gfs_dyn", "hs", "hgtsfc", "fv3_history", "all", .false., "none", 2 120 | #"gfs_dyn", "ice_nc", "nicp", "fv3_history", "all", .false., "none", 2 121 | #"gfs_dyn", "rain_nc", "ntrnc", "fv3_history", "all", .false., "none", 2 122 | 123 | "gfs_phys", "ALBDO_ave", "albdo_ave", "fv3_history2d", "all", .false., "none", 2 124 | "gfs_phys", "cnvprcp_ave", "cprat_ave", "fv3_history2d", "all", .false., "none", 2 125 | "gfs_phys", "cnvprcpb_ave", "cpratb_ave", "fv3_history2d", "all", .false., "none", 2 126 | "gfs_phys", "totprcp_ave", "prate_ave", "fv3_history2d", "all", .false., "none", 2 127 | "gfs_phys", "totprcpb_ave", "prateb_ave", "fv3_history2d", "all", .false., "none", 2 128 | "gfs_phys", "DLWRF", "dlwrf_ave", "fv3_history2d", "all", .false., "none", 2 129 | "gfs_phys", "DLWRFI", "dlwrf", "fv3_history2d", "all", .false., "none", 2 130 | "gfs_phys", "ULWRF", "ulwrf_ave", "fv3_history2d", "all", .false., "none", 2 131 | "gfs_phys", "ULWRFI", "ulwrf", "fv3_history2d", "all", .false., "none", 2 132 | "gfs_phys", "DSWRF", "dswrf_ave", "fv3_history2d", "all", .false., "none", 2 133 | "gfs_phys", "DSWRFI", "dswrf", "fv3_history2d", "all", .false., "none", 2 134 | "gfs_phys", "USWRF", "uswrf_ave", "fv3_history2d", "all", .false., "none", 2 135 | "gfs_phys", "USWRFI", "uswrf", "fv3_history2d", "all", .false., "none", 2 136 | "gfs_phys", "DSWRFtoa", "dswrf_avetoa","fv3_history2d", "all", .false., "none", 2 137 | "gfs_phys", "USWRFtoa", "uswrf_avetoa","fv3_history2d", "all", .false., "none", 2 138 | "gfs_phys", "ULWRFtoa", "ulwrf_avetoa","fv3_history2d", "all", .false., "none", 2 139 | "gfs_phys", "gflux_ave", "gflux_ave", "fv3_history2d", "all", .false., "none", 2 140 | "gfs_phys", "hpbl", "hpbl", "fv3_history2d", "all", .false., "none", 2 141 | "gfs_phys", "lhtfl_ave", "lhtfl_ave", "fv3_history2d", "all", .false., "none", 2 142 | "gfs_phys", "shtfl_ave", "shtfl_ave", "fv3_history2d", "all", .false., "none", 2 143 | "gfs_phys", "pwat", "pwatclm", "fv3_history2d", "all", .false., "none", 2 144 | "gfs_phys", "soilm", "soilm", "fv3_history2d", "all", .false., "none", 2 145 | "gfs_phys", "TCDC_aveclm", "tcdc_aveclm", "fv3_history2d", "all", .false., "none", 2 146 | "gfs_phys", "TCDC_avebndcl", "tcdc_avebndcl", "fv3_history2d", "all", .false., "none", 2 147 | "gfs_phys", "TCDC_avehcl", "tcdc_avehcl", "fv3_history2d", "all", .false., "none", 2 148 | "gfs_phys", "TCDC_avelcl", "tcdc_avelcl", "fv3_history2d", "all", .false., "none", 2 149 | "gfs_phys", "TCDC_avemcl", "tcdc_avemcl", "fv3_history2d", "all", .false., "none", 2 150 | "gfs_phys", "TCDCcnvcl", "tcdccnvcl", "fv3_history2d", "all", .false., "none", 2 151 | "gfs_phys", "PREScnvclt", "prescnvclt", "fv3_history2d", "all", .false., "none", 2 152 | "gfs_phys", "PREScnvclb", "prescnvclb", "fv3_history2d", "all", .false., "none", 2 153 | "gfs_phys", "PRES_avehct", "pres_avehct", "fv3_history2d", "all", .false., "none", 2 154 | "gfs_phys", "PRES_avehcb", "pres_avehcb", "fv3_history2d", "all", .false., "none", 2 155 | "gfs_phys", "TEMP_avehct", "tmp_avehct", "fv3_history2d", "all", .false., "none", 2 156 | "gfs_phys", "PRES_avemct", "pres_avemct", "fv3_history2d", "all", .false., "none", 2 157 | "gfs_phys", "PRES_avemcb", "pres_avemcb", "fv3_history2d", "all", .false., "none", 2 158 | "gfs_phys", "TEMP_avemct", "tmp_avemct", "fv3_history2d", "all", .false., "none", 2 159 | "gfs_phys", "PRES_avelct", "pres_avelct", "fv3_history2d", "all", .false., "none", 2 160 | "gfs_phys", "PRES_avelcb", "pres_avelcb", "fv3_history2d", "all", .false., "none", 2 161 | "gfs_phys", "TEMP_avelct", "tmp_avelct", "fv3_history2d", "all", .false., "none", 2 162 | "gfs_phys", "u-gwd_ave", "u-gwd_ave", "fv3_history2d", "all", .false., "none", 2 163 | "gfs_phys", "v-gwd_ave", "v-gwd_ave", "fv3_history2d", "all", .false., "none", 2 164 | "gfs_phys", "dusfc", "uflx_ave", "fv3_history2d", "all", .false., "none", 2 165 | "gfs_phys", "dvsfc", "vflx_ave", "fv3_history2d", "all", .false., "none", 2 166 | #"gfs_phys", "cnvw", "cnvcldwat", "fv3_history2d", "all", .false., "none", 2 167 | 168 | "gfs_phys", "psurf", "pressfc", "fv3_history2d", "all", .false., "none", 2 169 | "gfs_phys", "u10m", "ugrd10m", "fv3_history2d", "all", .false., "none", 2 170 | "gfs_phys", "v10m", "vgrd10m", "fv3_history2d", "all", .false., "none", 2 171 | "gfs_sfc", "crain", "crain", "fv3_history2d", "all", .false., "none", 2 172 | "gfs_sfc", "tprcp", "tprcp", "fv3_history2d", "all", .false., "none", 2 173 | "gfs_sfc", "hgtsfc", "orog", "fv3_history2d", "all", .false., "none", 2 174 | "gfs_sfc", "weasd", "weasd", "fv3_history2d", "all", .false., "none", 2 175 | "gfs_sfc", "f10m", "f10m", "fv3_history2d", "all", .false., "none", 2 176 | "gfs_sfc", "q2m", "spfh2m", "fv3_history2d", "all", .false., "none", 2 177 | "gfs_sfc", "t2m", "tmp2m", "fv3_history2d", "all", .false., "none", 2 178 | "gfs_sfc", "tsfc", "tmpsfc", "fv3_history2d", "all", .false., "none", 2 179 | "gfs_sfc", "vtype", "vtype", "fv3_history2d", "all", .false., "none", 2 180 | "gfs_sfc", "stype", "sotyp", "fv3_history2d", "all", .false., "none", 2 181 | "gfs_sfc", "slmsksfc", "land", "fv3_history2d", "all", .false., "none", 2 182 | "gfs_sfc", "vfracsfc", "veg", "fv3_history2d", "all", .false., "none", 2 183 | "gfs_sfc", "zorlsfc", "sfcr", "fv3_history2d", "all", .false., "none", 2 184 | "gfs_sfc", "uustar", "fricv", "fv3_history2d", "all", .false., "none", 2 185 | "gfs_sfc", "soilt1", "soilt1" "fv3_history2d", "all", .false., "none", 2 186 | "gfs_sfc", "soilt2", "soilt2" "fv3_history2d", "all", .false., "none", 2 187 | "gfs_sfc", "soilt3", "soilt3" "fv3_history2d", "all", .false., "none", 2 188 | "gfs_sfc", "soilt4", "soilt4" "fv3_history2d", "all", .false., "none", 2 189 | "gfs_sfc", "soilw1", "soilw1" "fv3_history2d", "all", .false., "none", 2 190 | "gfs_sfc", "soilw2", "soilw2" "fv3_history2d", "all", .false., "none", 2 191 | "gfs_sfc", "soilw3", "soilw3" "fv3_history2d", "all", .false., "none", 2 192 | "gfs_sfc", "soilw4", "soilw4" "fv3_history2d", "all", .false., "none", 2 193 | "gfs_sfc", "slc_1", "soill1", "fv3_history2d", "all", .false., "none", 2 194 | "gfs_sfc", "slc_2", "soill2", "fv3_history2d", "all", .false., "none", 2 195 | "gfs_sfc", "slc_3", "soill3", "fv3_history2d", "all", .false., "none", 2 196 | "gfs_sfc", "slc_4", "soill4", "fv3_history2d", "all", .false., "none", 2 197 | "gfs_sfc", "slope", "sltyp", "fv3_history2d", "all", .false., "none", 2 198 | "gfs_sfc", "alnsf", "alnsf", "fv3_history2d", "all", .false., "none", 2 199 | "gfs_sfc", "alnwf", "alnwf", "fv3_history2d", "all", .false., "none", 2 200 | "gfs_sfc", "alvsf", "alvsf", "fv3_history2d", "all", .false., "none", 2 201 | "gfs_sfc", "alvwf", "alvwf", "fv3_history2d", "all", .false., "none", 2 202 | "gfs_sfc", "canopy", "cnwat", "fv3_history2d", "all", .false., "none", 2 203 | "gfs_sfc", "facsf", "facsf", "fv3_history2d", "all", .false., "none", 2 204 | "gfs_sfc", "facwf", "facwf", "fv3_history2d", "all", .false., "none", 2 205 | "gfs_sfc", "ffhh", "ffhh", "fv3_history2d", "all", .false., "none", 2 206 | "gfs_sfc", "ffmm", "ffmm", "fv3_history2d", "all", .false., "none", 2 207 | "gfs_sfc", "fice", "icec", "fv3_history2d", "all", .false., "none", 2 208 | "gfs_sfc", "hice", "icetk", "fv3_history2d", "all", .false., "none", 2 209 | "gfs_sfc", "snoalb", "snoalb", "fv3_history2d", "all", .false., "none", 2 210 | "gfs_sfc", "shdmax", "shdmax", "fv3_history2d", "all", .false., "none", 2 211 | "gfs_sfc", "shdmin", "shdmin", "fv3_history2d", "all", .false., "none", 2 212 | "gfs_sfc", "snowd", "snod", "fv3_history2d", "all", .false., "none", 2 213 | "gfs_sfc", "tg3", "tg3", "fv3_history2d", "all", .false., "none", 2 214 | "gfs_sfc", "tisfc", "tisfc", "fv3_history2d", "all", .false., "none", 2 215 | "gfs_sfc", "tref", "tref", "fv3_history2d", "all", .false., "none", 2 216 | "gfs_sfc", "z_c", "zc", "fv3_history2d", "all", .false., "none", 2 217 | "gfs_sfc", "c_0", "c0", "fv3_history2d", "all", .false., "none", 2 218 | "gfs_sfc", "c_d", "cd", "fv3_history2d", "all", .false., "none", 2 219 | "gfs_sfc", "w_0", "w0", "fv3_history2d", "all", .false., "none", 2 220 | "gfs_sfc", "w_d", "wd", "fv3_history2d", "all", .false., "none", 2 221 | "gfs_sfc", "xt", "xt", "fv3_history2d", "all", .false., "none", 2 222 | "gfs_sfc", "xz", "xz", "fv3_history2d", "all", .false., "none", 2 223 | "gfs_sfc", "dt_cool", "dtcool", "fv3_history2d", "all", .false., "none", 2 224 | "gfs_sfc", "xs", "xs", "fv3_history2d", "all", .false., "none", 2 225 | "gfs_sfc", "xu", "xu", "fv3_history2d", "all", .false., "none", 2 226 | "gfs_sfc", "xv", "xv", "fv3_history2d", "all", .false., "none", 2 227 | "gfs_sfc", "xtts", "xtts", "fv3_history2d", "all", .false., "none", 2 228 | "gfs_sfc", "xzts", "xzts", "fv3_history2d", "all", .false., "none", 2 229 | "gfs_sfc", "d_conv", "dconv", "fv3_history2d", "all", .false., "none", 2 230 | "gfs_sfc", "qrain", "qrain", "fv3_history2d", "all", .false., "none", 2 231 | 232 | "gfs_phys", "acond", "acond", "fv3_history2d", "all", .false., "none", 2 233 | "gfs_phys", "cduvb_ave", "cduvb_ave", "fv3_history2d", "all", .false., "none", 2 234 | "gfs_phys", "cpofp", "cpofp", "fv3_history2d", "all", .false., "none", 2 235 | "gfs_phys", "duvb_ave", "duvb_ave", "fv3_history2d", "all", .false., "none", 2 236 | "gfs_phys", "csdlf_ave", "csdlf", "fv3_history2d", "all", .false., "none", 2 237 | "gfs_phys", "csusf_ave", "csusf", "fv3_history2d", "all", .false., "none", 2 238 | "gfs_phys", "csusf_avetoa", "csusftoa", "fv3_history2d", "all", .false., "none", 2 239 | "gfs_phys", "csdsf_ave", "csdsf", "fv3_history2d", "all", .false., "none", 2 240 | "gfs_phys", "csulf_ave", "csulf", "fv3_history2d", "all", .false., "none", 2 241 | "gfs_phys", "csulf_avetoa", "csulftoa", "fv3_history2d", "all", .false., "none", 2 242 | "gfs_phys", "cwork_ave", "cwork_aveclm", "fv3_history2d", "all", .false., "none", 2 243 | "gfs_phys", "evbs_ave", "evbs_ave", "fv3_history2d", "all", .false., "none", 2 244 | "gfs_phys", "evcw_ave", "evcw_ave", "fv3_history2d", "all", .false., "none", 2 245 | "gfs_phys", "fldcp", "fldcp", "fv3_history2d", "all", .false., "none", 2 246 | "gfs_phys", "hgt_hyblev1", "hgt_hyblev1", "fv3_history2d", "all", .false., "none", 2 247 | "gfs_phys", "spfh_hyblev1", "spfh_hyblev1", "fv3_history2d", "all", .false., "none", 2 248 | "gfs_phys", "ugrd_hyblev1", "ugrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 249 | "gfs_phys", "vgrd_hyblev1", "vgrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 250 | "gfs_phys", "tmp_hyblev1", "tmp_hyblev1", "fv3_history2d", "all", .false., "none", 2 251 | "gfs_phys", "gfluxi", "gflux", "fv3_history2d", "all", .false., "none", 2 252 | "gfs_phys", "lhtfl", "lhtfl", "fv3_history2d", "all", .false., "none", 2 253 | "gfs_phys", "shtfl", "shtfl", "fv3_history2d", "all", .false., "none", 2 254 | "gfs_phys", "pevpr", "pevpr", "fv3_history2d", "all", .false., "none", 2 255 | "gfs_phys", "pevpr_ave", "pevpr_ave", "fv3_history2d", "all", .false., "none", 2 256 | "gfs_phys", "sbsno_ave", "sbsno_ave", "fv3_history2d", "all", .false., "none", 2 257 | "gfs_phys", "sfexc", "sfexc", "fv3_history2d", "all", .false., "none", 2 258 | "gfs_phys", "snohf", "snohf", "fv3_history2d", "all", .false., "none", 2 259 | "gfs_phys", "snowc_ave", "snowc_ave", "fv3_history2d", "all", .false., "none", 2 260 | "gfs_phys", "spfhmax2m", "spfhmax_max2m", "fv3_history2d", "all", .false., "none", 2 261 | "gfs_phys", "spfhmin2m", "spfhmin_min2m", "fv3_history2d", "all", .false., "none", 2 262 | "gfs_phys", "tmpmax2m", "tmax_max2m", "fv3_history2d", "all", .false., "none", 2 263 | "gfs_phys", "tmpmin2m", "tmin_min2m", "fv3_history2d", "all", .false., "none", 2 264 | "gfs_phys", "ssrun_acc", "ssrun_acc", "fv3_history2d", "all", .false., "none", 2 265 | "gfs_phys", "sunsd_acc", "sunsd_acc", "fv3_history2d", "all", .false., "none", 2 266 | "gfs_phys", "watr_acc", "watr_acc", "fv3_history2d", "all", .false., "none", 2 267 | "gfs_phys", "wilt", "wilt", "fv3_history2d", "all", .false., "none", 2 268 | "gfs_phys", "vbdsf_ave", "vbdsf_ave", "fv3_history2d", "all", .false., "none", 2 269 | "gfs_phys", "vddsf_ave", "vddsf_ave", "fv3_history2d", "all", .false., "none", 2 270 | "gfs_phys", "nbdsf_ave", "nbdsf_ave", "fv3_history2d", "all", .false., "none", 2 271 | "gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 272 | "gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 273 | 274 | #============================================================================================= 275 | # 276 | #====> This file can be used with diag_manager/v2.0a (or higher) <==== 277 | # 278 | # 279 | # FORMATS FOR FILE ENTRIES (not all input values are used) 280 | # ------------------------ 281 | # 282 | #"file_name", output_freq, "output_units", format, "time_units", "long_name", 283 | # 284 | # 285 | #output_freq: > 0 output frequency in "output_units" 286 | # = 0 output frequency every time step 287 | # =-1 output frequency at end of run 288 | # 289 | #output_units = units used for output frequency 290 | # (years, months, days, minutes, hours, seconds) 291 | # 292 | #time_units = units used to label the time axis 293 | # (days, minutes, hours, seconds) 294 | # 295 | # 296 | # FORMAT FOR FIELD ENTRIES (not all input values are used) 297 | # ------------------------ 298 | # 299 | #"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing 300 | # 301 | #time_avg = .true. or .false. 302 | # 303 | #packing = 1 double precision 304 | # = 2 float 305 | # = 4 packed 16-bit integers 306 | # = 8 packed 1-byte (not tested?) 307 | -------------------------------------------------------------------------------- /src/resources/run/field_table: -------------------------------------------------------------------------------- 1 | # added by FRE: sphum must be present in atmos 2 | # specific humidity for moist runs 3 | "TRACER", "atmos_mod", "sphum" 4 | "longname", "specific humidity" 5 | "units", "kg/kg" 6 | "profile_type", "fixed", "surface_value=1.e30" / 7 | # prognostic cloud water mixing ratio 8 | "TRACER", "atmos_mod", "liq_wat" 9 | "longname", "cloud water mixing ratio" 10 | "units", "kg/kg" 11 | "profile_type", "fixed", "surface_value=1.e30" / 12 | "TRACER", "atmos_mod", "rainwat" 13 | "longname", "rain mixing ratio" 14 | "units", "kg/kg" 15 | "profile_type", "fixed", "surface_value=1.e30" / 16 | "TRACER", "atmos_mod", "ice_wat" 17 | "longname", "cloud ice mixing ratio" 18 | "units", "kg/kg" 19 | "profile_type", "fixed", "surface_value=1.e30" / 20 | "TRACER", "atmos_mod", "snowwat" 21 | "longname", "snow mixing ratio" 22 | "units", "kg/kg" 23 | "profile_type", "fixed", "surface_value=1.e30" / 24 | "TRACER", "atmos_mod", "graupel" 25 | "longname", "graupel mixing ratio" 26 | "units", "kg/kg" 27 | "profile_type", "fixed", "surface_value=1.e30" / 28 | # prognostic ozone mixing ratio tracer 29 | "TRACER", "atmos_mod", "o3mr" 30 | "longname", "ozone mixing ratio" 31 | "units", "kg/kg" 32 | "profile_type", "fixed", "surface_value=1.e30" / 33 | # prognostic subgrid scale turbulent kinetic energy 34 | "TRACER", "atmos_mod", "sgs_tke" 35 | "longname", "subgrid scale turbulent kinetic energy" 36 | "units", "m2/s2" 37 | "profile_type", "fixed", "surface_value=1.e30" / 38 | # non-prognostic cloud amount 39 | "TRACER", "atmos_mod", "cld_amt" 40 | "longname", "cloud amount" 41 | "units", "1" 42 | "profile_type", "fixed", "surface_value=1.e30" / 43 | -------------------------------------------------------------------------------- /src/resources/run/fort.41.in: -------------------------------------------------------------------------------- 1 | &config 2 | atm_files_input_grid='gfs.t00z.atmanl.nc' 3 | convert_atm=t 4 | convert_nst=t 5 | convert_sfc=t 6 | cycle_day=1 7 | cycle_hour=0 8 | cycle_mon=1 9 | data_dir_input_grid='./' 10 | fix_dir_target_grid='./fix/' 11 | input_type='gaussian_netcdf' 12 | mosaic_file_target_grid='./INPUT/C768_mosaic.nc' 13 | orog_dir_target_grid='./INPUT/' 14 | orog_files_target_grid='C768_oro_data.tile1.nc','C768_oro_data.tile2.nc','C768_oro_data.tile3.nc','C768_oro_data.tile4.nc','C768_oro_data.tile5.nc','C768_oro_data.tile6.nc' 15 | sfc_files_input_grid='gfs.t00z.sfcanl.nc' 16 | tracers='sphum','liq_wat','o3mr','ice_wat','rainwat','snowwat','graupel' 17 | tracers_input='spfh','clwmr','o3mr','icmr','rwmr','snmr','grle' 18 | vcoord_file_target_grid='./fix/global_hyblev.l65.txt' 19 | / 20 | -------------------------------------------------------------------------------- /src/resources/run/get_gfs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Grab GFS Analysis files from NOAA's S3 bucket. 4 | # The date time format should be ISO 8601 (e.g. YYYY-mm-ddTHH:MMZ). 5 | 6 | set -x 7 | ftime=$(< /fsx/run/ftime) 8 | y=${ftime:0:4} 9 | m=${ftime:5:2} 10 | d=${ftime:8:2} 11 | h=${ftime:11:2} 12 | 13 | aws s3 cp --quiet s3://noaa-gfs-bdp-pds/gfs.${y}${m}${d}/${h}/atmos/gfs.t${h}z.atmanl.nc /fsx/run 14 | aws s3 cp --quiet s3://noaa-gfs-bdp-pds/gfs.${y}${m}${d}/${h}/atmos/gfs.t${h}z.sfcanl.nc /fsx/run 15 | 16 | -------------------------------------------------------------------------------- /src/resources/run/global_h2oprdlos.f77: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/global_h2oprdlos.f77 -------------------------------------------------------------------------------- /src/resources/run/global_o3prdlos.f77: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/global_o3prdlos.f77 -------------------------------------------------------------------------------- /src/resources/run/input.nml: -------------------------------------------------------------------------------- 1 | &amip_interp_nml 2 | data_set='reynolds_oi' 3 | date_out_of_range='climo' 4 | interp_oi_sst=t 5 | no_anom_sst=f 6 | use_ncep_sst=t 7 | / 8 | &atmos_model_nml 9 | blocksize=32 10 | ccpp_suite='FV3_GFS_v15p2' 11 | fdiag=1.0 12 | / 13 | &cires_ugwp_nml 14 | knob_ugwp_azdir=2,4,4,4 15 | knob_ugwp_dokdis=1 16 | knob_ugwp_effac=1,1,1,1 17 | knob_ugwp_ndx4lh=1 18 | knob_ugwp_solver=2 19 | knob_ugwp_source=1,1,0,0 20 | knob_ugwp_stoch=0,0,0,0 21 | knob_ugwp_wvspec=1,25,25,25 22 | launch_level=25 23 | / 24 | &coupler_nml 25 | / 26 | &diag_manager_nml 27 | prepend_date=f 28 | / 29 | &external_ic_nml 30 | levp=65 31 | / 32 | &fms_io_nml 33 | checksum_required=f 34 | max_files_r=100 35 | max_files_w=100 36 | / 37 | &fms_nml 38 | clock_grain='ROUTINE' 39 | domains_stack_size=3000000 40 | / 41 | &fv_core_nml 42 | a_imp=1.0 43 | agrid_vel_rst=t 44 | consv_te=1.0 45 | d2_bg_k1=0.15 46 | d2_bg_k2=0.02 47 | d4_bg=0.12 48 | d_con=1.0 49 | d_ext=0.0 50 | dddmp=0.1 51 | delt_max=0.002 52 | dnats=1 53 | do_sat_adj=t 54 | do_vort_damp=t 55 | external_eta=t 56 | external_ic=t 57 | fill=t 58 | fv_sg_adj=450 59 | grid_type=-1 60 | hord_dp=-5 61 | hord_mt=5 62 | hord_tm=5 63 | hord_tr=8 64 | hord_vt=5 65 | hydrostatic=f 66 | k_split=2 67 | kord_mt=9 68 | kord_tm=-9 69 | kord_tr=9 70 | kord_wz=9 71 | layout=6,12 72 | mountain=f 73 | n_split=6 74 | n_sponge=10 75 | na_init=0 76 | nggps_ic=t 77 | nord=2 78 | npx=769 79 | npy=769 80 | npz=64 81 | ntiles=6 82 | nudge_qv=t 83 | nwat=6 84 | p_fac=0.1 85 | phys_hydrostatic=f 86 | print_freq=6 87 | res_latlon_dynamics='' 88 | rf_cutoff=7.5e2 89 | tau=10.0 90 | vtdm4=0.02 91 | warm_start=f 92 | z_tracer=t 93 | / 94 | &fv_grid_nml 95 | grid_file='INPUT/grid_spec.nc' 96 | / 97 | &fv_nwp_nudge_nml 98 | / 99 | &gfdl_cloud_microphysics_nml 100 | c_cracw=0.8 101 | c_paut=0.5 102 | c_pgacs=0.01 103 | c_psaci=0.05 104 | ccn_l=300. 105 | ccn_o=100. 106 | do_sedi_heat=f 107 | dw_land=0.16 108 | fast_sat_adj=t 109 | fix_negative=t 110 | icloud_f=1 111 | qi0_crt=8.0e-5 112 | ql_mlt=1.0e-3 113 | rh_inc=0.30 114 | rh_inr=0.30 115 | rh_ins=0.30 116 | tau_l2v=225. 117 | use_ccn=t 118 | vg_max=12.0 119 | vi_max=1.0 120 | vs_max=2.0 121 | z_slope_ice=t 122 | / 123 | &gfs_physics_nml 124 | cdmbgwd=3.5,0.25 125 | cnvcld=t 126 | cnvgwd=t 127 | dspheat=t 128 | effr_in=t 129 | fhcyc=24.0 130 | fhzero=6.0 131 | h2o_phys=t 132 | hybedmf=t 133 | iaer=111 134 | ialb=1 135 | ico2=2 136 | iems=1 137 | imfdeepcnv=2 138 | imfshalcnv=2 139 | imp_physics=11 140 | isol=2 141 | isot=1 142 | isubc_lw=2 143 | isubc_sw=2 144 | ivegsrc=1 145 | lgfdlmprad=t 146 | ncld=5 147 | nst_anl=t 148 | nstf_name=2,0,0,0,0 149 | oz_phys=f 150 | oz_phys_2015=t 151 | prautco=0.00015,0.00015 152 | psautco=0.0008,0.0005 153 | redrag=t 154 | shal_cnv=t 155 | trans_trac=t 156 | use_ufo=t 157 | / 158 | &interpolator_nml 159 | interp_method='conserve_great_circle' 160 | / 161 | &mpp_io_nml 162 | / 163 | &nam_physics_nml 164 | / 165 | &nam_sfcperts 166 | / 167 | &nam_stochy 168 | iseed_shum=2021051911012 169 | iseed_skeb=2021051911011 170 | iseed_sppt=2021051911013 171 | lat_s=768 172 | lon_s=1536 173 | ntrunc=766 174 | shum=0.005 175 | shum_lscale=500000.0 176 | shum_tau=21600.0 177 | skeb=0.3 178 | skeb_lscale=500000.0 179 | skeb_npass=30 180 | skeb_tau=21600.0 181 | sppt=0.5 182 | sppt_logit=t 183 | sppt_lscale=500000.0 184 | sppt_sfclimit=t 185 | sppt_tau=21600.0 186 | use_zmtnblck=t 187 | / 188 | &namsfc 189 | fabsl=99999 190 | faisl=99999 191 | faiss=99999 192 | fnabsc='./fix/global_mxsnoalb.uariz.t1534.3072.1536.rg.grb' 193 | fnaisc='./fix/CFSR.SEAICE.1982.2012.monthly.clim.grb' 194 | fnalbc='./fix/global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb' 195 | fnalbc2='./fix/global_albedo4.1x1.grb' 196 | fnglac='./fix/global_glacier.2x2.grb' 197 | fnmskh='./fix/global_slmask.t1534.3072.1536.grb' 198 | fnmxic='./fix/global_maxice.2x2.grb' 199 | fnslpc='./fix/global_slope.1x1.grb' 200 | fnsmcc='./fix/global_soilmgldas.statsgo.t1534.3072.1536.grb' 201 | fnsnoc='./fix/global_snoclim.1.875.grb' 202 | fnsotc='./fix/global_soiltype.statsgo.t1534.3072.1536.rg.grb' 203 | fntg3c='./fix/global_tg3clim.2.6x1.5.grb' 204 | fntsfc='./fix/RTGSST.1982.2012.monthly.clim.grb' 205 | fnvegc='./fix/global_vegfrac.0.144.decpercent.grb' 206 | fnvetc='./fix/global_vegtype.igbp.t1534.3072.1536.rg.grb' 207 | fnvmnc='./fix/global_shdmin.0.144x0.144.grb' 208 | fnvmxc='./fix/global_shdmax.0.144x0.144.grb' 209 | fnzorc='igbp' 210 | fsicl=99999 211 | fslpl=99999 212 | fsnol=99999.0 213 | fsotl=99999.0 214 | ftsfs=90.0 215 | fvetl=99999 216 | fvmnl=99999 217 | fvmxl=99999 218 | / 219 | &nest_nml 220 | / 221 | &surf_map_nml 222 | / 223 | &test_case_nml 224 | / 225 | -------------------------------------------------------------------------------- /src/resources/run/model_configure.in: -------------------------------------------------------------------------------- 1 | app_domain: global 2 | atmos_nthreads: 4 3 | calendar: julian 4 | cpl: .false. 5 | debug_affinity: .false. 6 | dt_atmos: 225 7 | ENS_SPS: .false. 8 | filename_base: atm sfc 9 | iau_offset: 0 10 | ideflate: 0 11 | imo: 3072 12 | jmo: 1536 13 | memuse_verbose: .false. 14 | nbits: 0 15 | ncores_per_node: 96 16 | nfhmax_hf: 6 17 | nfhout_hf: 1 18 | nfhout: 3 19 | nhours_fcst: 6 20 | nsout: -1 21 | num_files: 2 22 | output_1st_tstep_rst: .false. 23 | output_file: netcdf_parallel 24 | output_grid: gaussian_grid 25 | output_history: .true. 26 | PE_MEMBER01: 480 27 | print_esmf: .false. 28 | quilting: .true. 29 | restart_interval: 120 30 | RUN_CONTINUE: .false. 31 | start_day: 1 32 | start_hour: 0 33 | start_minute: 0 34 | start_month: 9 35 | start_second: 0 36 | start_year: 2022 37 | total_member: 1 38 | use_hyper_thread: .false. 39 | write_dopost: .false. 40 | write_fsyncflag: .true. 41 | write_groups: 2 42 | write_nemsioflip: .true. 43 | write_tasks_per_group: 24 44 | -------------------------------------------------------------------------------- /src/resources/run/nems.configure: -------------------------------------------------------------------------------- 1 | EARTH_component_list: ATM 2 | ATM_model: fv3 3 | runSeq:: 4 | ATM 5 | :: 6 | 7 | -------------------------------------------------------------------------------- /src/resources/run/post/00/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf000.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf000.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/00/params_grib2_tbl_new: -------------------------------------------------------------------------------- 1 | 0 7 11 0 4LFTX 2 | 0 7 193 1 4LFTX 3 | 0 3 19 0 5WAVA 4 | 0 3 197 1 5WAVA 5 | 0 3 15 0 5WAVH 6 | 0 3 193 1 5WAVH 7 | 0 20 106 0 AACOEF 8 | 0 2 11 0 ABSD 9 | 4 2 5 0 ABSFRQ 10 | 0 1 18 0 ABSH 11 | 4 2 6 0 ABSRB 12 | 0 2 10 0 ABSV 13 | 0 18 0 0 ACCES 14 | 0 18 1 0 ACIOD 15 | 2 0 228 1 ACOND 16 | 0 1 224 1 ACPCPN 17 | 0 1 10 0 ACPCP 18 | 0 18 2 0 ACRADP 19 | 10 4 13 0 ACWSRD 20 | 1 2 11 0 ACWSR 21 | 0 20 105 0 AECOEF 22 | 0 20 3 0 AEMFLX 23 | 0 13 0 0 AEROT 24 | 0 2 36 0 AFRWE 25 | 0 20 50 0 AIA 26 | 0 18 10 0 AIRCON 27 | 2 0 208 1 AKHS 28 | 2 0 209 1 AKMS 29 | 0 19 1 0 ALBDO 30 | 0 20 108 0 ALBGRD 31 | 0 20 107 0 ALBSAT 32 | 10 0 38 0 ALCWH 33 | 0 20 110 0 ALEGRD 34 | 0 20 109 0 ALESAT 35 | 10 0 39 0 ALRRC 36 | 0 3 11 0 ALTS 37 | 10 0 37 0 ALTWH 38 | 2 0 219 1 AMIXL 39 | 3 192 11 0 AMSRE10 40 | 3 192 12 0 AMSRE11 41 | 3 192 13 0 AMSRE12 42 | 3 192 10 0 AMSRE9 43 | 0 20 59 0 ANCON 44 | 3 1 23 0 ANGCOE 45 | 0 20 111 0 ANGSTEXP 46 | 0 20 5 0 ANPEMFLX 47 | 0 20 4 0 ANPMFLX 48 | 10 3 197 1 AOHFLX 49 | 3 1 20 0 AOT06 50 | 3 1 21 0 AOT08 51 | 3 1 22 0 AOT16 52 | 0 20 102 0 AOTK 53 | 0 1 223 1 APCPN 54 | 0 1 8 0 APCP 55 | 0 0 21 0 APTMP 56 | 0 1 221 1 ARAIN 57 | 0 20 8 0 AREMFLX 58 | 0 3 21 0 ASGSO 59 | 0 3 24 0 ASGSO 60 | 10 3 198 1 ASHFL 61 | 0 20 60 0 ASNCON 62 | 0 1 29 0 ASNOW 63 | 0 20 104 0 ASYSFK 64 | 0 190 0 0 ATEXT 65 | 3 1 13 0 ATMDIV 66 | 0 20 101 0 ATMTK 67 | 2 3 201 1 AVSFT 68 | 2 3 200 1 BARET 69 | 10 4 7 0 BATHY 70 | 10 0 44 0 BENINX 71 | 1 0 5 0 BGRUN 72 | 1 0 192 1 BGRUN 73 | 10 4 194 1 BKENG 74 | 0 7 1 0 BLI 75 | 0 7 16 0 BLKRN 76 | 0 2 20 0 BLYDP 77 | 2 0 14 0 BMIXL 78 | 2 0 197 1 BMIXL 79 | 0 7 201 1 BNEGELAY 80 | 2 3 4 0 BOTLST 81 | 0 7 202 1 BPOSELAY 82 | 0 15 1 0 BREF 83 | 3 1 27 0 BRFLF 84 | 0 5 7 0 BRTEMP 85 | 0 4 4 0 BRTMP 86 | 0 15 2 0 BRVEL 87 | 0 15 0 0 BSWID 88 | 4 3 0 0 BTOT 89 | 4 3 1 0 BVEC1 90 | 4 3 2 0 BVEC2 91 | 4 3 3 0 BVEC3 92 | 0 18 18 0 CAACL 93 | 4 8 4 0 CAIIRAD 94 | 0 7 206 1 CANGLE 95 | 2 1 192 1 CANL 96 | 0 7 6 0 CAPE 97 | 0 1 88 0 CATCP 98 | 0 19 29 0 CATEDR 99 | 0 19 22 0 CAT 100 | 0 20 63 0 CAVEMDL 101 | 0 20 70 0 CBECSLSP 102 | 0 6 25 0 CBHE 103 | 0 20 67 0 CBLCLDSP 104 | 0 20 73 0 CBLCSRCP 105 | 3 1 14 0 CBTMP 106 | 3 1 98 0 CCMPEMRR 107 | 2 0 15 0 CCOND 108 | 2 0 199 1 CCOND 109 | 0 6 7 0 CDCA 110 | 0 6 11 0 CDCB 111 | 0 6 22 0 CDCC 112 | 0 17 3 0 CDCDLTFD 113 | 0 6 23 0 CDCIMR 114 | 0 6 2 0 CDCON 115 | 0 6 12 0 CDCTOP 116 | 0 6 8 0 CDCT 117 | 0 17 2 0 CDGDLTFD 118 | 0 6 14 0 CDLYR 119 | 0 6 192 1 CDLYR 120 | 0 4 195 1 CDUVB 121 | 10 0 16 0 CDWW 122 | 0 2 29 0 CD 123 | 0 2 196 1 CD 124 | 0 6 13 0 CEIL 125 | 0 5 197 1 CFNLF 126 | 0 4 199 1 CFNSF 127 | 0 1 34 0 CFRZR 128 | 0 1 193 1 CFRZR 129 | 0 20 54 0 CGDRC 130 | 0 20 53 0 CGPRC 131 | 10 3 2 0 CH 132 | 0 18 17 0 CIAIRC 133 | 0 19 206 1 CICEL 134 | 0 1 35 0 CICEP 135 | 0 1 194 1 CICEP 136 | 10 2 12 0 CICES 137 | 0 6 0 0 CICE 138 | 0 19 208 1 CIFLT 139 | 0 1 82 0 CIMIXR 140 | 0 20 66 0 CINCLDSP 141 | 0 20 69 0 CINCSLSP 142 | 0 20 72 0 CINCSRCP 143 | 0 7 7 0 CIN 144 | 0 20 68 0 CIRELREP 145 | 0 20 74 0 CIRERECP 146 | 2 3 22 0 CISICE 147 | 2 3 20 0 CISOILM 148 | 2 0 23 0 CISOILW 149 | 0 19 207 1 CIVIS 150 | 3 2 9 0 CLDALB 151 | 3 2 10 0 CLDEMISS 152 | 3 2 8 0 CLDIWP 153 | 3 2 7 0 CLDLWP 154 | 3 2 5 0 CLDODEP 155 | 3 2 6 0 CLDPER 156 | 3 2 4 0 CLDPHAS 157 | 3 1 16 0 CLDRAD 158 | 3 2 3 0 CLDTYPE 159 | 0 1 235 1 CLLMR 160 | 3 0 7 0 CLOUDM 161 | 0 1 22 0 CLWMR 162 | 0 2 216 1 CNGWDU 163 | 0 2 217 1 CNGWDV 164 | 0 3 209 1 CNVDEMF 165 | 0 3 208 1 CNVDMF 166 | 0 0 196 1 CNVHR 167 | 0 1 213 1 CNVMR 168 | 0 3 207 1 CNVUMF 169 | 0 2 212 1 CNVU 170 | 0 2 213 1 CNVV 171 | 2 0 13 0 CNWAT 172 | 2 0 196 1 CNWAT 173 | 0 20 56 0 COAIA 174 | 0 20 1 0 COLMD 175 | 0 20 51 0 CONAIR 176 | 0 7 19 0 CONAPES 177 | 0 1 216 1 CONDP 178 | 0 19 16 0 CONTB 179 | 0 19 14 0 CONTET 180 | 0 19 13 0 CONTI 181 | 0 19 24 0 CONTKE 182 | 0 19 15 0 CONTT 183 | 0 19 26 0 CONVO 184 | 0 19 222 1 CONVP 185 | 0 192 6 0 COVMM 186 | 0 192 1 0 COVMZ 187 | 0 2 205 1 COVMZ 188 | 0 192 11 0 COVPSPS 189 | 0 192 8 0 COVQM 190 | 0 192 12 0 COVQQ 191 | 0 192 10 0 COVQVV 192 | 0 192 7 0 COVQZ 193 | 0 192 3 0 COVTM 194 | 0 2 207 1 COVTM 195 | 0 192 14 0 COVTT 196 | 0 192 9 0 COVTVV 197 | 0 192 4 0 COVTW 198 | 0 192 2 0 COVTZ 199 | 0 2 206 1 COVTZ 200 | 0 192 13 0 COVVVVV 201 | 0 192 5 0 COVZZ 202 | 0 1 39 0 CPOFP 203 | 1 1 193 1 CPOFP 204 | 1 1 192 1 CPOZP 205 | 1 1 0 0 CPPOP 206 | 0 1 37 0 CPRAT 207 | 0 1 196 1 CPRAT 208 | 0 1 33 0 CRAIN 209 | 0 1 192 1 CRAIN 210 | 0 20 71 0 CRERELSP 211 | 0 1 76 0 CRRATE 212 | 4 2 9 0 CRTFRQ 213 | 1 2 13 0 CSAFC 214 | 3 1 15 0 CSBTMP 215 | 0 5 196 1 CSDLF 216 | 0 4 196 1 CSDSF 217 | 3 2 0 0 CSKPROB 218 | 3 1 17 0 CSKYRAD 219 | 0 1 36 0 CSNOW 220 | 0 1 195 1 CSNOW 221 | 0 1 58 0 CSRATE 222 | 0 1 55 0 CSRWE 223 | 0 5 195 1 CSULF 224 | 0 4 198 1 CSUSF 225 | 3 1 3 0 CTOPHQI 226 | 3 1 2 0 CTOPH 227 | 3 2 2 0 CTOPRES 228 | 3 2 1 0 CTOPTMP 229 | 0 19 21 0 CTP 230 | 0 6 16 0 CUEFI 231 | 0 6 194 1 CUEFI 232 | 0 6 6 0 CWAT 233 | 0 7 195 1 CWDI 234 | 0 6 15 0 CWORK 235 | 0 6 193 1 CWORK 236 | 0 1 48 0 CWP 237 | 1 1 195 1 CWR 238 | 10 4 195 1 DBSS 239 | 0 7 203 1 DCAPE 240 | 0 20 12 0 DDMFLX 241 | 0 3 30 0 DDRATE 242 | 0 20 15 0 DDVEL 243 | 2 0 30 0 DECF 244 | 0 3 14 0 DENALT 245 | 0 3 10 0 DEN 246 | 0 0 7 0 DEPR 247 | 1 0 13 0 DEPWSS 248 | 10 2 2 0 DICED 249 | 4 4 2 0 DIFEFLUX 250 | 4 4 4 0 DIFIFLUX 251 | 4 4 0 0 DIFPFLUX 252 | 3 6 5 0 DIFSOLEX 253 | 3 6 4 0 DIFSOLIR 254 | 0 4 14 0 DIFSWRF 255 | 10 1 0 0 DIRC 256 | 2 3 14 0 DIREC 257 | 10 0 10 0 DIRPW 258 | 3 6 3 0 DIRSOLEX 259 | 3 6 2 0 DIRSOLIR 260 | 10 0 12 0 DIRSW 261 | 10 0 33 0 DIRWTS 262 | 10 0 32 0 DIRWWW 263 | 1 0 7 0 DISRS 264 | 0 3 6 0 DIST 265 | 0 5 8 0 DLWRFCS 266 | 0 5 3 0 DLWRF 267 | 0 5 192 1 DLWRF 268 | 0 3 28 0 DMFLX 269 | 0 0 6 0 DPT 270 | 2 4 8 0 DRTCODE 271 | 0 18 12 0 DRYDEP 272 | 0 19 237 1 DRYTPROB 273 | 4 7 2 0 DSKDAY 274 | 4 7 1 0 DSKINT 275 | 4 7 3 0 DSKNGT 276 | 10 3 1 0 DSLM 277 | 10 191 3 0 DSLOBSO 278 | 0 191 3 0 DSLOBS 279 | 0 4 52 0 DSWRFCS 280 | 0 4 13 0 DSWRFLX 281 | 0 4 7 0 DSWRF 282 | 0 4 192 1 DSWRF 283 | 0 4 204 1 DTRF 284 | 2 4 7 0 DUFMCODE 285 | 0 4 194 1 DUVB 286 | 0 4 12 0 DWUVR 287 | 0 2 9 0 DZDT 288 | 3 2 11 0 EAODR 289 | 3 5 5 0 EBSDSSTS 290 | 3 5 4 0 EBSSTSTD 291 | 0 19 30 0 EDPARM 292 | 0 7 204 1 EFHL 293 | 0 7 9 0 EHLX 294 | 4 2 1 0 ELCDEN 295 | 4 0 1 0 ELECTMP 296 | 10 3 194 1 ELEV 297 | 0 19 238 1 ELLINX 298 | 0 191 197 1 ELONN 299 | 0 191 193 1 ELON 300 | 0 1 211 1 EMNP 301 | 0 0 3 0 EPOT 302 | 0 19 218 1 EPSR 303 | 10 3 252 1 EROSNP 304 | 1 0 3 0 ESCT 305 | 0 7 205 1 ESP 306 | 3 1 0 0 ESTP 307 | 3 1 4 0 ESTUGRD 308 | 3 1 5 0 ESTVGRD 309 | 0 2 32 0 ETACVV 310 | 10 3 250 1 ETCWL 311 | 4 3 4 0 ETOT 312 | 10 3 193 1 ETSRG 313 | 0 2 38 0 ETSS 314 | 4 6 3 0 EUVIRR 315 | 4 8 1 0 EUVRAD 316 | 2 0 6 0 EVAPT 317 | 0 1 79 0 EVARATE 318 | 2 3 198 1 EVBS 319 | 2 0 229 1 EVCW 320 | 4 3 5 0 EVEC1 321 | 4 3 6 0 EVEC2 322 | 4 3 7 0 EVEC3 323 | 2 0 29 0 EVERF 324 | 0 1 6 0 EVP 325 | 2 0 213 1 EWATR 326 | 0 2 39 0 EWTPARM 327 | 4 6 5 0 F107 328 | 2 4 3 0 FBAREA 329 | 2 4 10 0 FBUPINX 330 | 0 6 37 0 FCONPC 331 | 3 5 3 0 FDNSSTMP 332 | 2 4 11 0 FDSRTE 333 | 1 0 0 0 FFLDG 334 | 1 0 1 0 FFLDRO 335 | 2 4 6 0 FFMCODE 336 | 0 1 228 1 FICEAC 337 | 0 6 21 0 FICE 338 | 0 6 199 1 FICE 339 | 3 0 9 0 FIREDI 340 | 2 4 1 0 FIREODT 341 | 2 4 0 0 FIREOLK 342 | 2 3 203 1 FLDCP 343 | 1 0 12 0 FLDPSW 344 | 0 19 205 1 FLGHT 345 | 0 7 18 0 FLXRN 346 | 2 4 4 0 FOSINDX 347 | 0 1 67 0 FPRATE 348 | 0 6 32 0 FRACCC 349 | 0 1 43 0 FRAIN 350 | 0 1 202 1 FRAIN 351 | 10 0 63 0 FREWWW 352 | 0 2 30 0 FRICV 353 | 10 0 17 0 FRICV 354 | 0 2 197 1 FRICV 355 | 0 1 227 1 FROZR 356 | 2 3 24 0 FRSTINX 357 | 10 0 64 0 FRWWTSW 358 | 0 1 225 1 FRZR 359 | 10 3 204 1 FRZSPR 360 | 0 1 121 0 FSNOWC 361 | 0 6 36 0 FSTRPC 362 | 2 4 5 0 FWINX 363 | 0 1 95 0 FZPRATE 364 | 0 18 3 0 GDCES 365 | 0 18 4 0 GDIOD 366 | 0 18 5 0 GDRADP 367 | 0 191 1 0 GEOLAT 368 | 0 191 2 0 GEOLON 369 | 0 2 43 0 GEOWD 370 | 0 2 44 0 GEOWS 371 | 2 0 10 0 GFLUX 372 | 2 0 193 1 GFLUX 373 | 2 5 1 0 GLACTMP 374 | 0 3 9 0 GPA 375 | 0 1 75 0 GPRATE 376 | 0 3 4 0 GP 377 | 0 4 3 0 GRAD 378 | 0 7 17 0 GRDRN 379 | 0 1 32 0 GRLE 380 | 3 6 1 0 GSOLEXP 381 | 3 6 0 0 GSOLIRR 382 | 0 2 22 0 GUST 383 | 0 2 210 1 GWDU 384 | 0 2 211 1 GWDV 385 | 0 3 23 0 GWD 386 | 1 0 9 0 GWLOWS 387 | 2 0 214 1 GWREC 388 | 1 0 8 0 GWUPS 389 | 0 1 71 0 HAILMXR 390 | 0 19 198 1 HAILPROB 391 | 0 1 73 0 HAILPR 392 | 0 1 31 0 HAIL 393 | 4 8 2 0 HARAD 394 | 0 19 210 1 HAVNI 395 | 0 6 5 0 HCDC 396 | 0 6 26 0 HCONCB 397 | 0 6 27 0 HCONCT 398 | 0 0 12 0 HEATX 399 | 4 8 6 0 HELCOR 400 | 2 0 24 0 HFLUX 401 | 0 20 62 0 HGTMD 402 | 0 3 211 1 HGTN 403 | 0 3 203 1 HGTX 404 | 0 3 204 1 HGTY 405 | 0 3 5 0 HGT 406 | 0 19 32 0 HIFREL 407 | 2 4 2 0 HINDEX 408 | 0 7 8 0 HLCY 409 | 0 18 16 0 HMXACON 410 | 0 3 18 0 HPBL 411 | 0 3 196 1 HPBL 412 | 4 2 8 0 HPRIMF 413 | 0 19 196 1 HRCONO 414 | 0 15 16 0 HSRHT 415 | 0 15 15 0 HSR 416 | 0 3 7 0 HSTDV 417 | 10 0 3 0 HTSGW 418 | 0 3 3 0 ICAHT 419 | 1 2 7 0 ICECIL 420 | 10 2 0 0 ICEC 421 | 10 2 7 0 ICED 422 | 10 2 6 0 ICEG 423 | 10 2 9 0 ICEPRS 424 | 0 19 27 0 ICESC 425 | 0 19 37 0 ICESEV 426 | 1 2 6 0 ICETIL 427 | 10 2 1 0 ICETK 428 | 10 2 8 0 ICETMP 429 | 0 19 6 0 ICIB 430 | 0 19 20 0 ICIP 431 | 0 19 5 0 ICIT 432 | 0 19 7 0 ICI 433 | 0 1 23 0 ICMR 434 | 0 19 233 1 ICPRB 435 | 0 19 234 1 ICSEV 436 | 1 2 5 0 ICTKIL 437 | 2 0 207 1 ICWAT 438 | 0 1 20 0 ILIQW 439 | 10 0 27 0 IMFTSW 440 | 10 0 26 0 IMFWW 441 | 10 0 25 0 IMWF 442 | 2 4 9 0 INFSINX 443 | 4 4 3 0 INTEFLUX 444 | 10 4 196 1 INTFD 445 | 4 4 5 0 INTIFLUX 446 | 4 4 1 0 INTPFLUX 447 | 4 2 3 0 IONDEN 448 | 4 0 3 0 IONTMP 449 | 0 1 68 0 IPRATE 450 | 3 1 1 0 IRRATE 451 | 10 191 0 0 IRTSEC 452 | 3 5 0 0 ISSTMP 453 | 0 19 235 1 JFWPRB 454 | 10 3 201 1 KENG 455 | 0 7 3 0 KOX 456 | 10 0 43 0 KSSEDW 457 | 0 7 2 0 KX 458 | 0 7 198 1 LAI 459 | 1 2 8 0 LANDIL 460 | 2 0 218 1 LANDN 461 | 2 0 8 0 LANDU 462 | 2 0 0 0 LAND 463 | 0 2 202 1 LAPP 464 | 0 0 8 0 LAPR 465 | 0 2 198 1 LAUV 466 | 0 19 209 1 LAVNI 467 | 0 2 200 1 LAVV 468 | 0 3 205 1 LAYTH 469 | 0 6 3 0 LCDC 470 | 10 3 203 1 LCH 471 | 2 0 28 0 LEAINX 472 | 0 7 10 0 LFTX 473 | 0 7 192 1 LFTX 474 | 0 0 10 0 LHTFL 475 | 0 1 229 1 LICEAC 476 | 0 13 195 1 LIPMF 477 | 2 3 10 0 LIQVSM 478 | 0 15 4 0 LMAXBR 479 | 4 7 0 0 LMBINT 480 | 0 3 210 1 LMH 481 | 0 2 218 1 LMV 482 | 0 2 203 1 LOPP 483 | 0 2 199 1 LOUV 484 | 0 2 201 1 LOVV 485 | 2 3 3 0 LOWLSM 486 | 0 13 194 1 LPMTF 487 | 0 3 201 1 LPSX 488 | 0 3 202 1 LPSY 489 | 0 0 195 1 LRGHR 490 | 0 1 217 1 LRGMR 491 | 2 0 212 1 LSOIL 492 | 2 3 199 1 LSPA 493 | 0 1 54 0 LSPRATE 494 | 0 1 77 0 LSRRATE 495 | 0 1 59 0 LSSRATE 496 | 0 1 56 0 LSSRWE 497 | 0 1 47 0 LSWP 498 | 0 17 0 0 LTNGSD 499 | 0 17 192 1 LTNG 500 | 0 17 1 0 LTPINX 501 | 0 5 2 0 LWAVR 502 | 0 5 194 1 LWHR 503 | 0 4 5 0 LWRAD 504 | 2 3 23 0 LWSNWP 505 | 4 8 7 0 MASK 506 | 0 6 38 0 MASSDCD 507 | 0 6 39 0 MASSDCI 508 | 0 20 0 0 MASSDEN 509 | 0 1 98 0 MASSDG 510 | 0 1 99 0 MASSDH 511 | 0 1 96 0 MASSDR 512 | 0 1 97 0 MASSDS 513 | 0 20 2 0 MASSMR 514 | 0 18 15 0 MAXACON 515 | 0 1 28 0 MAXAH 516 | 0 2 221 1 MAXDVV 517 | 0 2 21 0 MAXGUST 518 | 0 16 198 1 MAXREF 519 | 0 1 27 0 MAXRH 520 | 0 2 220 1 MAXUVV 521 | 0 2 222 1 MAXUW 522 | 0 2 223 1 MAXVW 523 | 10 0 24 0 MAXWH 524 | 0 6 4 0 MCDC 525 | 0 1 26 0 MCONV 526 | 0 1 197 1 MCONV 527 | 0 6 40 0 MDCCWD 528 | 0 1 38 0 MDIVER 529 | 0 1 112 0 MDLWGVA 530 | 0 1 109 0 MDLWHVA 531 | 0 1 115 0 MDLWSVA 532 | 3 2 30 0 MEACST 533 | 0 6 200 1 MFLUX 534 | 0 2 26 0 MFLX 535 | 0 2 193 1 MFLX 536 | 0 0 14 0 MINDPD 537 | 0 1 198 1 MINRH 538 | 0 19 3 0 MIXHT 539 | 0 19 204 1 MIXLY 540 | 0 1 2 0 MIXR 541 | 0 191 195 1 MLYNO 542 | 0 1 114 0 MMLWGDA 543 | 0 1 111 0 MMLWHDA 544 | 0 1 117 0 MMLWSDA 545 | 0 2 6 0 MNTSF 546 | 0 7 200 1 MNUPHL 547 | 10 0 40 0 MNWSOW 548 | 0 20 64 0 MOLRDRYA 549 | 0 20 65 0 MOLRWETA 550 | 10 191 1 0 MOSF 551 | 0 19 195 1 MRCONO 552 | 0 3 192 1 MSLET 553 | 0 3 198 1 MSLMA 554 | 0 20 16 0 MSSRDRYA 555 | 0 20 17 0 MSSRWETA 556 | 10 0 20 0 MSSW 557 | 2 0 11 0 MSTAV 558 | 2 0 194 1 MSTAV 559 | 2 0 7 0 MTERH 560 | 10 4 1 0 MTHA 561 | 10 4 0 0 MTHD 562 | 10 2 11 0 MVCICEP 563 | 10 0 53 0 MWDFSWEL 564 | 10 0 41 0 MWDIRW 565 | 10 0 54 0 MWDSSWEL 566 | 10 0 55 0 MWDTSWEL 567 | 10 0 50 0 MWPFSWEL 568 | 10 0 51 0 MWPSSWEL 569 | 10 0 52 0 MWPTSWEL 570 | 10 0 15 0 MWSPER 571 | 0 19 28 0 MWTURB 572 | 0 19 31 0 MXEDPRM 573 | 0 20 61 0 MXMASSD 574 | 0 19 17 0 MXSALB 575 | 0 19 192 1 MXSALB 576 | 0 7 199 1 MXUPHL 577 | 10 0 30 0 MZPTSW 578 | 10 0 29 0 MZPWW 579 | 10 0 28 0 MZWPER 580 | 0 4 202 1 NBDSF 581 | 0 19 213 1 NBSALB 582 | 0 6 29 0 NCCICE 583 | 0 1 207 1 NCIP 584 | 0 6 28 0 NCONCD 585 | 0 1 9 0 NCPCP 586 | 0 6 31 0 NDCICE 587 | 0 4 203 1 NDDSF 588 | 0 6 30 0 NDENCD 589 | 2 0 31 0 NDVINX 590 | 2 0 217 1 NDVI 591 | 0 191 196 1 NLATN 592 | 0 191 192 1 NLAT 593 | 0 3 206 1 NLGSP 594 | 0 3 25 0 NLPRES 595 | 0 5 6 0 NLWRCS 596 | 0 5 5 0 NLWRF 597 | 0 5 0 0 NLWRS 598 | 0 5 1 0 NLWRT 599 | 3 1 6 0 NPIXU 600 | 0 4 11 0 NSWRFCS 601 | 0 4 9 0 NSWRF 602 | 0 4 0 0 NSWRS 603 | 0 4 1 0 NSWRT 604 | 4 4 6 0 NTRNFLUX 605 | 0 2 37 0 NTSS 606 | 0 1 106 0 NUMDG 607 | 0 1 107 0 NUMDH 608 | 0 1 104 0 NUMDR 609 | 0 1 105 0 NUMDS 610 | 0 2 34 0 NWIND 611 | 0 19 214 1 NWSALB 612 | 10 0 19 0 NWSTR 613 | 0 2 40 0 NWTPARM 614 | 0 14 1 0 O3MR 615 | 0 14 192 1 O3MR 616 | 10 4 197 1 OHC 617 | 0 2 215 1 OMGALF 618 | 10 1 192 1 OMLU 619 | 10 1 193 1 OMLV 620 | 0 3 217 1 ORASNW 621 | 0 3 216 1 ORASSW 622 | 0 3 215 1 ORASS 623 | 0 3 214 1 ORASW 624 | 0 3 213 1 ORCONV 625 | 0 3 221 1 ORLSNW 626 | 0 3 220 1 ORLSSW 627 | 0 3 219 1 ORLSS 628 | 0 3 218 1 ORLSW 629 | 10 4 4 0 OVHD 630 | 10 4 6 0 OVMD 631 | 10 4 5 0 OVSD 632 | 10 3 253 1 OWASHP 633 | 0 14 194 1 OZCAT 634 | 0 14 193 1 OZCON 635 | 0 14 200 1 OZMAX1 636 | 0 14 201 1 OZMAX8 637 | 10 3 196 1 P2OMLT 638 | 3 3 2 0 PBINFRC 639 | 3 3 1 0 PBLIFRC 640 | 0 19 12 0 PBLREG 641 | 3 3 0 0 PBMVFRC 642 | 0 1 234 1 PCPDUR 643 | 0 14 202 1 PDMAX1 644 | 0 14 203 1 PDMAX24 645 | 10 0 11 0 PERPW 646 | 1 0 16 0 PERRATE 647 | 10 0 13 0 PERSW 648 | 0 1 40 0 PEVAP 649 | 0 1 199 1 PEVAP 650 | 0 1 41 0 PEVPR 651 | 0 1 200 1 PEVPR 652 | 0 4 10 0 PHOTAR 653 | 3 0 8 0 PIXST 654 | 0 7 0 0 PLI 655 | 0 3 200 1 PLPL 656 | 4 2 0 0 PLSMDEN 657 | 10 0 23 0 PMAXWH 658 | 0 13 192 1 PMTC 659 | 0 13 193 1 PMTF 660 | 1 1 2 0 POP 661 | 2 3 9 0 POROS 662 | 2 3 197 1 POROS 663 | 0 0 2 0 POT 664 | 0 14 199 1 POZO 665 | 0 14 198 1 POZT 666 | 0 14 196 1 POZ 667 | 10 0 36 0 PPERTS 668 | 10 0 35 0 PPERWW 669 | 1 1 194 1 PPFFG 670 | 0 1 231 1 PPINDX 671 | 1 1 1 0 PPOSP 672 | 0 1 7 0 PRATE 673 | 4 0 4 0 PRATMP 674 | 0 15 5 0 PREC 675 | 0 3 13 0 PRESALT 676 | 0 3 8 0 PRESA 677 | 0 3 212 1 PRESN 678 | 0 3 0 0 PRES 679 | 0 3 1 0 PRMSL 680 | 0 1 232 1 PROBCIP 681 | 0 19 221 1 PROCON 682 | 4 2 2 0 PROTDEN 683 | 4 0 2 0 PROTTMP 684 | 4 0 5 0 PRPTMP 685 | 0 19 216 1 PRSIGSVR 686 | 0 19 215 1 PRSVR 687 | 10 4 21 0 PRTSAL 688 | 0 19 36 0 PSNOWS 689 | 0 3 2 0 PTEND 690 | 0 1 19 0 PTYPE 691 | 0 2 219 1 PVMWW 692 | 0 2 14 0 PVORT 693 | 0 1 3 0 PWAT 694 | 10 0 46 0 PWAVEDIR 695 | 0 1 30 0 PWCAT 696 | 10 0 34 0 PWPER 697 | 0 1 226 1 PWTHER 698 | 0 1 219 1 QMAX 699 | 0 1 220 1 QMIN 700 | 2 0 215 1 QREC 701 | 0 1 218 1 QZ0 702 | 2 3 202 1 RADT 703 | 3 1 8 0 RAZA 704 | 2 0 21 0 RCQ 705 | 2 0 204 1 RCQ 706 | 2 0 20 0 RCSOL 707 | 2 0 205 1 RCSOL 708 | 2 0 18 0 RCS 709 | 2 0 202 1 RCS 710 | 2 0 19 0 RCT 711 | 2 0 203 1 RCT 712 | 2 0 206 1 RDRIP 713 | 0 15 6 0 RDSP1 714 | 0 15 7 0 RDSP2 715 | 0 15 8 0 RDSP3 716 | 2 0 32 0 RDVEG 717 | 0 16 5 0 REFC 718 | 0 16 196 1 REFC 719 | 0 16 4 0 REFD 720 | 0 16 195 1 REFD 721 | 0 16 2 0 REFZC 722 | 0 16 194 1 REFZC 723 | 0 16 1 0 REFZI 724 | 0 16 193 1 REFZI 725 | 0 16 0 0 REFZR 726 | 0 16 192 1 REFZR 727 | 0 2 13 0 RELD 728 | 0 2 12 0 RELV 729 | 0 16 3 0 RETOP 730 | 0 16 197 1 RETOP 731 | 0 0 194 1 REV 732 | 0 15 9 0 RFCD 733 | 0 15 10 0 RFCI 734 | 0 15 13 0 RFGRPL 735 | 0 15 14 0 RFHAIL 736 | 3 1 9 0 RFL06 737 | 3 1 10 0 RFL08 738 | 3 1 11 0 RFL16 739 | 3 1 12 0 RFL39 740 | 0 15 12 0 RFRAIN 741 | 0 15 11 0 RFSNOW 742 | 0 1 94 0 RHICE 743 | 0 1 242 1 RHPW 744 | 0 1 93 0 RHWATER 745 | 0 1 1 0 RH 746 | 0 1 44 0 RIME 747 | 0 1 203 1 RIME 748 | 10 1 4 0 RIPCOP 749 | 0 7 12 0 RI 750 | 0 7 194 1 RI 751 | 2 3 6 0 RLYRS 752 | 2 3 193 1 RLYRS 753 | 0 1 65 0 RPRATE 754 | 2 0 16 0 RSMIN 755 | 2 0 200 1 RSMIN 756 | 1 0 2 0 RSSC 757 | 0 191 194 1 RTSEC 758 | 10 3 206 1 RUNUP 759 | 1 0 11 0 RVERSW 760 | 0 1 24 0 RWMR 761 | 0 18 14 0 SACON 762 | 0 20 100 0 SADEN 763 | 0 19 19 0 SALBD 764 | 3 0 1 0 SALBEDO 765 | 10 4 193 1 SALIN 766 | 1 2 12 0 SALTIL 767 | 10 4 3 0 SALTY 768 | 0 1 5 0 SATD 769 | 2 3 17 0 SATOSM 770 | 3 192 4 0 SBC123 771 | 3 192 5 0 SBC124 772 | 0 19 211 1 SBSALB 773 | 0 1 212 1 SBSNO 774 | 3 192 6 0 SBT112 775 | 3 192 7 0 SBT113 776 | 3 192 8 0 SBT114 777 | 3 192 9 0 SBT115 778 | 3 192 0 0 SBT122 779 | 3 192 1 0 SBT123 780 | 3 192 2 0 SBT124 781 | 3 192 3 0 SBT126 782 | 3 192 23 0 SBTA1610 783 | 3 192 24 0 SBTA1611 784 | 3 192 25 0 SBTA1612 785 | 3 192 26 0 SBTA1613 786 | 3 192 27 0 SBTA1614 787 | 3 192 28 0 SBTA1615 788 | 3 192 29 0 SBTA1616 789 | 3 192 20 0 SBTA167 790 | 3 192 21 0 SBTA168 791 | 3 192 22 0 SBTA169 792 | 3 192 39 0 SBTA1710 793 | 3 192 40 0 SBTA1711 794 | 3 192 41 0 SBTA1712 795 | 3 192 42 0 SBTA1713 796 | 3 192 43 0 SBTA1714 797 | 3 192 44 0 SBTA1715 798 | 3 192 45 0 SBTA1716 799 | 3 192 36 0 SBTA177 800 | 3 192 37 0 SBTA178 801 | 3 192 38 0 SBTA179 802 | 3 192 55 0 SBTAGR10 803 | 3 192 56 0 SBTAGR11 804 | 3 192 57 0 SBTAGR12 805 | 3 192 58 0 SBTAGR13 806 | 3 192 59 0 SBTAGR14 807 | 3 192 60 0 SBTAGR15 808 | 3 192 61 0 SBTAGR16 809 | 3 192 52 0 SBTAGR7 810 | 3 192 53 0 SBTAGR8 811 | 3 192 54 0 SBTAGR9 812 | 3 0 2 0 SBTMP 813 | 4 2 10 0 SCINT 814 | 0 1 84 0 SCLIWC 815 | 0 1 83 0 SCLLWC 816 | 3 1 29 0 SCRAD 817 | 0 20 112 0 SCTAOTK 818 | 3 0 5 0 SCTPRES 819 | 0 20 6 0 SDDMFLX 820 | 0 1 61 0 SDEN 821 | 3 1 99 0 SDMPEMRR 822 | 0 3 20 0 SDSGSO 823 | 0 1 60 0 SDWE 824 | 0 20 11 0 SEDMFLX 825 | 1 2 3 0 SEDTK 826 | 1 2 4 0 SEDTMP 827 | 10 3 207 1 SETUP 828 | 0 1 62 0 SEVAP 829 | 2 0 216 1 SFCRH 830 | 2 0 1 0 SFCR 831 | 2 0 34 0 SFCWRO 832 | 2 0 12 0 SFEXC 833 | 2 0 195 1 SFEXC 834 | 1 0 10 0 SFLORC 835 | 0 20 55 0 SFLUX 836 | 3 192 14 0 SFRA161 837 | 3 192 15 0 SFRA162 838 | 3 192 16 0 SFRA163 839 | 3 192 17 0 SFRA164 840 | 3 192 18 0 SFRA165 841 | 3 192 19 0 SFRA166 842 | 3 192 30 0 SFRA171 843 | 3 192 31 0 SFRA172 844 | 3 192 32 0 SFRA173 845 | 3 192 33 0 SFRA174 846 | 3 192 34 0 SFRA175 847 | 3 192 35 0 SFRA176 848 | 10 4 11 0 SFSALP 849 | 1 2 9 0 SFSAL 850 | 10 4 12 0 SFTMPP 851 | 1 2 10 0 SFTMP 852 | 0 2 7 0 SGCVV 853 | 0 0 201 1 SHAHR 854 | 0 19 201 1 SHAILPRO 855 | 0 1 214 1 SHAMR 856 | 2 3 26 0 SHFLX 857 | 0 0 11 0 SHTFL 858 | 0 1 108 0 SHTPRM 859 | 0 7 13 0 SHWINX 860 | 10 2 3 0 SICED 861 | 4 9 1 0 SIGHAL 862 | 4 9 2 0 SIGPAR 863 | 4 9 0 0 SIGPED 864 | 0 19 217 1 SIPD 865 | 0 0 17 0 SKINT 866 | 3 5 1 0 SKSSTMP 867 | 0 1 230 1 SLACC 868 | 0 19 23 0 SLDP 869 | 3 0 4 0 SLFTI 870 | 10 3 202 1 SLTFL 871 | 2 3 194 1 SLTYP 872 | 0 6 34 0 SLWTC 873 | 2 3 8 0 SMDRY 874 | 2 3 196 1 SMDRY 875 | 0 1 113 0 SMLWGMA 876 | 0 1 110 0 SMLWHMA 877 | 0 1 116 0 SMLWSMA 878 | 2 3 7 0 SMREF 879 | 2 3 195 1 SMREF 880 | 0 19 18 0 SNFALB 881 | 0 19 193 1 SNFALB 882 | 0 1 25 0 SNMR 883 | 0 1 17 0 SNOAG 884 | 0 1 14 0 SNOC 885 | 0 1 11 0 SNOD 886 | 0 0 16 0 SNOHF 887 | 0 0 192 1 SNOHF 888 | 0 1 15 0 SNOL 889 | 0 1 16 0 SNOM 890 | 0 0 18 0 SNOT 891 | 0 1 208 1 SNOT 892 | 0 1 42 0 SNOWC 893 | 0 1 201 1 SNOWC 894 | 0 1 233 1 SNOWLR 895 | 0 19 236 1 SNOWLVL 896 | 0 1 222 1 SNOWT 897 | 2 3 25 0 SNWDEB 898 | 2 3 27 0 SOILDEP 899 | 2 3 21 0 SOILICE 900 | 2 3 5 0 SOILL 901 | 2 3 192 1 SOILL 902 | 2 3 19 0 SOILMOI 903 | 2 0 3 0 SOILM 904 | 2 0 22 0 SOILM 905 | 2 3 15 0 SOILP 906 | 2 3 18 0 SOILTMP 907 | 2 0 38 0 SOILVIC 908 | 2 0 192 1 SOILW 909 | 4 6 6 0 SOLRF 910 | 3 1 7 0 SOLZA 911 | 2 3 0 0 SOTYP 912 | 3 1 28 0 SPBRT 913 | 10 1 1 0 SPC 914 | 4 6 4 0 SPECIRR 915 | 4 1 0 0 SPEED 916 | 0 1 0 0 SPFH 917 | 10 0 45 0 SPFTR 918 | 0 1 102 0 SPNCG 919 | 0 1 103 0 SPNCH 920 | 0 1 100 0 SPNCR 921 | 0 1 101 0 SPNCS 922 | 0 1 66 0 SPRATE 923 | 4 2 7 0 SPRDF 924 | 3 0 3 0 SPWAT 925 | 3 0 0 0 SRAD 926 | 0 1 85 0 SRAINC 927 | 0 19 194 1 SRCONO 928 | 3 192 46 0 SRFAGR1 929 | 3 192 47 0 SRFAGR2 930 | 3 192 48 0 SRFAGR3 931 | 3 192 49 0 SRFAGR4 932 | 3 192 50 0 SRFAGR5 933 | 3 192 51 0 SRFAGR6 934 | 0 1 12 0 SRWEQ 935 | 0 20 103 0 SSALBK 936 | 0 3 22 0 SSGSO 937 | 10 3 195 1 SSHG 938 | 3 5 2 0 SSKSSTMP 939 | 0 1 86 0 SSNOWW 940 | 1 0 6 0 SSRUN 941 | 1 0 193 1 SSRUN 942 | 10 3 200 1 SSST 943 | 3 0 6 0 SSTMP 944 | 2 0 211 1 SSTOR 945 | 10 3 199 1 SSTT 946 | 0 6 35 0 SSWTC 947 | 0 19 200 1 STORPROB 948 | 0 2 4 0 STRM 949 | 0 1 87 0 STRPRATE 950 | 0 6 33 0 SUNSD 951 | 0 6 201 1 SUNSD 952 | 0 6 24 0 SUNS 953 | 10 3 192 1 SURGE 954 | 0 19 220 1 SVRTS 955 | 10 3 208 1 SWASH 956 | 0 4 2 0 SWAVR 957 | 10 0 7 0 SWDIR 958 | 0 20 7 0 SWDMFLX 959 | 0 7 5 0 SWEATX 960 | 10 0 8 0 SWELL 961 | 1 0 4 0 SWEPON 962 | 10 0 47 0 SWHFSWEL 963 | 0 4 197 1 SWHR 964 | 10 0 48 0 SWHSSWEL 965 | 10 0 49 0 SWHTSWEL 966 | 0 19 202 1 SWINDPRO 967 | 10 0 9 0 SWPER 968 | 3 1 194 1 SWQI 969 | 0 4 6 0 SWRAD 970 | 0 19 212 1 SWSALB 971 | 0 6 1 0 TCDC 972 | 0 0 204 1 TCHP 973 | 0 1 81 0 TCICON 974 | 0 14 2 0 TCIOZ 975 | 0 1 64 0 TCIWV 976 | 2 0 35 0 TCLASS 977 | 0 1 209 1 TCLSW 978 | 0 6 20 0 TCOLC 979 | 0 6 198 1 TCOLC 980 | 0 1 74 0 TCOLG 981 | 0 1 72 0 TCOLH 982 | 0 6 19 0 TCOLIO 983 | 0 1 70 0 TCOLI 984 | 0 6 197 1 TCOLI 985 | 0 1 210 1 TCOLM 986 | 0 1 45 0 TCOLR 987 | 0 1 204 1 TCOLR 988 | 0 1 46 0 TCOLS 989 | 0 1 205 1 TCOLS 990 | 0 1 78 0 TCOLWA 991 | 0 6 18 0 TCOLWO 992 | 0 1 69 0 TCOLW 993 | 0 6 196 1 TCOLW 994 | 0 6 17 0 TCONDO 995 | 0 1 21 0 TCOND 996 | 0 6 195 1 TCOND 997 | 10 3 242 1 TCSRG20 998 | 10 3 243 1 TCSRG30 999 | 10 3 244 1 TCSRG40 1000 | 10 3 245 1 TCSRG50 1001 | 10 3 246 1 TCSRG60 1002 | 10 3 247 1 TCSRG70 1003 | 10 3 248 1 TCSRG80 1004 | 10 3 249 1 TCSRG90 1005 | 0 1 51 0 TCWAT 1006 | 0 0 20 0 TDCHT 1007 | 0 2 31 0 TDCMOM 1008 | 2 0 36 0 TFRCT 1009 | 0 0 197 1 THFLX 1010 | 0 3 12 0 THICK 1011 | 0 6 10 0 THUNC 1012 | 0 0 203 1 THZ0 1013 | 0 18 6 0 TIACCP 1014 | 0 18 7 0 TIACIP 1015 | 0 18 8 0 TIACRP 1016 | 10 3 251 1 TIDE 1017 | 0 1 206 1 TIPD 1018 | 0 19 11 0 TKE 1019 | 0 1 90 0 TKMFLX 1020 | 0 17 4 0 TLGTFD 1021 | 0 6 9 0 TMAXT 1022 | 0 0 4 0 TMAX 1023 | 0 0 5 0 TMIN 1024 | 0 0 29 0 TMPADV 1025 | 0 0 9 0 TMPA 1026 | 4 0 0 0 TMPSWP 1027 | 0 0 0 0 TMP 1028 | 0 2 227 1 TOA10 1029 | 0 2 228 1 TOA50 1030 | 0 2 229 1 TOD50 1031 | 0 2 230 1 TOD90 1032 | 0 19 197 1 TORPROB 1033 | 0 7 4 0 TOTALX 1034 | 0 1 80 0 TOTCON 1035 | 0 18 13 0 TOTLWD 1036 | 0 14 0 0 TOZNE 1037 | 0 14 197 1 TOZ 1038 | 2 0 37 0 TPERCT 1039 | 0 19 219 1 TPFI 1040 | 0 1 52 0 TPRATE 1041 | 0 20 13 0 TRANHH 1042 | 2 3 12 0 TRANSO 1043 | 2 0 230 1 TRANS 1044 | 0 20 14 0 TRSDS 1045 | 0 2 226 1 TRWDIR 1046 | 0 2 225 1 TRWSPD 1047 | 0 0 200 1 TSD1D 1048 | 0 191 0 0 TSEC 1049 | 4 6 0 0 TSI 1050 | 0 3 199 1 TSLSA 1051 | 0 1 50 0 TSNOWP 1052 | 0 1 241 1 TSNOW 1053 | 2 0 2 0 TSOIL 1054 | 0 1 57 0 TSRATE 1055 | 0 1 53 0 TSRWE 1056 | 0 19 203 1 TSTMC 1057 | 0 19 2 0 TSTM 1058 | 0 0 19 0 TTCHT 1059 | 0 0 198 1 TTDIA 1060 | 10 4 2 0 TTHDP 1061 | 0 0 25 0 TTLWRCS 1062 | 0 0 23 0 TTLWR 1063 | 0 0 26 0 TTPARM 1064 | 0 0 199 1 TTPHY 1065 | 0 0 193 1 TTRAD 1066 | 0 0 24 0 TTSWRCS 1067 | 0 0 22 0 TTSWR 1068 | 0 19 9 0 TURBB 1069 | 0 19 8 0 TURBT 1070 | 0 19 10 0 TURB 1071 | 0 1 49 0 TWATP 1072 | 0 2 35 0 TWIND 1073 | 10 3 210 1 TWLDC 1074 | 10 3 209 1 TWLDT 1075 | 10 3 205 1 TWLWAV 1076 | 0 20 58 0 TYAAL 1077 | 0 20 57 0 TYABA 1078 | 0 3 16 0 U-GWD 1079 | 0 3 194 1 U-GWD 1080 | 10 1 194 1 UBARO 1081 | 0 3 31 0 UCLSPRS 1082 | 0 1 120 0 UCSCIW 1083 | 0 1 119 0 UCSCLW 1084 | 0 0 28 0 UCTMP 1085 | 0 3 29 0 UDRATE 1086 | 0 2 17 0 UFLX 1087 | 0 2 2 0 UGRD 1088 | 0 2 23 0 UGUST 1089 | 0 2 41 0 UGWIND 1090 | 10 2 4 0 UICE 1091 | 0 1 91 0 UKMFLX 1092 | 0 5 4 0 ULWRF 1093 | 0 5 193 1 ULWRF 1094 | 0 3 27 0 UMFLX 1095 | 0 1 118 0 UNCSH 1096 | 0 2 45 0 UNDIV 1097 | 10 1 2 0 UOGRD 1098 | 1 0 14 0 UPAPCP 1099 | 1 0 15 0 UPASM 1100 | 0 7 15 0 UPHL 1101 | 0 7 197 1 UPHL 1102 | 2 3 2 0 UPLSM 1103 | 2 3 1 0 UPLST 1104 | 3 1 192 1 USCT 1105 | 10 0 21 0 USSD 1106 | 0 2 27 0 USTM 1107 | 0 2 194 1 USTM 1108 | 0 4 53 0 USWRFCS 1109 | 0 4 8 0 USWRF 1110 | 0 4 193 1 USWRF 1111 | 0 4 205 1 UTRF 1112 | 0 4 50 0 UVIUCS 1113 | 0 4 51 0 UVI 1114 | 0 7 196 1 UVI 1115 | 0 3 17 0 V-GWD 1116 | 0 3 195 1 V-GWD 1117 | 0 19 232 1 VAFTD 1118 | 0 1 4 0 VAPP 1119 | 10 1 195 1 VBARO 1120 | 0 4 200 1 VBDSF 1121 | 0 4 201 1 VDDSF 1122 | 0 0 202 1 VDFHR 1123 | 0 1 215 1 VDFMR 1124 | 0 14 195 1 VDFOZ 1125 | 0 2 208 1 VDFUA 1126 | 0 2 209 1 VDFVA 1127 | 0 2 204 1 VEDH 1128 | 2 0 210 1 VEGT 1129 | 2 0 4 0 VEG 1130 | 4 1 1 0 VEL1 1131 | 4 1 2 0 VEL2 1132 | 4 1 3 0 VEL3 1133 | 0 2 18 0 VFLX 1134 | 0 6 48 0 VFRCICE 1135 | 0 6 49 0 VFRCIW 1136 | 0 6 47 0 VFRCWD 1137 | 0 2 3 0 VGRD 1138 | 2 0 198 1 VGTYP 1139 | 0 2 24 0 VGUST 1140 | 0 2 42 0 VGWIND 1141 | 10 2 5 0 VICE 1142 | 0 15 3 0 VIL 1143 | 0 19 35 0 VISBSN 1144 | 0 19 34 0 VISIFOG 1145 | 0 19 33 0 VISLFOG 1146 | 0 19 0 0 VIS 1147 | 0 1 92 0 VKMFLX 1148 | 0 20 52 0 VMXR 1149 | 10 1 3 0 VOGRD 1150 | 3 4 4 0 VOLACDEM 1151 | 3 4 7 0 VOLACDEN 1152 | 3 4 6 0 VOLACDOD 1153 | 3 4 3 0 VOLACDTH 1154 | 3 4 2 0 VOLACDTP 1155 | 3 4 1 0 VOLACDTT 1156 | 3 4 5 0 VOLAEADR 1157 | 3 4 8 0 VOLAPER 1158 | 3 4 0 0 VOLAPROB 1159 | 0 19 4 0 VOLASH 1160 | 2 3 13 0 VOLDEC 1161 | 2 3 11 0 VOLTSO 1162 | 0 2 46 0 VORTADV 1163 | 0 2 5 0 VPOT 1164 | 0 0 15 0 VPTMP 1165 | 0 2 224 1 VRATE 1166 | 3 1 193 1 VSCT 1167 | 2 0 25 0 VSOILM 1168 | 2 3 16 0 VSOSM 1169 | 10 0 22 0 VSSD 1170 | 0 2 28 0 VSTM 1171 | 0 2 195 1 VSTM 1172 | 4 2 4 0 VTEC 1173 | 0 0 1 0 VTMP 1174 | 0 2 15 0 VUCSH 1175 | 0 2 16 0 VVCSH 1176 | 0 2 8 0 VVEL 1177 | 2 0 27 0 VWILTM 1178 | 0 2 25 0 VWSH 1179 | 0 2 192 1 VWSH 1180 | 10 4 17 0 WATDENA 1181 | 10 4 16 0 WATERDEN 1182 | 10 4 20 0 WATPDENA 1183 | 10 4 19 0 WATPDEN 1184 | 10 4 18 0 WATPTEMP 1185 | 2 0 5 0 WATR 1186 | 10 0 62 0 WAVEFREW 1187 | 2 0 223 1 WCCONV 1188 | 0 0 13 0 WCF 1189 | 2 0 221 1 WCINC 1190 | 2 0 226 1 WCUFLX 1191 | 2 0 227 1 WCVFLX 1192 | 0 20 10 0 WDCPMFLX 1193 | 10 4 14 0 WDEPTH 1194 | 10 0 31 0 WDIRW 1195 | 0 2 0 0 WDIR 1196 | 1 2 0 0 WDPTHIL 1197 | 10 0 56 0 WDWFSWEL 1198 | 10 0 57 0 WDWSSWEL 1199 | 10 0 58 0 WDWTSWEL 1200 | 0 1 13 0 WEASD 1201 | 10 0 42 0 WESP 1202 | 0 0 27 0 WETBT 1203 | 0 18 11 0 WETDEP 1204 | 0 20 75 0 WFIREFLX 1205 | 1 2 2 0 WFRACT 1206 | 10 0 59 0 WFWFSWEL 1207 | 10 0 60 0 WFWSSWEL 1208 | 10 0 61 0 WFWTSWEL 1209 | 4 8 5 0 WHTCOR 1210 | 4 8 3 0 WHTRAD 1211 | 2 0 26 0 WILT 1212 | 2 0 201 1 WILT 1213 | 0 2 33 0 WINDF 1214 | 0 19 199 1 WINDPROB 1215 | 3 1 19 0 WINDS 1216 | 0 2 1 0 WIND 1217 | 0 19 25 0 WIWW 1218 | 10 0 193 1 WLENG 1219 | 0 20 9 0 WLSMFLX 1220 | 0 2 19 0 WMIXE 1221 | 2 0 33 0 WROD 1222 | 10 0 192 1 WSTP 1223 | 10 0 18 0 WSTR 1224 | 0 2 214 1 WTEND 1225 | 10 4 192 1 WTMPC 1226 | 1 2 1 0 WTMPIL 1227 | 10 4 15 0 WTMPSS 1228 | 10 3 0 0 WTMP 1229 | 2 0 222 1 WVCONV 1230 | 10 0 4 0 WVDIR 1231 | 10 0 5 0 WVHGT 1232 | 2 0 220 1 WVINC 1233 | 10 0 6 0 WVPER 1234 | 10 0 0 0 WVSP1 1235 | 10 0 1 0 WVSP2 1236 | 10 0 2 0 WVSP3 1237 | 2 0 224 1 WVUFLX 1238 | 2 0 225 1 WVVFLX 1239 | 10 0 14 0 WWSDIR 1240 | 4 6 1 0 XLONG 1241 | 0 3 26 0 XPRES 1242 | 4 8 0 0 XRAYRAD 1243 | 4 6 2 0 XSHRT 1244 | 10 2 10 0 ZVCICEP 1245 | -------------------------------------------------------------------------------- /src/resources/run/post/01/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf001.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf001.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/01/params_grib2_tbl_new: -------------------------------------------------------------------------------- 1 | 0 7 11 0 4LFTX 2 | 0 7 193 1 4LFTX 3 | 0 3 19 0 5WAVA 4 | 0 3 197 1 5WAVA 5 | 0 3 15 0 5WAVH 6 | 0 3 193 1 5WAVH 7 | 0 20 106 0 AACOEF 8 | 0 2 11 0 ABSD 9 | 4 2 5 0 ABSFRQ 10 | 0 1 18 0 ABSH 11 | 4 2 6 0 ABSRB 12 | 0 2 10 0 ABSV 13 | 0 18 0 0 ACCES 14 | 0 18 1 0 ACIOD 15 | 2 0 228 1 ACOND 16 | 0 1 224 1 ACPCPN 17 | 0 1 10 0 ACPCP 18 | 0 18 2 0 ACRADP 19 | 10 4 13 0 ACWSRD 20 | 1 2 11 0 ACWSR 21 | 0 20 105 0 AECOEF 22 | 0 20 3 0 AEMFLX 23 | 0 13 0 0 AEROT 24 | 0 2 36 0 AFRWE 25 | 0 20 50 0 AIA 26 | 0 18 10 0 AIRCON 27 | 2 0 208 1 AKHS 28 | 2 0 209 1 AKMS 29 | 0 19 1 0 ALBDO 30 | 0 20 108 0 ALBGRD 31 | 0 20 107 0 ALBSAT 32 | 10 0 38 0 ALCWH 33 | 0 20 110 0 ALEGRD 34 | 0 20 109 0 ALESAT 35 | 10 0 39 0 ALRRC 36 | 0 3 11 0 ALTS 37 | 10 0 37 0 ALTWH 38 | 2 0 219 1 AMIXL 39 | 3 192 11 0 AMSRE10 40 | 3 192 12 0 AMSRE11 41 | 3 192 13 0 AMSRE12 42 | 3 192 10 0 AMSRE9 43 | 0 20 59 0 ANCON 44 | 3 1 23 0 ANGCOE 45 | 0 20 111 0 ANGSTEXP 46 | 0 20 5 0 ANPEMFLX 47 | 0 20 4 0 ANPMFLX 48 | 10 3 197 1 AOHFLX 49 | 3 1 20 0 AOT06 50 | 3 1 21 0 AOT08 51 | 3 1 22 0 AOT16 52 | 0 20 102 0 AOTK 53 | 0 1 223 1 APCPN 54 | 0 1 8 0 APCP 55 | 0 0 21 0 APTMP 56 | 0 1 221 1 ARAIN 57 | 0 20 8 0 AREMFLX 58 | 0 3 21 0 ASGSO 59 | 0 3 24 0 ASGSO 60 | 10 3 198 1 ASHFL 61 | 0 20 60 0 ASNCON 62 | 0 1 29 0 ASNOW 63 | 0 20 104 0 ASYSFK 64 | 0 190 0 0 ATEXT 65 | 3 1 13 0 ATMDIV 66 | 0 20 101 0 ATMTK 67 | 2 3 201 1 AVSFT 68 | 2 3 200 1 BARET 69 | 10 4 7 0 BATHY 70 | 10 0 44 0 BENINX 71 | 1 0 5 0 BGRUN 72 | 1 0 192 1 BGRUN 73 | 10 4 194 1 BKENG 74 | 0 7 1 0 BLI 75 | 0 7 16 0 BLKRN 76 | 0 2 20 0 BLYDP 77 | 2 0 14 0 BMIXL 78 | 2 0 197 1 BMIXL 79 | 0 7 201 1 BNEGELAY 80 | 2 3 4 0 BOTLST 81 | 0 7 202 1 BPOSELAY 82 | 0 15 1 0 BREF 83 | 3 1 27 0 BRFLF 84 | 0 5 7 0 BRTEMP 85 | 0 4 4 0 BRTMP 86 | 0 15 2 0 BRVEL 87 | 0 15 0 0 BSWID 88 | 4 3 0 0 BTOT 89 | 4 3 1 0 BVEC1 90 | 4 3 2 0 BVEC2 91 | 4 3 3 0 BVEC3 92 | 0 18 18 0 CAACL 93 | 4 8 4 0 CAIIRAD 94 | 0 7 206 1 CANGLE 95 | 2 1 192 1 CANL 96 | 0 7 6 0 CAPE 97 | 0 1 88 0 CATCP 98 | 0 19 29 0 CATEDR 99 | 0 19 22 0 CAT 100 | 0 20 63 0 CAVEMDL 101 | 0 20 70 0 CBECSLSP 102 | 0 6 25 0 CBHE 103 | 0 20 67 0 CBLCLDSP 104 | 0 20 73 0 CBLCSRCP 105 | 3 1 14 0 CBTMP 106 | 3 1 98 0 CCMPEMRR 107 | 2 0 15 0 CCOND 108 | 2 0 199 1 CCOND 109 | 0 6 7 0 CDCA 110 | 0 6 11 0 CDCB 111 | 0 6 22 0 CDCC 112 | 0 17 3 0 CDCDLTFD 113 | 0 6 23 0 CDCIMR 114 | 0 6 2 0 CDCON 115 | 0 6 12 0 CDCTOP 116 | 0 6 8 0 CDCT 117 | 0 17 2 0 CDGDLTFD 118 | 0 6 14 0 CDLYR 119 | 0 6 192 1 CDLYR 120 | 0 4 195 1 CDUVB 121 | 10 0 16 0 CDWW 122 | 0 2 29 0 CD 123 | 0 2 196 1 CD 124 | 0 6 13 0 CEIL 125 | 0 5 197 1 CFNLF 126 | 0 4 199 1 CFNSF 127 | 0 1 34 0 CFRZR 128 | 0 1 193 1 CFRZR 129 | 0 20 54 0 CGDRC 130 | 0 20 53 0 CGPRC 131 | 10 3 2 0 CH 132 | 0 18 17 0 CIAIRC 133 | 0 19 206 1 CICEL 134 | 0 1 35 0 CICEP 135 | 0 1 194 1 CICEP 136 | 10 2 12 0 CICES 137 | 0 6 0 0 CICE 138 | 0 19 208 1 CIFLT 139 | 0 1 82 0 CIMIXR 140 | 0 20 66 0 CINCLDSP 141 | 0 20 69 0 CINCSLSP 142 | 0 20 72 0 CINCSRCP 143 | 0 7 7 0 CIN 144 | 0 20 68 0 CIRELREP 145 | 0 20 74 0 CIRERECP 146 | 2 3 22 0 CISICE 147 | 2 3 20 0 CISOILM 148 | 2 0 23 0 CISOILW 149 | 0 19 207 1 CIVIS 150 | 3 2 9 0 CLDALB 151 | 3 2 10 0 CLDEMISS 152 | 3 2 8 0 CLDIWP 153 | 3 2 7 0 CLDLWP 154 | 3 2 5 0 CLDODEP 155 | 3 2 6 0 CLDPER 156 | 3 2 4 0 CLDPHAS 157 | 3 1 16 0 CLDRAD 158 | 3 2 3 0 CLDTYPE 159 | 0 1 235 1 CLLMR 160 | 3 0 7 0 CLOUDM 161 | 0 1 22 0 CLWMR 162 | 0 2 216 1 CNGWDU 163 | 0 2 217 1 CNGWDV 164 | 0 3 209 1 CNVDEMF 165 | 0 3 208 1 CNVDMF 166 | 0 0 196 1 CNVHR 167 | 0 1 213 1 CNVMR 168 | 0 3 207 1 CNVUMF 169 | 0 2 212 1 CNVU 170 | 0 2 213 1 CNVV 171 | 2 0 13 0 CNWAT 172 | 2 0 196 1 CNWAT 173 | 0 20 56 0 COAIA 174 | 0 20 1 0 COLMD 175 | 0 20 51 0 CONAIR 176 | 0 7 19 0 CONAPES 177 | 0 1 216 1 CONDP 178 | 0 19 16 0 CONTB 179 | 0 19 14 0 CONTET 180 | 0 19 13 0 CONTI 181 | 0 19 24 0 CONTKE 182 | 0 19 15 0 CONTT 183 | 0 19 26 0 CONVO 184 | 0 19 222 1 CONVP 185 | 0 192 6 0 COVMM 186 | 0 192 1 0 COVMZ 187 | 0 2 205 1 COVMZ 188 | 0 192 11 0 COVPSPS 189 | 0 192 8 0 COVQM 190 | 0 192 12 0 COVQQ 191 | 0 192 10 0 COVQVV 192 | 0 192 7 0 COVQZ 193 | 0 192 3 0 COVTM 194 | 0 2 207 1 COVTM 195 | 0 192 14 0 COVTT 196 | 0 192 9 0 COVTVV 197 | 0 192 4 0 COVTW 198 | 0 192 2 0 COVTZ 199 | 0 2 206 1 COVTZ 200 | 0 192 13 0 COVVVVV 201 | 0 192 5 0 COVZZ 202 | 0 1 39 0 CPOFP 203 | 1 1 193 1 CPOFP 204 | 1 1 192 1 CPOZP 205 | 1 1 0 0 CPPOP 206 | 0 1 37 0 CPRAT 207 | 0 1 196 1 CPRAT 208 | 0 1 33 0 CRAIN 209 | 0 1 192 1 CRAIN 210 | 0 20 71 0 CRERELSP 211 | 0 1 76 0 CRRATE 212 | 4 2 9 0 CRTFRQ 213 | 1 2 13 0 CSAFC 214 | 3 1 15 0 CSBTMP 215 | 0 5 196 1 CSDLF 216 | 0 4 196 1 CSDSF 217 | 3 2 0 0 CSKPROB 218 | 3 1 17 0 CSKYRAD 219 | 0 1 36 0 CSNOW 220 | 0 1 195 1 CSNOW 221 | 0 1 58 0 CSRATE 222 | 0 1 55 0 CSRWE 223 | 0 5 195 1 CSULF 224 | 0 4 198 1 CSUSF 225 | 3 1 3 0 CTOPHQI 226 | 3 1 2 0 CTOPH 227 | 3 2 2 0 CTOPRES 228 | 3 2 1 0 CTOPTMP 229 | 0 19 21 0 CTP 230 | 0 6 16 0 CUEFI 231 | 0 6 194 1 CUEFI 232 | 0 6 6 0 CWAT 233 | 0 7 195 1 CWDI 234 | 0 6 15 0 CWORK 235 | 0 6 193 1 CWORK 236 | 0 1 48 0 CWP 237 | 1 1 195 1 CWR 238 | 10 4 195 1 DBSS 239 | 0 7 203 1 DCAPE 240 | 0 20 12 0 DDMFLX 241 | 0 3 30 0 DDRATE 242 | 0 20 15 0 DDVEL 243 | 2 0 30 0 DECF 244 | 0 3 14 0 DENALT 245 | 0 3 10 0 DEN 246 | 0 0 7 0 DEPR 247 | 1 0 13 0 DEPWSS 248 | 10 2 2 0 DICED 249 | 4 4 2 0 DIFEFLUX 250 | 4 4 4 0 DIFIFLUX 251 | 4 4 0 0 DIFPFLUX 252 | 3 6 5 0 DIFSOLEX 253 | 3 6 4 0 DIFSOLIR 254 | 0 4 14 0 DIFSWRF 255 | 10 1 0 0 DIRC 256 | 2 3 14 0 DIREC 257 | 10 0 10 0 DIRPW 258 | 3 6 3 0 DIRSOLEX 259 | 3 6 2 0 DIRSOLIR 260 | 10 0 12 0 DIRSW 261 | 10 0 33 0 DIRWTS 262 | 10 0 32 0 DIRWWW 263 | 1 0 7 0 DISRS 264 | 0 3 6 0 DIST 265 | 0 5 8 0 DLWRFCS 266 | 0 5 3 0 DLWRF 267 | 0 5 192 1 DLWRF 268 | 0 3 28 0 DMFLX 269 | 0 0 6 0 DPT 270 | 2 4 8 0 DRTCODE 271 | 0 18 12 0 DRYDEP 272 | 0 19 237 1 DRYTPROB 273 | 4 7 2 0 DSKDAY 274 | 4 7 1 0 DSKINT 275 | 4 7 3 0 DSKNGT 276 | 10 3 1 0 DSLM 277 | 10 191 3 0 DSLOBSO 278 | 0 191 3 0 DSLOBS 279 | 0 4 52 0 DSWRFCS 280 | 0 4 13 0 DSWRFLX 281 | 0 4 7 0 DSWRF 282 | 0 4 192 1 DSWRF 283 | 0 4 204 1 DTRF 284 | 2 4 7 0 DUFMCODE 285 | 0 4 194 1 DUVB 286 | 0 4 12 0 DWUVR 287 | 0 2 9 0 DZDT 288 | 3 2 11 0 EAODR 289 | 3 5 5 0 EBSDSSTS 290 | 3 5 4 0 EBSSTSTD 291 | 0 19 30 0 EDPARM 292 | 0 7 204 1 EFHL 293 | 0 7 9 0 EHLX 294 | 4 2 1 0 ELCDEN 295 | 4 0 1 0 ELECTMP 296 | 10 3 194 1 ELEV 297 | 0 19 238 1 ELLINX 298 | 0 191 197 1 ELONN 299 | 0 191 193 1 ELON 300 | 0 1 211 1 EMNP 301 | 0 0 3 0 EPOT 302 | 0 19 218 1 EPSR 303 | 10 3 252 1 EROSNP 304 | 1 0 3 0 ESCT 305 | 0 7 205 1 ESP 306 | 3 1 0 0 ESTP 307 | 3 1 4 0 ESTUGRD 308 | 3 1 5 0 ESTVGRD 309 | 0 2 32 0 ETACVV 310 | 10 3 250 1 ETCWL 311 | 4 3 4 0 ETOT 312 | 10 3 193 1 ETSRG 313 | 0 2 38 0 ETSS 314 | 4 6 3 0 EUVIRR 315 | 4 8 1 0 EUVRAD 316 | 2 0 6 0 EVAPT 317 | 0 1 79 0 EVARATE 318 | 2 3 198 1 EVBS 319 | 2 0 229 1 EVCW 320 | 4 3 5 0 EVEC1 321 | 4 3 6 0 EVEC2 322 | 4 3 7 0 EVEC3 323 | 2 0 29 0 EVERF 324 | 0 1 6 0 EVP 325 | 2 0 213 1 EWATR 326 | 0 2 39 0 EWTPARM 327 | 4 6 5 0 F107 328 | 2 4 3 0 FBAREA 329 | 2 4 10 0 FBUPINX 330 | 0 6 37 0 FCONPC 331 | 3 5 3 0 FDNSSTMP 332 | 2 4 11 0 FDSRTE 333 | 1 0 0 0 FFLDG 334 | 1 0 1 0 FFLDRO 335 | 2 4 6 0 FFMCODE 336 | 0 1 228 1 FICEAC 337 | 0 6 21 0 FICE 338 | 0 6 199 1 FICE 339 | 3 0 9 0 FIREDI 340 | 2 4 1 0 FIREODT 341 | 2 4 0 0 FIREOLK 342 | 2 3 203 1 FLDCP 343 | 1 0 12 0 FLDPSW 344 | 0 19 205 1 FLGHT 345 | 0 7 18 0 FLXRN 346 | 2 4 4 0 FOSINDX 347 | 0 1 67 0 FPRATE 348 | 0 6 32 0 FRACCC 349 | 0 1 43 0 FRAIN 350 | 0 1 202 1 FRAIN 351 | 10 0 63 0 FREWWW 352 | 0 2 30 0 FRICV 353 | 10 0 17 0 FRICV 354 | 0 2 197 1 FRICV 355 | 0 1 227 1 FROZR 356 | 2 3 24 0 FRSTINX 357 | 10 0 64 0 FRWWTSW 358 | 0 1 225 1 FRZR 359 | 10 3 204 1 FRZSPR 360 | 0 1 121 0 FSNOWC 361 | 0 6 36 0 FSTRPC 362 | 2 4 5 0 FWINX 363 | 0 1 95 0 FZPRATE 364 | 0 18 3 0 GDCES 365 | 0 18 4 0 GDIOD 366 | 0 18 5 0 GDRADP 367 | 0 191 1 0 GEOLAT 368 | 0 191 2 0 GEOLON 369 | 0 2 43 0 GEOWD 370 | 0 2 44 0 GEOWS 371 | 2 0 10 0 GFLUX 372 | 2 0 193 1 GFLUX 373 | 2 5 1 0 GLACTMP 374 | 0 3 9 0 GPA 375 | 0 1 75 0 GPRATE 376 | 0 3 4 0 GP 377 | 0 4 3 0 GRAD 378 | 0 7 17 0 GRDRN 379 | 0 1 32 0 GRLE 380 | 3 6 1 0 GSOLEXP 381 | 3 6 0 0 GSOLIRR 382 | 0 2 22 0 GUST 383 | 0 2 210 1 GWDU 384 | 0 2 211 1 GWDV 385 | 0 3 23 0 GWD 386 | 1 0 9 0 GWLOWS 387 | 2 0 214 1 GWREC 388 | 1 0 8 0 GWUPS 389 | 0 1 71 0 HAILMXR 390 | 0 19 198 1 HAILPROB 391 | 0 1 73 0 HAILPR 392 | 0 1 31 0 HAIL 393 | 4 8 2 0 HARAD 394 | 0 19 210 1 HAVNI 395 | 0 6 5 0 HCDC 396 | 0 6 26 0 HCONCB 397 | 0 6 27 0 HCONCT 398 | 0 0 12 0 HEATX 399 | 4 8 6 0 HELCOR 400 | 2 0 24 0 HFLUX 401 | 0 20 62 0 HGTMD 402 | 0 3 211 1 HGTN 403 | 0 3 203 1 HGTX 404 | 0 3 204 1 HGTY 405 | 0 3 5 0 HGT 406 | 0 19 32 0 HIFREL 407 | 2 4 2 0 HINDEX 408 | 0 7 8 0 HLCY 409 | 0 18 16 0 HMXACON 410 | 0 3 18 0 HPBL 411 | 0 3 196 1 HPBL 412 | 4 2 8 0 HPRIMF 413 | 0 19 196 1 HRCONO 414 | 0 15 16 0 HSRHT 415 | 0 15 15 0 HSR 416 | 0 3 7 0 HSTDV 417 | 10 0 3 0 HTSGW 418 | 0 3 3 0 ICAHT 419 | 1 2 7 0 ICECIL 420 | 10 2 0 0 ICEC 421 | 10 2 7 0 ICED 422 | 10 2 6 0 ICEG 423 | 10 2 9 0 ICEPRS 424 | 0 19 27 0 ICESC 425 | 0 19 37 0 ICESEV 426 | 1 2 6 0 ICETIL 427 | 10 2 1 0 ICETK 428 | 10 2 8 0 ICETMP 429 | 0 19 6 0 ICIB 430 | 0 19 20 0 ICIP 431 | 0 19 5 0 ICIT 432 | 0 19 7 0 ICI 433 | 0 1 23 0 ICMR 434 | 0 19 233 1 ICPRB 435 | 0 19 234 1 ICSEV 436 | 1 2 5 0 ICTKIL 437 | 2 0 207 1 ICWAT 438 | 0 1 20 0 ILIQW 439 | 10 0 27 0 IMFTSW 440 | 10 0 26 0 IMFWW 441 | 10 0 25 0 IMWF 442 | 2 4 9 0 INFSINX 443 | 4 4 3 0 INTEFLUX 444 | 10 4 196 1 INTFD 445 | 4 4 5 0 INTIFLUX 446 | 4 4 1 0 INTPFLUX 447 | 4 2 3 0 IONDEN 448 | 4 0 3 0 IONTMP 449 | 0 1 68 0 IPRATE 450 | 3 1 1 0 IRRATE 451 | 10 191 0 0 IRTSEC 452 | 3 5 0 0 ISSTMP 453 | 0 19 235 1 JFWPRB 454 | 10 3 201 1 KENG 455 | 0 7 3 0 KOX 456 | 10 0 43 0 KSSEDW 457 | 0 7 2 0 KX 458 | 0 7 198 1 LAI 459 | 1 2 8 0 LANDIL 460 | 2 0 218 1 LANDN 461 | 2 0 8 0 LANDU 462 | 2 0 0 0 LAND 463 | 0 2 202 1 LAPP 464 | 0 0 8 0 LAPR 465 | 0 2 198 1 LAUV 466 | 0 19 209 1 LAVNI 467 | 0 2 200 1 LAVV 468 | 0 3 205 1 LAYTH 469 | 0 6 3 0 LCDC 470 | 10 3 203 1 LCH 471 | 2 0 28 0 LEAINX 472 | 0 7 10 0 LFTX 473 | 0 7 192 1 LFTX 474 | 0 0 10 0 LHTFL 475 | 0 1 229 1 LICEAC 476 | 0 13 195 1 LIPMF 477 | 2 3 10 0 LIQVSM 478 | 0 15 4 0 LMAXBR 479 | 4 7 0 0 LMBINT 480 | 0 3 210 1 LMH 481 | 0 2 218 1 LMV 482 | 0 2 203 1 LOPP 483 | 0 2 199 1 LOUV 484 | 0 2 201 1 LOVV 485 | 2 3 3 0 LOWLSM 486 | 0 13 194 1 LPMTF 487 | 0 3 201 1 LPSX 488 | 0 3 202 1 LPSY 489 | 0 0 195 1 LRGHR 490 | 0 1 217 1 LRGMR 491 | 2 0 212 1 LSOIL 492 | 2 3 199 1 LSPA 493 | 0 1 54 0 LSPRATE 494 | 0 1 77 0 LSRRATE 495 | 0 1 59 0 LSSRATE 496 | 0 1 56 0 LSSRWE 497 | 0 1 47 0 LSWP 498 | 0 17 0 0 LTNGSD 499 | 0 17 192 1 LTNG 500 | 0 17 1 0 LTPINX 501 | 0 5 2 0 LWAVR 502 | 0 5 194 1 LWHR 503 | 0 4 5 0 LWRAD 504 | 2 3 23 0 LWSNWP 505 | 4 8 7 0 MASK 506 | 0 6 38 0 MASSDCD 507 | 0 6 39 0 MASSDCI 508 | 0 20 0 0 MASSDEN 509 | 0 1 98 0 MASSDG 510 | 0 1 99 0 MASSDH 511 | 0 1 96 0 MASSDR 512 | 0 1 97 0 MASSDS 513 | 0 20 2 0 MASSMR 514 | 0 18 15 0 MAXACON 515 | 0 1 28 0 MAXAH 516 | 0 2 221 1 MAXDVV 517 | 0 2 21 0 MAXGUST 518 | 0 16 198 1 MAXREF 519 | 0 1 27 0 MAXRH 520 | 0 2 220 1 MAXUVV 521 | 0 2 222 1 MAXUW 522 | 0 2 223 1 MAXVW 523 | 10 0 24 0 MAXWH 524 | 0 6 4 0 MCDC 525 | 0 1 26 0 MCONV 526 | 0 1 197 1 MCONV 527 | 0 6 40 0 MDCCWD 528 | 0 1 38 0 MDIVER 529 | 0 1 112 0 MDLWGVA 530 | 0 1 109 0 MDLWHVA 531 | 0 1 115 0 MDLWSVA 532 | 3 2 30 0 MEACST 533 | 0 6 200 1 MFLUX 534 | 0 2 26 0 MFLX 535 | 0 2 193 1 MFLX 536 | 0 0 14 0 MINDPD 537 | 0 1 198 1 MINRH 538 | 0 19 3 0 MIXHT 539 | 0 19 204 1 MIXLY 540 | 0 1 2 0 MIXR 541 | 0 191 195 1 MLYNO 542 | 0 1 114 0 MMLWGDA 543 | 0 1 111 0 MMLWHDA 544 | 0 1 117 0 MMLWSDA 545 | 0 2 6 0 MNTSF 546 | 0 7 200 1 MNUPHL 547 | 10 0 40 0 MNWSOW 548 | 0 20 64 0 MOLRDRYA 549 | 0 20 65 0 MOLRWETA 550 | 10 191 1 0 MOSF 551 | 0 19 195 1 MRCONO 552 | 0 3 192 1 MSLET 553 | 0 3 198 1 MSLMA 554 | 0 20 16 0 MSSRDRYA 555 | 0 20 17 0 MSSRWETA 556 | 10 0 20 0 MSSW 557 | 2 0 11 0 MSTAV 558 | 2 0 194 1 MSTAV 559 | 2 0 7 0 MTERH 560 | 10 4 1 0 MTHA 561 | 10 4 0 0 MTHD 562 | 10 2 11 0 MVCICEP 563 | 10 0 53 0 MWDFSWEL 564 | 10 0 41 0 MWDIRW 565 | 10 0 54 0 MWDSSWEL 566 | 10 0 55 0 MWDTSWEL 567 | 10 0 50 0 MWPFSWEL 568 | 10 0 51 0 MWPSSWEL 569 | 10 0 52 0 MWPTSWEL 570 | 10 0 15 0 MWSPER 571 | 0 19 28 0 MWTURB 572 | 0 19 31 0 MXEDPRM 573 | 0 20 61 0 MXMASSD 574 | 0 19 17 0 MXSALB 575 | 0 19 192 1 MXSALB 576 | 0 7 199 1 MXUPHL 577 | 10 0 30 0 MZPTSW 578 | 10 0 29 0 MZPWW 579 | 10 0 28 0 MZWPER 580 | 0 4 202 1 NBDSF 581 | 0 19 213 1 NBSALB 582 | 0 6 29 0 NCCICE 583 | 0 1 207 1 NCIP 584 | 0 6 28 0 NCONCD 585 | 0 1 9 0 NCPCP 586 | 0 6 31 0 NDCICE 587 | 0 4 203 1 NDDSF 588 | 0 6 30 0 NDENCD 589 | 2 0 31 0 NDVINX 590 | 2 0 217 1 NDVI 591 | 0 191 196 1 NLATN 592 | 0 191 192 1 NLAT 593 | 0 3 206 1 NLGSP 594 | 0 3 25 0 NLPRES 595 | 0 5 6 0 NLWRCS 596 | 0 5 5 0 NLWRF 597 | 0 5 0 0 NLWRS 598 | 0 5 1 0 NLWRT 599 | 3 1 6 0 NPIXU 600 | 0 4 11 0 NSWRFCS 601 | 0 4 9 0 NSWRF 602 | 0 4 0 0 NSWRS 603 | 0 4 1 0 NSWRT 604 | 4 4 6 0 NTRNFLUX 605 | 0 2 37 0 NTSS 606 | 0 1 106 0 NUMDG 607 | 0 1 107 0 NUMDH 608 | 0 1 104 0 NUMDR 609 | 0 1 105 0 NUMDS 610 | 0 2 34 0 NWIND 611 | 0 19 214 1 NWSALB 612 | 10 0 19 0 NWSTR 613 | 0 2 40 0 NWTPARM 614 | 0 14 1 0 O3MR 615 | 0 14 192 1 O3MR 616 | 10 4 197 1 OHC 617 | 0 2 215 1 OMGALF 618 | 10 1 192 1 OMLU 619 | 10 1 193 1 OMLV 620 | 0 3 217 1 ORASNW 621 | 0 3 216 1 ORASSW 622 | 0 3 215 1 ORASS 623 | 0 3 214 1 ORASW 624 | 0 3 213 1 ORCONV 625 | 0 3 221 1 ORLSNW 626 | 0 3 220 1 ORLSSW 627 | 0 3 219 1 ORLSS 628 | 0 3 218 1 ORLSW 629 | 10 4 4 0 OVHD 630 | 10 4 6 0 OVMD 631 | 10 4 5 0 OVSD 632 | 10 3 253 1 OWASHP 633 | 0 14 194 1 OZCAT 634 | 0 14 193 1 OZCON 635 | 0 14 200 1 OZMAX1 636 | 0 14 201 1 OZMAX8 637 | 10 3 196 1 P2OMLT 638 | 3 3 2 0 PBINFRC 639 | 3 3 1 0 PBLIFRC 640 | 0 19 12 0 PBLREG 641 | 3 3 0 0 PBMVFRC 642 | 0 1 234 1 PCPDUR 643 | 0 14 202 1 PDMAX1 644 | 0 14 203 1 PDMAX24 645 | 10 0 11 0 PERPW 646 | 1 0 16 0 PERRATE 647 | 10 0 13 0 PERSW 648 | 0 1 40 0 PEVAP 649 | 0 1 199 1 PEVAP 650 | 0 1 41 0 PEVPR 651 | 0 1 200 1 PEVPR 652 | 0 4 10 0 PHOTAR 653 | 3 0 8 0 PIXST 654 | 0 7 0 0 PLI 655 | 0 3 200 1 PLPL 656 | 4 2 0 0 PLSMDEN 657 | 10 0 23 0 PMAXWH 658 | 0 13 192 1 PMTC 659 | 0 13 193 1 PMTF 660 | 1 1 2 0 POP 661 | 2 3 9 0 POROS 662 | 2 3 197 1 POROS 663 | 0 0 2 0 POT 664 | 0 14 199 1 POZO 665 | 0 14 198 1 POZT 666 | 0 14 196 1 POZ 667 | 10 0 36 0 PPERTS 668 | 10 0 35 0 PPERWW 669 | 1 1 194 1 PPFFG 670 | 0 1 231 1 PPINDX 671 | 1 1 1 0 PPOSP 672 | 0 1 7 0 PRATE 673 | 4 0 4 0 PRATMP 674 | 0 15 5 0 PREC 675 | 0 3 13 0 PRESALT 676 | 0 3 8 0 PRESA 677 | 0 3 212 1 PRESN 678 | 0 3 0 0 PRES 679 | 0 3 1 0 PRMSL 680 | 0 1 232 1 PROBCIP 681 | 0 19 221 1 PROCON 682 | 4 2 2 0 PROTDEN 683 | 4 0 2 0 PROTTMP 684 | 4 0 5 0 PRPTMP 685 | 0 19 216 1 PRSIGSVR 686 | 0 19 215 1 PRSVR 687 | 10 4 21 0 PRTSAL 688 | 0 19 36 0 PSNOWS 689 | 0 3 2 0 PTEND 690 | 0 1 19 0 PTYPE 691 | 0 2 219 1 PVMWW 692 | 0 2 14 0 PVORT 693 | 0 1 3 0 PWAT 694 | 10 0 46 0 PWAVEDIR 695 | 0 1 30 0 PWCAT 696 | 10 0 34 0 PWPER 697 | 0 1 226 1 PWTHER 698 | 0 1 219 1 QMAX 699 | 0 1 220 1 QMIN 700 | 2 0 215 1 QREC 701 | 0 1 218 1 QZ0 702 | 2 3 202 1 RADT 703 | 3 1 8 0 RAZA 704 | 2 0 21 0 RCQ 705 | 2 0 204 1 RCQ 706 | 2 0 20 0 RCSOL 707 | 2 0 205 1 RCSOL 708 | 2 0 18 0 RCS 709 | 2 0 202 1 RCS 710 | 2 0 19 0 RCT 711 | 2 0 203 1 RCT 712 | 2 0 206 1 RDRIP 713 | 0 15 6 0 RDSP1 714 | 0 15 7 0 RDSP2 715 | 0 15 8 0 RDSP3 716 | 2 0 32 0 RDVEG 717 | 0 16 5 0 REFC 718 | 0 16 196 1 REFC 719 | 0 16 4 0 REFD 720 | 0 16 195 1 REFD 721 | 0 16 2 0 REFZC 722 | 0 16 194 1 REFZC 723 | 0 16 1 0 REFZI 724 | 0 16 193 1 REFZI 725 | 0 16 0 0 REFZR 726 | 0 16 192 1 REFZR 727 | 0 2 13 0 RELD 728 | 0 2 12 0 RELV 729 | 0 16 3 0 RETOP 730 | 0 16 197 1 RETOP 731 | 0 0 194 1 REV 732 | 0 15 9 0 RFCD 733 | 0 15 10 0 RFCI 734 | 0 15 13 0 RFGRPL 735 | 0 15 14 0 RFHAIL 736 | 3 1 9 0 RFL06 737 | 3 1 10 0 RFL08 738 | 3 1 11 0 RFL16 739 | 3 1 12 0 RFL39 740 | 0 15 12 0 RFRAIN 741 | 0 15 11 0 RFSNOW 742 | 0 1 94 0 RHICE 743 | 0 1 242 1 RHPW 744 | 0 1 93 0 RHWATER 745 | 0 1 1 0 RH 746 | 0 1 44 0 RIME 747 | 0 1 203 1 RIME 748 | 10 1 4 0 RIPCOP 749 | 0 7 12 0 RI 750 | 0 7 194 1 RI 751 | 2 3 6 0 RLYRS 752 | 2 3 193 1 RLYRS 753 | 0 1 65 0 RPRATE 754 | 2 0 16 0 RSMIN 755 | 2 0 200 1 RSMIN 756 | 1 0 2 0 RSSC 757 | 0 191 194 1 RTSEC 758 | 10 3 206 1 RUNUP 759 | 1 0 11 0 RVERSW 760 | 0 1 24 0 RWMR 761 | 0 18 14 0 SACON 762 | 0 20 100 0 SADEN 763 | 0 19 19 0 SALBD 764 | 3 0 1 0 SALBEDO 765 | 10 4 193 1 SALIN 766 | 1 2 12 0 SALTIL 767 | 10 4 3 0 SALTY 768 | 0 1 5 0 SATD 769 | 2 3 17 0 SATOSM 770 | 3 192 4 0 SBC123 771 | 3 192 5 0 SBC124 772 | 0 19 211 1 SBSALB 773 | 0 1 212 1 SBSNO 774 | 3 192 6 0 SBT112 775 | 3 192 7 0 SBT113 776 | 3 192 8 0 SBT114 777 | 3 192 9 0 SBT115 778 | 3 192 0 0 SBT122 779 | 3 192 1 0 SBT123 780 | 3 192 2 0 SBT124 781 | 3 192 3 0 SBT126 782 | 3 192 23 0 SBTA1610 783 | 3 192 24 0 SBTA1611 784 | 3 192 25 0 SBTA1612 785 | 3 192 26 0 SBTA1613 786 | 3 192 27 0 SBTA1614 787 | 3 192 28 0 SBTA1615 788 | 3 192 29 0 SBTA1616 789 | 3 192 20 0 SBTA167 790 | 3 192 21 0 SBTA168 791 | 3 192 22 0 SBTA169 792 | 3 192 39 0 SBTA1710 793 | 3 192 40 0 SBTA1711 794 | 3 192 41 0 SBTA1712 795 | 3 192 42 0 SBTA1713 796 | 3 192 43 0 SBTA1714 797 | 3 192 44 0 SBTA1715 798 | 3 192 45 0 SBTA1716 799 | 3 192 36 0 SBTA177 800 | 3 192 37 0 SBTA178 801 | 3 192 38 0 SBTA179 802 | 3 192 55 0 SBTAGR10 803 | 3 192 56 0 SBTAGR11 804 | 3 192 57 0 SBTAGR12 805 | 3 192 58 0 SBTAGR13 806 | 3 192 59 0 SBTAGR14 807 | 3 192 60 0 SBTAGR15 808 | 3 192 61 0 SBTAGR16 809 | 3 192 52 0 SBTAGR7 810 | 3 192 53 0 SBTAGR8 811 | 3 192 54 0 SBTAGR9 812 | 3 0 2 0 SBTMP 813 | 4 2 10 0 SCINT 814 | 0 1 84 0 SCLIWC 815 | 0 1 83 0 SCLLWC 816 | 3 1 29 0 SCRAD 817 | 0 20 112 0 SCTAOTK 818 | 3 0 5 0 SCTPRES 819 | 0 20 6 0 SDDMFLX 820 | 0 1 61 0 SDEN 821 | 3 1 99 0 SDMPEMRR 822 | 0 3 20 0 SDSGSO 823 | 0 1 60 0 SDWE 824 | 0 20 11 0 SEDMFLX 825 | 1 2 3 0 SEDTK 826 | 1 2 4 0 SEDTMP 827 | 10 3 207 1 SETUP 828 | 0 1 62 0 SEVAP 829 | 2 0 216 1 SFCRH 830 | 2 0 1 0 SFCR 831 | 2 0 34 0 SFCWRO 832 | 2 0 12 0 SFEXC 833 | 2 0 195 1 SFEXC 834 | 1 0 10 0 SFLORC 835 | 0 20 55 0 SFLUX 836 | 3 192 14 0 SFRA161 837 | 3 192 15 0 SFRA162 838 | 3 192 16 0 SFRA163 839 | 3 192 17 0 SFRA164 840 | 3 192 18 0 SFRA165 841 | 3 192 19 0 SFRA166 842 | 3 192 30 0 SFRA171 843 | 3 192 31 0 SFRA172 844 | 3 192 32 0 SFRA173 845 | 3 192 33 0 SFRA174 846 | 3 192 34 0 SFRA175 847 | 3 192 35 0 SFRA176 848 | 10 4 11 0 SFSALP 849 | 1 2 9 0 SFSAL 850 | 10 4 12 0 SFTMPP 851 | 1 2 10 0 SFTMP 852 | 0 2 7 0 SGCVV 853 | 0 0 201 1 SHAHR 854 | 0 19 201 1 SHAILPRO 855 | 0 1 214 1 SHAMR 856 | 2 3 26 0 SHFLX 857 | 0 0 11 0 SHTFL 858 | 0 1 108 0 SHTPRM 859 | 0 7 13 0 SHWINX 860 | 10 2 3 0 SICED 861 | 4 9 1 0 SIGHAL 862 | 4 9 2 0 SIGPAR 863 | 4 9 0 0 SIGPED 864 | 0 19 217 1 SIPD 865 | 0 0 17 0 SKINT 866 | 3 5 1 0 SKSSTMP 867 | 0 1 230 1 SLACC 868 | 0 19 23 0 SLDP 869 | 3 0 4 0 SLFTI 870 | 10 3 202 1 SLTFL 871 | 2 3 194 1 SLTYP 872 | 0 6 34 0 SLWTC 873 | 2 3 8 0 SMDRY 874 | 2 3 196 1 SMDRY 875 | 0 1 113 0 SMLWGMA 876 | 0 1 110 0 SMLWHMA 877 | 0 1 116 0 SMLWSMA 878 | 2 3 7 0 SMREF 879 | 2 3 195 1 SMREF 880 | 0 19 18 0 SNFALB 881 | 0 19 193 1 SNFALB 882 | 0 1 25 0 SNMR 883 | 0 1 17 0 SNOAG 884 | 0 1 14 0 SNOC 885 | 0 1 11 0 SNOD 886 | 0 0 16 0 SNOHF 887 | 0 0 192 1 SNOHF 888 | 0 1 15 0 SNOL 889 | 0 1 16 0 SNOM 890 | 0 0 18 0 SNOT 891 | 0 1 208 1 SNOT 892 | 0 1 42 0 SNOWC 893 | 0 1 201 1 SNOWC 894 | 0 1 233 1 SNOWLR 895 | 0 19 236 1 SNOWLVL 896 | 0 1 222 1 SNOWT 897 | 2 3 25 0 SNWDEB 898 | 2 3 27 0 SOILDEP 899 | 2 3 21 0 SOILICE 900 | 2 3 5 0 SOILL 901 | 2 3 192 1 SOILL 902 | 2 3 19 0 SOILMOI 903 | 2 0 3 0 SOILM 904 | 2 0 22 0 SOILM 905 | 2 3 15 0 SOILP 906 | 2 3 18 0 SOILTMP 907 | 2 0 38 0 SOILVIC 908 | 2 0 192 1 SOILW 909 | 4 6 6 0 SOLRF 910 | 3 1 7 0 SOLZA 911 | 2 3 0 0 SOTYP 912 | 3 1 28 0 SPBRT 913 | 10 1 1 0 SPC 914 | 4 6 4 0 SPECIRR 915 | 4 1 0 0 SPEED 916 | 0 1 0 0 SPFH 917 | 10 0 45 0 SPFTR 918 | 0 1 102 0 SPNCG 919 | 0 1 103 0 SPNCH 920 | 0 1 100 0 SPNCR 921 | 0 1 101 0 SPNCS 922 | 0 1 66 0 SPRATE 923 | 4 2 7 0 SPRDF 924 | 3 0 3 0 SPWAT 925 | 3 0 0 0 SRAD 926 | 0 1 85 0 SRAINC 927 | 0 19 194 1 SRCONO 928 | 3 192 46 0 SRFAGR1 929 | 3 192 47 0 SRFAGR2 930 | 3 192 48 0 SRFAGR3 931 | 3 192 49 0 SRFAGR4 932 | 3 192 50 0 SRFAGR5 933 | 3 192 51 0 SRFAGR6 934 | 0 1 12 0 SRWEQ 935 | 0 20 103 0 SSALBK 936 | 0 3 22 0 SSGSO 937 | 10 3 195 1 SSHG 938 | 3 5 2 0 SSKSSTMP 939 | 0 1 86 0 SSNOWW 940 | 1 0 6 0 SSRUN 941 | 1 0 193 1 SSRUN 942 | 10 3 200 1 SSST 943 | 3 0 6 0 SSTMP 944 | 2 0 211 1 SSTOR 945 | 10 3 199 1 SSTT 946 | 0 6 35 0 SSWTC 947 | 0 19 200 1 STORPROB 948 | 0 2 4 0 STRM 949 | 0 1 87 0 STRPRATE 950 | 0 6 33 0 SUNSD 951 | 0 6 201 1 SUNSD 952 | 0 6 24 0 SUNS 953 | 10 3 192 1 SURGE 954 | 0 19 220 1 SVRTS 955 | 10 3 208 1 SWASH 956 | 0 4 2 0 SWAVR 957 | 10 0 7 0 SWDIR 958 | 0 20 7 0 SWDMFLX 959 | 0 7 5 0 SWEATX 960 | 10 0 8 0 SWELL 961 | 1 0 4 0 SWEPON 962 | 10 0 47 0 SWHFSWEL 963 | 0 4 197 1 SWHR 964 | 10 0 48 0 SWHSSWEL 965 | 10 0 49 0 SWHTSWEL 966 | 0 19 202 1 SWINDPRO 967 | 10 0 9 0 SWPER 968 | 3 1 194 1 SWQI 969 | 0 4 6 0 SWRAD 970 | 0 19 212 1 SWSALB 971 | 0 6 1 0 TCDC 972 | 0 0 204 1 TCHP 973 | 0 1 81 0 TCICON 974 | 0 14 2 0 TCIOZ 975 | 0 1 64 0 TCIWV 976 | 2 0 35 0 TCLASS 977 | 0 1 209 1 TCLSW 978 | 0 6 20 0 TCOLC 979 | 0 6 198 1 TCOLC 980 | 0 1 74 0 TCOLG 981 | 0 1 72 0 TCOLH 982 | 0 6 19 0 TCOLIO 983 | 0 1 70 0 TCOLI 984 | 0 6 197 1 TCOLI 985 | 0 1 210 1 TCOLM 986 | 0 1 45 0 TCOLR 987 | 0 1 204 1 TCOLR 988 | 0 1 46 0 TCOLS 989 | 0 1 205 1 TCOLS 990 | 0 1 78 0 TCOLWA 991 | 0 6 18 0 TCOLWO 992 | 0 1 69 0 TCOLW 993 | 0 6 196 1 TCOLW 994 | 0 6 17 0 TCONDO 995 | 0 1 21 0 TCOND 996 | 0 6 195 1 TCOND 997 | 10 3 242 1 TCSRG20 998 | 10 3 243 1 TCSRG30 999 | 10 3 244 1 TCSRG40 1000 | 10 3 245 1 TCSRG50 1001 | 10 3 246 1 TCSRG60 1002 | 10 3 247 1 TCSRG70 1003 | 10 3 248 1 TCSRG80 1004 | 10 3 249 1 TCSRG90 1005 | 0 1 51 0 TCWAT 1006 | 0 0 20 0 TDCHT 1007 | 0 2 31 0 TDCMOM 1008 | 2 0 36 0 TFRCT 1009 | 0 0 197 1 THFLX 1010 | 0 3 12 0 THICK 1011 | 0 6 10 0 THUNC 1012 | 0 0 203 1 THZ0 1013 | 0 18 6 0 TIACCP 1014 | 0 18 7 0 TIACIP 1015 | 0 18 8 0 TIACRP 1016 | 10 3 251 1 TIDE 1017 | 0 1 206 1 TIPD 1018 | 0 19 11 0 TKE 1019 | 0 1 90 0 TKMFLX 1020 | 0 17 4 0 TLGTFD 1021 | 0 6 9 0 TMAXT 1022 | 0 0 4 0 TMAX 1023 | 0 0 5 0 TMIN 1024 | 0 0 29 0 TMPADV 1025 | 0 0 9 0 TMPA 1026 | 4 0 0 0 TMPSWP 1027 | 0 0 0 0 TMP 1028 | 0 2 227 1 TOA10 1029 | 0 2 228 1 TOA50 1030 | 0 2 229 1 TOD50 1031 | 0 2 230 1 TOD90 1032 | 0 19 197 1 TORPROB 1033 | 0 7 4 0 TOTALX 1034 | 0 1 80 0 TOTCON 1035 | 0 18 13 0 TOTLWD 1036 | 0 14 0 0 TOZNE 1037 | 0 14 197 1 TOZ 1038 | 2 0 37 0 TPERCT 1039 | 0 19 219 1 TPFI 1040 | 0 1 52 0 TPRATE 1041 | 0 20 13 0 TRANHH 1042 | 2 3 12 0 TRANSO 1043 | 2 0 230 1 TRANS 1044 | 0 20 14 0 TRSDS 1045 | 0 2 226 1 TRWDIR 1046 | 0 2 225 1 TRWSPD 1047 | 0 0 200 1 TSD1D 1048 | 0 191 0 0 TSEC 1049 | 4 6 0 0 TSI 1050 | 0 3 199 1 TSLSA 1051 | 0 1 50 0 TSNOWP 1052 | 0 1 241 1 TSNOW 1053 | 2 0 2 0 TSOIL 1054 | 0 1 57 0 TSRATE 1055 | 0 1 53 0 TSRWE 1056 | 0 19 203 1 TSTMC 1057 | 0 19 2 0 TSTM 1058 | 0 0 19 0 TTCHT 1059 | 0 0 198 1 TTDIA 1060 | 10 4 2 0 TTHDP 1061 | 0 0 25 0 TTLWRCS 1062 | 0 0 23 0 TTLWR 1063 | 0 0 26 0 TTPARM 1064 | 0 0 199 1 TTPHY 1065 | 0 0 193 1 TTRAD 1066 | 0 0 24 0 TTSWRCS 1067 | 0 0 22 0 TTSWR 1068 | 0 19 9 0 TURBB 1069 | 0 19 8 0 TURBT 1070 | 0 19 10 0 TURB 1071 | 0 1 49 0 TWATP 1072 | 0 2 35 0 TWIND 1073 | 10 3 210 1 TWLDC 1074 | 10 3 209 1 TWLDT 1075 | 10 3 205 1 TWLWAV 1076 | 0 20 58 0 TYAAL 1077 | 0 20 57 0 TYABA 1078 | 0 3 16 0 U-GWD 1079 | 0 3 194 1 U-GWD 1080 | 10 1 194 1 UBARO 1081 | 0 3 31 0 UCLSPRS 1082 | 0 1 120 0 UCSCIW 1083 | 0 1 119 0 UCSCLW 1084 | 0 0 28 0 UCTMP 1085 | 0 3 29 0 UDRATE 1086 | 0 2 17 0 UFLX 1087 | 0 2 2 0 UGRD 1088 | 0 2 23 0 UGUST 1089 | 0 2 41 0 UGWIND 1090 | 10 2 4 0 UICE 1091 | 0 1 91 0 UKMFLX 1092 | 0 5 4 0 ULWRF 1093 | 0 5 193 1 ULWRF 1094 | 0 3 27 0 UMFLX 1095 | 0 1 118 0 UNCSH 1096 | 0 2 45 0 UNDIV 1097 | 10 1 2 0 UOGRD 1098 | 1 0 14 0 UPAPCP 1099 | 1 0 15 0 UPASM 1100 | 0 7 15 0 UPHL 1101 | 0 7 197 1 UPHL 1102 | 2 3 2 0 UPLSM 1103 | 2 3 1 0 UPLST 1104 | 3 1 192 1 USCT 1105 | 10 0 21 0 USSD 1106 | 0 2 27 0 USTM 1107 | 0 2 194 1 USTM 1108 | 0 4 53 0 USWRFCS 1109 | 0 4 8 0 USWRF 1110 | 0 4 193 1 USWRF 1111 | 0 4 205 1 UTRF 1112 | 0 4 50 0 UVIUCS 1113 | 0 4 51 0 UVI 1114 | 0 7 196 1 UVI 1115 | 0 3 17 0 V-GWD 1116 | 0 3 195 1 V-GWD 1117 | 0 19 232 1 VAFTD 1118 | 0 1 4 0 VAPP 1119 | 10 1 195 1 VBARO 1120 | 0 4 200 1 VBDSF 1121 | 0 4 201 1 VDDSF 1122 | 0 0 202 1 VDFHR 1123 | 0 1 215 1 VDFMR 1124 | 0 14 195 1 VDFOZ 1125 | 0 2 208 1 VDFUA 1126 | 0 2 209 1 VDFVA 1127 | 0 2 204 1 VEDH 1128 | 2 0 210 1 VEGT 1129 | 2 0 4 0 VEG 1130 | 4 1 1 0 VEL1 1131 | 4 1 2 0 VEL2 1132 | 4 1 3 0 VEL3 1133 | 0 2 18 0 VFLX 1134 | 0 6 48 0 VFRCICE 1135 | 0 6 49 0 VFRCIW 1136 | 0 6 47 0 VFRCWD 1137 | 0 2 3 0 VGRD 1138 | 2 0 198 1 VGTYP 1139 | 0 2 24 0 VGUST 1140 | 0 2 42 0 VGWIND 1141 | 10 2 5 0 VICE 1142 | 0 15 3 0 VIL 1143 | 0 19 35 0 VISBSN 1144 | 0 19 34 0 VISIFOG 1145 | 0 19 33 0 VISLFOG 1146 | 0 19 0 0 VIS 1147 | 0 1 92 0 VKMFLX 1148 | 0 20 52 0 VMXR 1149 | 10 1 3 0 VOGRD 1150 | 3 4 4 0 VOLACDEM 1151 | 3 4 7 0 VOLACDEN 1152 | 3 4 6 0 VOLACDOD 1153 | 3 4 3 0 VOLACDTH 1154 | 3 4 2 0 VOLACDTP 1155 | 3 4 1 0 VOLACDTT 1156 | 3 4 5 0 VOLAEADR 1157 | 3 4 8 0 VOLAPER 1158 | 3 4 0 0 VOLAPROB 1159 | 0 19 4 0 VOLASH 1160 | 2 3 13 0 VOLDEC 1161 | 2 3 11 0 VOLTSO 1162 | 0 2 46 0 VORTADV 1163 | 0 2 5 0 VPOT 1164 | 0 0 15 0 VPTMP 1165 | 0 2 224 1 VRATE 1166 | 3 1 193 1 VSCT 1167 | 2 0 25 0 VSOILM 1168 | 2 3 16 0 VSOSM 1169 | 10 0 22 0 VSSD 1170 | 0 2 28 0 VSTM 1171 | 0 2 195 1 VSTM 1172 | 4 2 4 0 VTEC 1173 | 0 0 1 0 VTMP 1174 | 0 2 15 0 VUCSH 1175 | 0 2 16 0 VVCSH 1176 | 0 2 8 0 VVEL 1177 | 2 0 27 0 VWILTM 1178 | 0 2 25 0 VWSH 1179 | 0 2 192 1 VWSH 1180 | 10 4 17 0 WATDENA 1181 | 10 4 16 0 WATERDEN 1182 | 10 4 20 0 WATPDENA 1183 | 10 4 19 0 WATPDEN 1184 | 10 4 18 0 WATPTEMP 1185 | 2 0 5 0 WATR 1186 | 10 0 62 0 WAVEFREW 1187 | 2 0 223 1 WCCONV 1188 | 0 0 13 0 WCF 1189 | 2 0 221 1 WCINC 1190 | 2 0 226 1 WCUFLX 1191 | 2 0 227 1 WCVFLX 1192 | 0 20 10 0 WDCPMFLX 1193 | 10 4 14 0 WDEPTH 1194 | 10 0 31 0 WDIRW 1195 | 0 2 0 0 WDIR 1196 | 1 2 0 0 WDPTHIL 1197 | 10 0 56 0 WDWFSWEL 1198 | 10 0 57 0 WDWSSWEL 1199 | 10 0 58 0 WDWTSWEL 1200 | 0 1 13 0 WEASD 1201 | 10 0 42 0 WESP 1202 | 0 0 27 0 WETBT 1203 | 0 18 11 0 WETDEP 1204 | 0 20 75 0 WFIREFLX 1205 | 1 2 2 0 WFRACT 1206 | 10 0 59 0 WFWFSWEL 1207 | 10 0 60 0 WFWSSWEL 1208 | 10 0 61 0 WFWTSWEL 1209 | 4 8 5 0 WHTCOR 1210 | 4 8 3 0 WHTRAD 1211 | 2 0 26 0 WILT 1212 | 2 0 201 1 WILT 1213 | 0 2 33 0 WINDF 1214 | 0 19 199 1 WINDPROB 1215 | 3 1 19 0 WINDS 1216 | 0 2 1 0 WIND 1217 | 0 19 25 0 WIWW 1218 | 10 0 193 1 WLENG 1219 | 0 20 9 0 WLSMFLX 1220 | 0 2 19 0 WMIXE 1221 | 2 0 33 0 WROD 1222 | 10 0 192 1 WSTP 1223 | 10 0 18 0 WSTR 1224 | 0 2 214 1 WTEND 1225 | 10 4 192 1 WTMPC 1226 | 1 2 1 0 WTMPIL 1227 | 10 4 15 0 WTMPSS 1228 | 10 3 0 0 WTMP 1229 | 2 0 222 1 WVCONV 1230 | 10 0 4 0 WVDIR 1231 | 10 0 5 0 WVHGT 1232 | 2 0 220 1 WVINC 1233 | 10 0 6 0 WVPER 1234 | 10 0 0 0 WVSP1 1235 | 10 0 1 0 WVSP2 1236 | 10 0 2 0 WVSP3 1237 | 2 0 224 1 WVUFLX 1238 | 2 0 225 1 WVVFLX 1239 | 10 0 14 0 WWSDIR 1240 | 4 6 1 0 XLONG 1241 | 0 3 26 0 XPRES 1242 | 4 8 0 0 XRAYRAD 1243 | 4 6 2 0 XSHRT 1244 | 10 2 10 0 ZVCICEP 1245 | -------------------------------------------------------------------------------- /src/resources/run/post/02/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf002.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf002.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/02/params_grib2_tbl_new: -------------------------------------------------------------------------------- 1 | 0 7 11 0 4LFTX 2 | 0 7 193 1 4LFTX 3 | 0 3 19 0 5WAVA 4 | 0 3 197 1 5WAVA 5 | 0 3 15 0 5WAVH 6 | 0 3 193 1 5WAVH 7 | 0 20 106 0 AACOEF 8 | 0 2 11 0 ABSD 9 | 4 2 5 0 ABSFRQ 10 | 0 1 18 0 ABSH 11 | 4 2 6 0 ABSRB 12 | 0 2 10 0 ABSV 13 | 0 18 0 0 ACCES 14 | 0 18 1 0 ACIOD 15 | 2 0 228 1 ACOND 16 | 0 1 224 1 ACPCPN 17 | 0 1 10 0 ACPCP 18 | 0 18 2 0 ACRADP 19 | 10 4 13 0 ACWSRD 20 | 1 2 11 0 ACWSR 21 | 0 20 105 0 AECOEF 22 | 0 20 3 0 AEMFLX 23 | 0 13 0 0 AEROT 24 | 0 2 36 0 AFRWE 25 | 0 20 50 0 AIA 26 | 0 18 10 0 AIRCON 27 | 2 0 208 1 AKHS 28 | 2 0 209 1 AKMS 29 | 0 19 1 0 ALBDO 30 | 0 20 108 0 ALBGRD 31 | 0 20 107 0 ALBSAT 32 | 10 0 38 0 ALCWH 33 | 0 20 110 0 ALEGRD 34 | 0 20 109 0 ALESAT 35 | 10 0 39 0 ALRRC 36 | 0 3 11 0 ALTS 37 | 10 0 37 0 ALTWH 38 | 2 0 219 1 AMIXL 39 | 3 192 11 0 AMSRE10 40 | 3 192 12 0 AMSRE11 41 | 3 192 13 0 AMSRE12 42 | 3 192 10 0 AMSRE9 43 | 0 20 59 0 ANCON 44 | 3 1 23 0 ANGCOE 45 | 0 20 111 0 ANGSTEXP 46 | 0 20 5 0 ANPEMFLX 47 | 0 20 4 0 ANPMFLX 48 | 10 3 197 1 AOHFLX 49 | 3 1 20 0 AOT06 50 | 3 1 21 0 AOT08 51 | 3 1 22 0 AOT16 52 | 0 20 102 0 AOTK 53 | 0 1 223 1 APCPN 54 | 0 1 8 0 APCP 55 | 0 0 21 0 APTMP 56 | 0 1 221 1 ARAIN 57 | 0 20 8 0 AREMFLX 58 | 0 3 21 0 ASGSO 59 | 0 3 24 0 ASGSO 60 | 10 3 198 1 ASHFL 61 | 0 20 60 0 ASNCON 62 | 0 1 29 0 ASNOW 63 | 0 20 104 0 ASYSFK 64 | 0 190 0 0 ATEXT 65 | 3 1 13 0 ATMDIV 66 | 0 20 101 0 ATMTK 67 | 2 3 201 1 AVSFT 68 | 2 3 200 1 BARET 69 | 10 4 7 0 BATHY 70 | 10 0 44 0 BENINX 71 | 1 0 5 0 BGRUN 72 | 1 0 192 1 BGRUN 73 | 10 4 194 1 BKENG 74 | 0 7 1 0 BLI 75 | 0 7 16 0 BLKRN 76 | 0 2 20 0 BLYDP 77 | 2 0 14 0 BMIXL 78 | 2 0 197 1 BMIXL 79 | 0 7 201 1 BNEGELAY 80 | 2 3 4 0 BOTLST 81 | 0 7 202 1 BPOSELAY 82 | 0 15 1 0 BREF 83 | 3 1 27 0 BRFLF 84 | 0 5 7 0 BRTEMP 85 | 0 4 4 0 BRTMP 86 | 0 15 2 0 BRVEL 87 | 0 15 0 0 BSWID 88 | 4 3 0 0 BTOT 89 | 4 3 1 0 BVEC1 90 | 4 3 2 0 BVEC2 91 | 4 3 3 0 BVEC3 92 | 0 18 18 0 CAACL 93 | 4 8 4 0 CAIIRAD 94 | 0 7 206 1 CANGLE 95 | 2 1 192 1 CANL 96 | 0 7 6 0 CAPE 97 | 0 1 88 0 CATCP 98 | 0 19 29 0 CATEDR 99 | 0 19 22 0 CAT 100 | 0 20 63 0 CAVEMDL 101 | 0 20 70 0 CBECSLSP 102 | 0 6 25 0 CBHE 103 | 0 20 67 0 CBLCLDSP 104 | 0 20 73 0 CBLCSRCP 105 | 3 1 14 0 CBTMP 106 | 3 1 98 0 CCMPEMRR 107 | 2 0 15 0 CCOND 108 | 2 0 199 1 CCOND 109 | 0 6 7 0 CDCA 110 | 0 6 11 0 CDCB 111 | 0 6 22 0 CDCC 112 | 0 17 3 0 CDCDLTFD 113 | 0 6 23 0 CDCIMR 114 | 0 6 2 0 CDCON 115 | 0 6 12 0 CDCTOP 116 | 0 6 8 0 CDCT 117 | 0 17 2 0 CDGDLTFD 118 | 0 6 14 0 CDLYR 119 | 0 6 192 1 CDLYR 120 | 0 4 195 1 CDUVB 121 | 10 0 16 0 CDWW 122 | 0 2 29 0 CD 123 | 0 2 196 1 CD 124 | 0 6 13 0 CEIL 125 | 0 5 197 1 CFNLF 126 | 0 4 199 1 CFNSF 127 | 0 1 34 0 CFRZR 128 | 0 1 193 1 CFRZR 129 | 0 20 54 0 CGDRC 130 | 0 20 53 0 CGPRC 131 | 10 3 2 0 CH 132 | 0 18 17 0 CIAIRC 133 | 0 19 206 1 CICEL 134 | 0 1 35 0 CICEP 135 | 0 1 194 1 CICEP 136 | 10 2 12 0 CICES 137 | 0 6 0 0 CICE 138 | 0 19 208 1 CIFLT 139 | 0 1 82 0 CIMIXR 140 | 0 20 66 0 CINCLDSP 141 | 0 20 69 0 CINCSLSP 142 | 0 20 72 0 CINCSRCP 143 | 0 7 7 0 CIN 144 | 0 20 68 0 CIRELREP 145 | 0 20 74 0 CIRERECP 146 | 2 3 22 0 CISICE 147 | 2 3 20 0 CISOILM 148 | 2 0 23 0 CISOILW 149 | 0 19 207 1 CIVIS 150 | 3 2 9 0 CLDALB 151 | 3 2 10 0 CLDEMISS 152 | 3 2 8 0 CLDIWP 153 | 3 2 7 0 CLDLWP 154 | 3 2 5 0 CLDODEP 155 | 3 2 6 0 CLDPER 156 | 3 2 4 0 CLDPHAS 157 | 3 1 16 0 CLDRAD 158 | 3 2 3 0 CLDTYPE 159 | 0 1 235 1 CLLMR 160 | 3 0 7 0 CLOUDM 161 | 0 1 22 0 CLWMR 162 | 0 2 216 1 CNGWDU 163 | 0 2 217 1 CNGWDV 164 | 0 3 209 1 CNVDEMF 165 | 0 3 208 1 CNVDMF 166 | 0 0 196 1 CNVHR 167 | 0 1 213 1 CNVMR 168 | 0 3 207 1 CNVUMF 169 | 0 2 212 1 CNVU 170 | 0 2 213 1 CNVV 171 | 2 0 13 0 CNWAT 172 | 2 0 196 1 CNWAT 173 | 0 20 56 0 COAIA 174 | 0 20 1 0 COLMD 175 | 0 20 51 0 CONAIR 176 | 0 7 19 0 CONAPES 177 | 0 1 216 1 CONDP 178 | 0 19 16 0 CONTB 179 | 0 19 14 0 CONTET 180 | 0 19 13 0 CONTI 181 | 0 19 24 0 CONTKE 182 | 0 19 15 0 CONTT 183 | 0 19 26 0 CONVO 184 | 0 19 222 1 CONVP 185 | 0 192 6 0 COVMM 186 | 0 192 1 0 COVMZ 187 | 0 2 205 1 COVMZ 188 | 0 192 11 0 COVPSPS 189 | 0 192 8 0 COVQM 190 | 0 192 12 0 COVQQ 191 | 0 192 10 0 COVQVV 192 | 0 192 7 0 COVQZ 193 | 0 192 3 0 COVTM 194 | 0 2 207 1 COVTM 195 | 0 192 14 0 COVTT 196 | 0 192 9 0 COVTVV 197 | 0 192 4 0 COVTW 198 | 0 192 2 0 COVTZ 199 | 0 2 206 1 COVTZ 200 | 0 192 13 0 COVVVVV 201 | 0 192 5 0 COVZZ 202 | 0 1 39 0 CPOFP 203 | 1 1 193 1 CPOFP 204 | 1 1 192 1 CPOZP 205 | 1 1 0 0 CPPOP 206 | 0 1 37 0 CPRAT 207 | 0 1 196 1 CPRAT 208 | 0 1 33 0 CRAIN 209 | 0 1 192 1 CRAIN 210 | 0 20 71 0 CRERELSP 211 | 0 1 76 0 CRRATE 212 | 4 2 9 0 CRTFRQ 213 | 1 2 13 0 CSAFC 214 | 3 1 15 0 CSBTMP 215 | 0 5 196 1 CSDLF 216 | 0 4 196 1 CSDSF 217 | 3 2 0 0 CSKPROB 218 | 3 1 17 0 CSKYRAD 219 | 0 1 36 0 CSNOW 220 | 0 1 195 1 CSNOW 221 | 0 1 58 0 CSRATE 222 | 0 1 55 0 CSRWE 223 | 0 5 195 1 CSULF 224 | 0 4 198 1 CSUSF 225 | 3 1 3 0 CTOPHQI 226 | 3 1 2 0 CTOPH 227 | 3 2 2 0 CTOPRES 228 | 3 2 1 0 CTOPTMP 229 | 0 19 21 0 CTP 230 | 0 6 16 0 CUEFI 231 | 0 6 194 1 CUEFI 232 | 0 6 6 0 CWAT 233 | 0 7 195 1 CWDI 234 | 0 6 15 0 CWORK 235 | 0 6 193 1 CWORK 236 | 0 1 48 0 CWP 237 | 1 1 195 1 CWR 238 | 10 4 195 1 DBSS 239 | 0 7 203 1 DCAPE 240 | 0 20 12 0 DDMFLX 241 | 0 3 30 0 DDRATE 242 | 0 20 15 0 DDVEL 243 | 2 0 30 0 DECF 244 | 0 3 14 0 DENALT 245 | 0 3 10 0 DEN 246 | 0 0 7 0 DEPR 247 | 1 0 13 0 DEPWSS 248 | 10 2 2 0 DICED 249 | 4 4 2 0 DIFEFLUX 250 | 4 4 4 0 DIFIFLUX 251 | 4 4 0 0 DIFPFLUX 252 | 3 6 5 0 DIFSOLEX 253 | 3 6 4 0 DIFSOLIR 254 | 0 4 14 0 DIFSWRF 255 | 10 1 0 0 DIRC 256 | 2 3 14 0 DIREC 257 | 10 0 10 0 DIRPW 258 | 3 6 3 0 DIRSOLEX 259 | 3 6 2 0 DIRSOLIR 260 | 10 0 12 0 DIRSW 261 | 10 0 33 0 DIRWTS 262 | 10 0 32 0 DIRWWW 263 | 1 0 7 0 DISRS 264 | 0 3 6 0 DIST 265 | 0 5 8 0 DLWRFCS 266 | 0 5 3 0 DLWRF 267 | 0 5 192 1 DLWRF 268 | 0 3 28 0 DMFLX 269 | 0 0 6 0 DPT 270 | 2 4 8 0 DRTCODE 271 | 0 18 12 0 DRYDEP 272 | 0 19 237 1 DRYTPROB 273 | 4 7 2 0 DSKDAY 274 | 4 7 1 0 DSKINT 275 | 4 7 3 0 DSKNGT 276 | 10 3 1 0 DSLM 277 | 10 191 3 0 DSLOBSO 278 | 0 191 3 0 DSLOBS 279 | 0 4 52 0 DSWRFCS 280 | 0 4 13 0 DSWRFLX 281 | 0 4 7 0 DSWRF 282 | 0 4 192 1 DSWRF 283 | 0 4 204 1 DTRF 284 | 2 4 7 0 DUFMCODE 285 | 0 4 194 1 DUVB 286 | 0 4 12 0 DWUVR 287 | 0 2 9 0 DZDT 288 | 3 2 11 0 EAODR 289 | 3 5 5 0 EBSDSSTS 290 | 3 5 4 0 EBSSTSTD 291 | 0 19 30 0 EDPARM 292 | 0 7 204 1 EFHL 293 | 0 7 9 0 EHLX 294 | 4 2 1 0 ELCDEN 295 | 4 0 1 0 ELECTMP 296 | 10 3 194 1 ELEV 297 | 0 19 238 1 ELLINX 298 | 0 191 197 1 ELONN 299 | 0 191 193 1 ELON 300 | 0 1 211 1 EMNP 301 | 0 0 3 0 EPOT 302 | 0 19 218 1 EPSR 303 | 10 3 252 1 EROSNP 304 | 1 0 3 0 ESCT 305 | 0 7 205 1 ESP 306 | 3 1 0 0 ESTP 307 | 3 1 4 0 ESTUGRD 308 | 3 1 5 0 ESTVGRD 309 | 0 2 32 0 ETACVV 310 | 10 3 250 1 ETCWL 311 | 4 3 4 0 ETOT 312 | 10 3 193 1 ETSRG 313 | 0 2 38 0 ETSS 314 | 4 6 3 0 EUVIRR 315 | 4 8 1 0 EUVRAD 316 | 2 0 6 0 EVAPT 317 | 0 1 79 0 EVARATE 318 | 2 3 198 1 EVBS 319 | 2 0 229 1 EVCW 320 | 4 3 5 0 EVEC1 321 | 4 3 6 0 EVEC2 322 | 4 3 7 0 EVEC3 323 | 2 0 29 0 EVERF 324 | 0 1 6 0 EVP 325 | 2 0 213 1 EWATR 326 | 0 2 39 0 EWTPARM 327 | 4 6 5 0 F107 328 | 2 4 3 0 FBAREA 329 | 2 4 10 0 FBUPINX 330 | 0 6 37 0 FCONPC 331 | 3 5 3 0 FDNSSTMP 332 | 2 4 11 0 FDSRTE 333 | 1 0 0 0 FFLDG 334 | 1 0 1 0 FFLDRO 335 | 2 4 6 0 FFMCODE 336 | 0 1 228 1 FICEAC 337 | 0 6 21 0 FICE 338 | 0 6 199 1 FICE 339 | 3 0 9 0 FIREDI 340 | 2 4 1 0 FIREODT 341 | 2 4 0 0 FIREOLK 342 | 2 3 203 1 FLDCP 343 | 1 0 12 0 FLDPSW 344 | 0 19 205 1 FLGHT 345 | 0 7 18 0 FLXRN 346 | 2 4 4 0 FOSINDX 347 | 0 1 67 0 FPRATE 348 | 0 6 32 0 FRACCC 349 | 0 1 43 0 FRAIN 350 | 0 1 202 1 FRAIN 351 | 10 0 63 0 FREWWW 352 | 0 2 30 0 FRICV 353 | 10 0 17 0 FRICV 354 | 0 2 197 1 FRICV 355 | 0 1 227 1 FROZR 356 | 2 3 24 0 FRSTINX 357 | 10 0 64 0 FRWWTSW 358 | 0 1 225 1 FRZR 359 | 10 3 204 1 FRZSPR 360 | 0 1 121 0 FSNOWC 361 | 0 6 36 0 FSTRPC 362 | 2 4 5 0 FWINX 363 | 0 1 95 0 FZPRATE 364 | 0 18 3 0 GDCES 365 | 0 18 4 0 GDIOD 366 | 0 18 5 0 GDRADP 367 | 0 191 1 0 GEOLAT 368 | 0 191 2 0 GEOLON 369 | 0 2 43 0 GEOWD 370 | 0 2 44 0 GEOWS 371 | 2 0 10 0 GFLUX 372 | 2 0 193 1 GFLUX 373 | 2 5 1 0 GLACTMP 374 | 0 3 9 0 GPA 375 | 0 1 75 0 GPRATE 376 | 0 3 4 0 GP 377 | 0 4 3 0 GRAD 378 | 0 7 17 0 GRDRN 379 | 0 1 32 0 GRLE 380 | 3 6 1 0 GSOLEXP 381 | 3 6 0 0 GSOLIRR 382 | 0 2 22 0 GUST 383 | 0 2 210 1 GWDU 384 | 0 2 211 1 GWDV 385 | 0 3 23 0 GWD 386 | 1 0 9 0 GWLOWS 387 | 2 0 214 1 GWREC 388 | 1 0 8 0 GWUPS 389 | 0 1 71 0 HAILMXR 390 | 0 19 198 1 HAILPROB 391 | 0 1 73 0 HAILPR 392 | 0 1 31 0 HAIL 393 | 4 8 2 0 HARAD 394 | 0 19 210 1 HAVNI 395 | 0 6 5 0 HCDC 396 | 0 6 26 0 HCONCB 397 | 0 6 27 0 HCONCT 398 | 0 0 12 0 HEATX 399 | 4 8 6 0 HELCOR 400 | 2 0 24 0 HFLUX 401 | 0 20 62 0 HGTMD 402 | 0 3 211 1 HGTN 403 | 0 3 203 1 HGTX 404 | 0 3 204 1 HGTY 405 | 0 3 5 0 HGT 406 | 0 19 32 0 HIFREL 407 | 2 4 2 0 HINDEX 408 | 0 7 8 0 HLCY 409 | 0 18 16 0 HMXACON 410 | 0 3 18 0 HPBL 411 | 0 3 196 1 HPBL 412 | 4 2 8 0 HPRIMF 413 | 0 19 196 1 HRCONO 414 | 0 15 16 0 HSRHT 415 | 0 15 15 0 HSR 416 | 0 3 7 0 HSTDV 417 | 10 0 3 0 HTSGW 418 | 0 3 3 0 ICAHT 419 | 1 2 7 0 ICECIL 420 | 10 2 0 0 ICEC 421 | 10 2 7 0 ICED 422 | 10 2 6 0 ICEG 423 | 10 2 9 0 ICEPRS 424 | 0 19 27 0 ICESC 425 | 0 19 37 0 ICESEV 426 | 1 2 6 0 ICETIL 427 | 10 2 1 0 ICETK 428 | 10 2 8 0 ICETMP 429 | 0 19 6 0 ICIB 430 | 0 19 20 0 ICIP 431 | 0 19 5 0 ICIT 432 | 0 19 7 0 ICI 433 | 0 1 23 0 ICMR 434 | 0 19 233 1 ICPRB 435 | 0 19 234 1 ICSEV 436 | 1 2 5 0 ICTKIL 437 | 2 0 207 1 ICWAT 438 | 0 1 20 0 ILIQW 439 | 10 0 27 0 IMFTSW 440 | 10 0 26 0 IMFWW 441 | 10 0 25 0 IMWF 442 | 2 4 9 0 INFSINX 443 | 4 4 3 0 INTEFLUX 444 | 10 4 196 1 INTFD 445 | 4 4 5 0 INTIFLUX 446 | 4 4 1 0 INTPFLUX 447 | 4 2 3 0 IONDEN 448 | 4 0 3 0 IONTMP 449 | 0 1 68 0 IPRATE 450 | 3 1 1 0 IRRATE 451 | 10 191 0 0 IRTSEC 452 | 3 5 0 0 ISSTMP 453 | 0 19 235 1 JFWPRB 454 | 10 3 201 1 KENG 455 | 0 7 3 0 KOX 456 | 10 0 43 0 KSSEDW 457 | 0 7 2 0 KX 458 | 0 7 198 1 LAI 459 | 1 2 8 0 LANDIL 460 | 2 0 218 1 LANDN 461 | 2 0 8 0 LANDU 462 | 2 0 0 0 LAND 463 | 0 2 202 1 LAPP 464 | 0 0 8 0 LAPR 465 | 0 2 198 1 LAUV 466 | 0 19 209 1 LAVNI 467 | 0 2 200 1 LAVV 468 | 0 3 205 1 LAYTH 469 | 0 6 3 0 LCDC 470 | 10 3 203 1 LCH 471 | 2 0 28 0 LEAINX 472 | 0 7 10 0 LFTX 473 | 0 7 192 1 LFTX 474 | 0 0 10 0 LHTFL 475 | 0 1 229 1 LICEAC 476 | 0 13 195 1 LIPMF 477 | 2 3 10 0 LIQVSM 478 | 0 15 4 0 LMAXBR 479 | 4 7 0 0 LMBINT 480 | 0 3 210 1 LMH 481 | 0 2 218 1 LMV 482 | 0 2 203 1 LOPP 483 | 0 2 199 1 LOUV 484 | 0 2 201 1 LOVV 485 | 2 3 3 0 LOWLSM 486 | 0 13 194 1 LPMTF 487 | 0 3 201 1 LPSX 488 | 0 3 202 1 LPSY 489 | 0 0 195 1 LRGHR 490 | 0 1 217 1 LRGMR 491 | 2 0 212 1 LSOIL 492 | 2 3 199 1 LSPA 493 | 0 1 54 0 LSPRATE 494 | 0 1 77 0 LSRRATE 495 | 0 1 59 0 LSSRATE 496 | 0 1 56 0 LSSRWE 497 | 0 1 47 0 LSWP 498 | 0 17 0 0 LTNGSD 499 | 0 17 192 1 LTNG 500 | 0 17 1 0 LTPINX 501 | 0 5 2 0 LWAVR 502 | 0 5 194 1 LWHR 503 | 0 4 5 0 LWRAD 504 | 2 3 23 0 LWSNWP 505 | 4 8 7 0 MASK 506 | 0 6 38 0 MASSDCD 507 | 0 6 39 0 MASSDCI 508 | 0 20 0 0 MASSDEN 509 | 0 1 98 0 MASSDG 510 | 0 1 99 0 MASSDH 511 | 0 1 96 0 MASSDR 512 | 0 1 97 0 MASSDS 513 | 0 20 2 0 MASSMR 514 | 0 18 15 0 MAXACON 515 | 0 1 28 0 MAXAH 516 | 0 2 221 1 MAXDVV 517 | 0 2 21 0 MAXGUST 518 | 0 16 198 1 MAXREF 519 | 0 1 27 0 MAXRH 520 | 0 2 220 1 MAXUVV 521 | 0 2 222 1 MAXUW 522 | 0 2 223 1 MAXVW 523 | 10 0 24 0 MAXWH 524 | 0 6 4 0 MCDC 525 | 0 1 26 0 MCONV 526 | 0 1 197 1 MCONV 527 | 0 6 40 0 MDCCWD 528 | 0 1 38 0 MDIVER 529 | 0 1 112 0 MDLWGVA 530 | 0 1 109 0 MDLWHVA 531 | 0 1 115 0 MDLWSVA 532 | 3 2 30 0 MEACST 533 | 0 6 200 1 MFLUX 534 | 0 2 26 0 MFLX 535 | 0 2 193 1 MFLX 536 | 0 0 14 0 MINDPD 537 | 0 1 198 1 MINRH 538 | 0 19 3 0 MIXHT 539 | 0 19 204 1 MIXLY 540 | 0 1 2 0 MIXR 541 | 0 191 195 1 MLYNO 542 | 0 1 114 0 MMLWGDA 543 | 0 1 111 0 MMLWHDA 544 | 0 1 117 0 MMLWSDA 545 | 0 2 6 0 MNTSF 546 | 0 7 200 1 MNUPHL 547 | 10 0 40 0 MNWSOW 548 | 0 20 64 0 MOLRDRYA 549 | 0 20 65 0 MOLRWETA 550 | 10 191 1 0 MOSF 551 | 0 19 195 1 MRCONO 552 | 0 3 192 1 MSLET 553 | 0 3 198 1 MSLMA 554 | 0 20 16 0 MSSRDRYA 555 | 0 20 17 0 MSSRWETA 556 | 10 0 20 0 MSSW 557 | 2 0 11 0 MSTAV 558 | 2 0 194 1 MSTAV 559 | 2 0 7 0 MTERH 560 | 10 4 1 0 MTHA 561 | 10 4 0 0 MTHD 562 | 10 2 11 0 MVCICEP 563 | 10 0 53 0 MWDFSWEL 564 | 10 0 41 0 MWDIRW 565 | 10 0 54 0 MWDSSWEL 566 | 10 0 55 0 MWDTSWEL 567 | 10 0 50 0 MWPFSWEL 568 | 10 0 51 0 MWPSSWEL 569 | 10 0 52 0 MWPTSWEL 570 | 10 0 15 0 MWSPER 571 | 0 19 28 0 MWTURB 572 | 0 19 31 0 MXEDPRM 573 | 0 20 61 0 MXMASSD 574 | 0 19 17 0 MXSALB 575 | 0 19 192 1 MXSALB 576 | 0 7 199 1 MXUPHL 577 | 10 0 30 0 MZPTSW 578 | 10 0 29 0 MZPWW 579 | 10 0 28 0 MZWPER 580 | 0 4 202 1 NBDSF 581 | 0 19 213 1 NBSALB 582 | 0 6 29 0 NCCICE 583 | 0 1 207 1 NCIP 584 | 0 6 28 0 NCONCD 585 | 0 1 9 0 NCPCP 586 | 0 6 31 0 NDCICE 587 | 0 4 203 1 NDDSF 588 | 0 6 30 0 NDENCD 589 | 2 0 31 0 NDVINX 590 | 2 0 217 1 NDVI 591 | 0 191 196 1 NLATN 592 | 0 191 192 1 NLAT 593 | 0 3 206 1 NLGSP 594 | 0 3 25 0 NLPRES 595 | 0 5 6 0 NLWRCS 596 | 0 5 5 0 NLWRF 597 | 0 5 0 0 NLWRS 598 | 0 5 1 0 NLWRT 599 | 3 1 6 0 NPIXU 600 | 0 4 11 0 NSWRFCS 601 | 0 4 9 0 NSWRF 602 | 0 4 0 0 NSWRS 603 | 0 4 1 0 NSWRT 604 | 4 4 6 0 NTRNFLUX 605 | 0 2 37 0 NTSS 606 | 0 1 106 0 NUMDG 607 | 0 1 107 0 NUMDH 608 | 0 1 104 0 NUMDR 609 | 0 1 105 0 NUMDS 610 | 0 2 34 0 NWIND 611 | 0 19 214 1 NWSALB 612 | 10 0 19 0 NWSTR 613 | 0 2 40 0 NWTPARM 614 | 0 14 1 0 O3MR 615 | 0 14 192 1 O3MR 616 | 10 4 197 1 OHC 617 | 0 2 215 1 OMGALF 618 | 10 1 192 1 OMLU 619 | 10 1 193 1 OMLV 620 | 0 3 217 1 ORASNW 621 | 0 3 216 1 ORASSW 622 | 0 3 215 1 ORASS 623 | 0 3 214 1 ORASW 624 | 0 3 213 1 ORCONV 625 | 0 3 221 1 ORLSNW 626 | 0 3 220 1 ORLSSW 627 | 0 3 219 1 ORLSS 628 | 0 3 218 1 ORLSW 629 | 10 4 4 0 OVHD 630 | 10 4 6 0 OVMD 631 | 10 4 5 0 OVSD 632 | 10 3 253 1 OWASHP 633 | 0 14 194 1 OZCAT 634 | 0 14 193 1 OZCON 635 | 0 14 200 1 OZMAX1 636 | 0 14 201 1 OZMAX8 637 | 10 3 196 1 P2OMLT 638 | 3 3 2 0 PBINFRC 639 | 3 3 1 0 PBLIFRC 640 | 0 19 12 0 PBLREG 641 | 3 3 0 0 PBMVFRC 642 | 0 1 234 1 PCPDUR 643 | 0 14 202 1 PDMAX1 644 | 0 14 203 1 PDMAX24 645 | 10 0 11 0 PERPW 646 | 1 0 16 0 PERRATE 647 | 10 0 13 0 PERSW 648 | 0 1 40 0 PEVAP 649 | 0 1 199 1 PEVAP 650 | 0 1 41 0 PEVPR 651 | 0 1 200 1 PEVPR 652 | 0 4 10 0 PHOTAR 653 | 3 0 8 0 PIXST 654 | 0 7 0 0 PLI 655 | 0 3 200 1 PLPL 656 | 4 2 0 0 PLSMDEN 657 | 10 0 23 0 PMAXWH 658 | 0 13 192 1 PMTC 659 | 0 13 193 1 PMTF 660 | 1 1 2 0 POP 661 | 2 3 9 0 POROS 662 | 2 3 197 1 POROS 663 | 0 0 2 0 POT 664 | 0 14 199 1 POZO 665 | 0 14 198 1 POZT 666 | 0 14 196 1 POZ 667 | 10 0 36 0 PPERTS 668 | 10 0 35 0 PPERWW 669 | 1 1 194 1 PPFFG 670 | 0 1 231 1 PPINDX 671 | 1 1 1 0 PPOSP 672 | 0 1 7 0 PRATE 673 | 4 0 4 0 PRATMP 674 | 0 15 5 0 PREC 675 | 0 3 13 0 PRESALT 676 | 0 3 8 0 PRESA 677 | 0 3 212 1 PRESN 678 | 0 3 0 0 PRES 679 | 0 3 1 0 PRMSL 680 | 0 1 232 1 PROBCIP 681 | 0 19 221 1 PROCON 682 | 4 2 2 0 PROTDEN 683 | 4 0 2 0 PROTTMP 684 | 4 0 5 0 PRPTMP 685 | 0 19 216 1 PRSIGSVR 686 | 0 19 215 1 PRSVR 687 | 10 4 21 0 PRTSAL 688 | 0 19 36 0 PSNOWS 689 | 0 3 2 0 PTEND 690 | 0 1 19 0 PTYPE 691 | 0 2 219 1 PVMWW 692 | 0 2 14 0 PVORT 693 | 0 1 3 0 PWAT 694 | 10 0 46 0 PWAVEDIR 695 | 0 1 30 0 PWCAT 696 | 10 0 34 0 PWPER 697 | 0 1 226 1 PWTHER 698 | 0 1 219 1 QMAX 699 | 0 1 220 1 QMIN 700 | 2 0 215 1 QREC 701 | 0 1 218 1 QZ0 702 | 2 3 202 1 RADT 703 | 3 1 8 0 RAZA 704 | 2 0 21 0 RCQ 705 | 2 0 204 1 RCQ 706 | 2 0 20 0 RCSOL 707 | 2 0 205 1 RCSOL 708 | 2 0 18 0 RCS 709 | 2 0 202 1 RCS 710 | 2 0 19 0 RCT 711 | 2 0 203 1 RCT 712 | 2 0 206 1 RDRIP 713 | 0 15 6 0 RDSP1 714 | 0 15 7 0 RDSP2 715 | 0 15 8 0 RDSP3 716 | 2 0 32 0 RDVEG 717 | 0 16 5 0 REFC 718 | 0 16 196 1 REFC 719 | 0 16 4 0 REFD 720 | 0 16 195 1 REFD 721 | 0 16 2 0 REFZC 722 | 0 16 194 1 REFZC 723 | 0 16 1 0 REFZI 724 | 0 16 193 1 REFZI 725 | 0 16 0 0 REFZR 726 | 0 16 192 1 REFZR 727 | 0 2 13 0 RELD 728 | 0 2 12 0 RELV 729 | 0 16 3 0 RETOP 730 | 0 16 197 1 RETOP 731 | 0 0 194 1 REV 732 | 0 15 9 0 RFCD 733 | 0 15 10 0 RFCI 734 | 0 15 13 0 RFGRPL 735 | 0 15 14 0 RFHAIL 736 | 3 1 9 0 RFL06 737 | 3 1 10 0 RFL08 738 | 3 1 11 0 RFL16 739 | 3 1 12 0 RFL39 740 | 0 15 12 0 RFRAIN 741 | 0 15 11 0 RFSNOW 742 | 0 1 94 0 RHICE 743 | 0 1 242 1 RHPW 744 | 0 1 93 0 RHWATER 745 | 0 1 1 0 RH 746 | 0 1 44 0 RIME 747 | 0 1 203 1 RIME 748 | 10 1 4 0 RIPCOP 749 | 0 7 12 0 RI 750 | 0 7 194 1 RI 751 | 2 3 6 0 RLYRS 752 | 2 3 193 1 RLYRS 753 | 0 1 65 0 RPRATE 754 | 2 0 16 0 RSMIN 755 | 2 0 200 1 RSMIN 756 | 1 0 2 0 RSSC 757 | 0 191 194 1 RTSEC 758 | 10 3 206 1 RUNUP 759 | 1 0 11 0 RVERSW 760 | 0 1 24 0 RWMR 761 | 0 18 14 0 SACON 762 | 0 20 100 0 SADEN 763 | 0 19 19 0 SALBD 764 | 3 0 1 0 SALBEDO 765 | 10 4 193 1 SALIN 766 | 1 2 12 0 SALTIL 767 | 10 4 3 0 SALTY 768 | 0 1 5 0 SATD 769 | 2 3 17 0 SATOSM 770 | 3 192 4 0 SBC123 771 | 3 192 5 0 SBC124 772 | 0 19 211 1 SBSALB 773 | 0 1 212 1 SBSNO 774 | 3 192 6 0 SBT112 775 | 3 192 7 0 SBT113 776 | 3 192 8 0 SBT114 777 | 3 192 9 0 SBT115 778 | 3 192 0 0 SBT122 779 | 3 192 1 0 SBT123 780 | 3 192 2 0 SBT124 781 | 3 192 3 0 SBT126 782 | 3 192 23 0 SBTA1610 783 | 3 192 24 0 SBTA1611 784 | 3 192 25 0 SBTA1612 785 | 3 192 26 0 SBTA1613 786 | 3 192 27 0 SBTA1614 787 | 3 192 28 0 SBTA1615 788 | 3 192 29 0 SBTA1616 789 | 3 192 20 0 SBTA167 790 | 3 192 21 0 SBTA168 791 | 3 192 22 0 SBTA169 792 | 3 192 39 0 SBTA1710 793 | 3 192 40 0 SBTA1711 794 | 3 192 41 0 SBTA1712 795 | 3 192 42 0 SBTA1713 796 | 3 192 43 0 SBTA1714 797 | 3 192 44 0 SBTA1715 798 | 3 192 45 0 SBTA1716 799 | 3 192 36 0 SBTA177 800 | 3 192 37 0 SBTA178 801 | 3 192 38 0 SBTA179 802 | 3 192 55 0 SBTAGR10 803 | 3 192 56 0 SBTAGR11 804 | 3 192 57 0 SBTAGR12 805 | 3 192 58 0 SBTAGR13 806 | 3 192 59 0 SBTAGR14 807 | 3 192 60 0 SBTAGR15 808 | 3 192 61 0 SBTAGR16 809 | 3 192 52 0 SBTAGR7 810 | 3 192 53 0 SBTAGR8 811 | 3 192 54 0 SBTAGR9 812 | 3 0 2 0 SBTMP 813 | 4 2 10 0 SCINT 814 | 0 1 84 0 SCLIWC 815 | 0 1 83 0 SCLLWC 816 | 3 1 29 0 SCRAD 817 | 0 20 112 0 SCTAOTK 818 | 3 0 5 0 SCTPRES 819 | 0 20 6 0 SDDMFLX 820 | 0 1 61 0 SDEN 821 | 3 1 99 0 SDMPEMRR 822 | 0 3 20 0 SDSGSO 823 | 0 1 60 0 SDWE 824 | 0 20 11 0 SEDMFLX 825 | 1 2 3 0 SEDTK 826 | 1 2 4 0 SEDTMP 827 | 10 3 207 1 SETUP 828 | 0 1 62 0 SEVAP 829 | 2 0 216 1 SFCRH 830 | 2 0 1 0 SFCR 831 | 2 0 34 0 SFCWRO 832 | 2 0 12 0 SFEXC 833 | 2 0 195 1 SFEXC 834 | 1 0 10 0 SFLORC 835 | 0 20 55 0 SFLUX 836 | 3 192 14 0 SFRA161 837 | 3 192 15 0 SFRA162 838 | 3 192 16 0 SFRA163 839 | 3 192 17 0 SFRA164 840 | 3 192 18 0 SFRA165 841 | 3 192 19 0 SFRA166 842 | 3 192 30 0 SFRA171 843 | 3 192 31 0 SFRA172 844 | 3 192 32 0 SFRA173 845 | 3 192 33 0 SFRA174 846 | 3 192 34 0 SFRA175 847 | 3 192 35 0 SFRA176 848 | 10 4 11 0 SFSALP 849 | 1 2 9 0 SFSAL 850 | 10 4 12 0 SFTMPP 851 | 1 2 10 0 SFTMP 852 | 0 2 7 0 SGCVV 853 | 0 0 201 1 SHAHR 854 | 0 19 201 1 SHAILPRO 855 | 0 1 214 1 SHAMR 856 | 2 3 26 0 SHFLX 857 | 0 0 11 0 SHTFL 858 | 0 1 108 0 SHTPRM 859 | 0 7 13 0 SHWINX 860 | 10 2 3 0 SICED 861 | 4 9 1 0 SIGHAL 862 | 4 9 2 0 SIGPAR 863 | 4 9 0 0 SIGPED 864 | 0 19 217 1 SIPD 865 | 0 0 17 0 SKINT 866 | 3 5 1 0 SKSSTMP 867 | 0 1 230 1 SLACC 868 | 0 19 23 0 SLDP 869 | 3 0 4 0 SLFTI 870 | 10 3 202 1 SLTFL 871 | 2 3 194 1 SLTYP 872 | 0 6 34 0 SLWTC 873 | 2 3 8 0 SMDRY 874 | 2 3 196 1 SMDRY 875 | 0 1 113 0 SMLWGMA 876 | 0 1 110 0 SMLWHMA 877 | 0 1 116 0 SMLWSMA 878 | 2 3 7 0 SMREF 879 | 2 3 195 1 SMREF 880 | 0 19 18 0 SNFALB 881 | 0 19 193 1 SNFALB 882 | 0 1 25 0 SNMR 883 | 0 1 17 0 SNOAG 884 | 0 1 14 0 SNOC 885 | 0 1 11 0 SNOD 886 | 0 0 16 0 SNOHF 887 | 0 0 192 1 SNOHF 888 | 0 1 15 0 SNOL 889 | 0 1 16 0 SNOM 890 | 0 0 18 0 SNOT 891 | 0 1 208 1 SNOT 892 | 0 1 42 0 SNOWC 893 | 0 1 201 1 SNOWC 894 | 0 1 233 1 SNOWLR 895 | 0 19 236 1 SNOWLVL 896 | 0 1 222 1 SNOWT 897 | 2 3 25 0 SNWDEB 898 | 2 3 27 0 SOILDEP 899 | 2 3 21 0 SOILICE 900 | 2 3 5 0 SOILL 901 | 2 3 192 1 SOILL 902 | 2 3 19 0 SOILMOI 903 | 2 0 3 0 SOILM 904 | 2 0 22 0 SOILM 905 | 2 3 15 0 SOILP 906 | 2 3 18 0 SOILTMP 907 | 2 0 38 0 SOILVIC 908 | 2 0 192 1 SOILW 909 | 4 6 6 0 SOLRF 910 | 3 1 7 0 SOLZA 911 | 2 3 0 0 SOTYP 912 | 3 1 28 0 SPBRT 913 | 10 1 1 0 SPC 914 | 4 6 4 0 SPECIRR 915 | 4 1 0 0 SPEED 916 | 0 1 0 0 SPFH 917 | 10 0 45 0 SPFTR 918 | 0 1 102 0 SPNCG 919 | 0 1 103 0 SPNCH 920 | 0 1 100 0 SPNCR 921 | 0 1 101 0 SPNCS 922 | 0 1 66 0 SPRATE 923 | 4 2 7 0 SPRDF 924 | 3 0 3 0 SPWAT 925 | 3 0 0 0 SRAD 926 | 0 1 85 0 SRAINC 927 | 0 19 194 1 SRCONO 928 | 3 192 46 0 SRFAGR1 929 | 3 192 47 0 SRFAGR2 930 | 3 192 48 0 SRFAGR3 931 | 3 192 49 0 SRFAGR4 932 | 3 192 50 0 SRFAGR5 933 | 3 192 51 0 SRFAGR6 934 | 0 1 12 0 SRWEQ 935 | 0 20 103 0 SSALBK 936 | 0 3 22 0 SSGSO 937 | 10 3 195 1 SSHG 938 | 3 5 2 0 SSKSSTMP 939 | 0 1 86 0 SSNOWW 940 | 1 0 6 0 SSRUN 941 | 1 0 193 1 SSRUN 942 | 10 3 200 1 SSST 943 | 3 0 6 0 SSTMP 944 | 2 0 211 1 SSTOR 945 | 10 3 199 1 SSTT 946 | 0 6 35 0 SSWTC 947 | 0 19 200 1 STORPROB 948 | 0 2 4 0 STRM 949 | 0 1 87 0 STRPRATE 950 | 0 6 33 0 SUNSD 951 | 0 6 201 1 SUNSD 952 | 0 6 24 0 SUNS 953 | 10 3 192 1 SURGE 954 | 0 19 220 1 SVRTS 955 | 10 3 208 1 SWASH 956 | 0 4 2 0 SWAVR 957 | 10 0 7 0 SWDIR 958 | 0 20 7 0 SWDMFLX 959 | 0 7 5 0 SWEATX 960 | 10 0 8 0 SWELL 961 | 1 0 4 0 SWEPON 962 | 10 0 47 0 SWHFSWEL 963 | 0 4 197 1 SWHR 964 | 10 0 48 0 SWHSSWEL 965 | 10 0 49 0 SWHTSWEL 966 | 0 19 202 1 SWINDPRO 967 | 10 0 9 0 SWPER 968 | 3 1 194 1 SWQI 969 | 0 4 6 0 SWRAD 970 | 0 19 212 1 SWSALB 971 | 0 6 1 0 TCDC 972 | 0 0 204 1 TCHP 973 | 0 1 81 0 TCICON 974 | 0 14 2 0 TCIOZ 975 | 0 1 64 0 TCIWV 976 | 2 0 35 0 TCLASS 977 | 0 1 209 1 TCLSW 978 | 0 6 20 0 TCOLC 979 | 0 6 198 1 TCOLC 980 | 0 1 74 0 TCOLG 981 | 0 1 72 0 TCOLH 982 | 0 6 19 0 TCOLIO 983 | 0 1 70 0 TCOLI 984 | 0 6 197 1 TCOLI 985 | 0 1 210 1 TCOLM 986 | 0 1 45 0 TCOLR 987 | 0 1 204 1 TCOLR 988 | 0 1 46 0 TCOLS 989 | 0 1 205 1 TCOLS 990 | 0 1 78 0 TCOLWA 991 | 0 6 18 0 TCOLWO 992 | 0 1 69 0 TCOLW 993 | 0 6 196 1 TCOLW 994 | 0 6 17 0 TCONDO 995 | 0 1 21 0 TCOND 996 | 0 6 195 1 TCOND 997 | 10 3 242 1 TCSRG20 998 | 10 3 243 1 TCSRG30 999 | 10 3 244 1 TCSRG40 1000 | 10 3 245 1 TCSRG50 1001 | 10 3 246 1 TCSRG60 1002 | 10 3 247 1 TCSRG70 1003 | 10 3 248 1 TCSRG80 1004 | 10 3 249 1 TCSRG90 1005 | 0 1 51 0 TCWAT 1006 | 0 0 20 0 TDCHT 1007 | 0 2 31 0 TDCMOM 1008 | 2 0 36 0 TFRCT 1009 | 0 0 197 1 THFLX 1010 | 0 3 12 0 THICK 1011 | 0 6 10 0 THUNC 1012 | 0 0 203 1 THZ0 1013 | 0 18 6 0 TIACCP 1014 | 0 18 7 0 TIACIP 1015 | 0 18 8 0 TIACRP 1016 | 10 3 251 1 TIDE 1017 | 0 1 206 1 TIPD 1018 | 0 19 11 0 TKE 1019 | 0 1 90 0 TKMFLX 1020 | 0 17 4 0 TLGTFD 1021 | 0 6 9 0 TMAXT 1022 | 0 0 4 0 TMAX 1023 | 0 0 5 0 TMIN 1024 | 0 0 29 0 TMPADV 1025 | 0 0 9 0 TMPA 1026 | 4 0 0 0 TMPSWP 1027 | 0 0 0 0 TMP 1028 | 0 2 227 1 TOA10 1029 | 0 2 228 1 TOA50 1030 | 0 2 229 1 TOD50 1031 | 0 2 230 1 TOD90 1032 | 0 19 197 1 TORPROB 1033 | 0 7 4 0 TOTALX 1034 | 0 1 80 0 TOTCON 1035 | 0 18 13 0 TOTLWD 1036 | 0 14 0 0 TOZNE 1037 | 0 14 197 1 TOZ 1038 | 2 0 37 0 TPERCT 1039 | 0 19 219 1 TPFI 1040 | 0 1 52 0 TPRATE 1041 | 0 20 13 0 TRANHH 1042 | 2 3 12 0 TRANSO 1043 | 2 0 230 1 TRANS 1044 | 0 20 14 0 TRSDS 1045 | 0 2 226 1 TRWDIR 1046 | 0 2 225 1 TRWSPD 1047 | 0 0 200 1 TSD1D 1048 | 0 191 0 0 TSEC 1049 | 4 6 0 0 TSI 1050 | 0 3 199 1 TSLSA 1051 | 0 1 50 0 TSNOWP 1052 | 0 1 241 1 TSNOW 1053 | 2 0 2 0 TSOIL 1054 | 0 1 57 0 TSRATE 1055 | 0 1 53 0 TSRWE 1056 | 0 19 203 1 TSTMC 1057 | 0 19 2 0 TSTM 1058 | 0 0 19 0 TTCHT 1059 | 0 0 198 1 TTDIA 1060 | 10 4 2 0 TTHDP 1061 | 0 0 25 0 TTLWRCS 1062 | 0 0 23 0 TTLWR 1063 | 0 0 26 0 TTPARM 1064 | 0 0 199 1 TTPHY 1065 | 0 0 193 1 TTRAD 1066 | 0 0 24 0 TTSWRCS 1067 | 0 0 22 0 TTSWR 1068 | 0 19 9 0 TURBB 1069 | 0 19 8 0 TURBT 1070 | 0 19 10 0 TURB 1071 | 0 1 49 0 TWATP 1072 | 0 2 35 0 TWIND 1073 | 10 3 210 1 TWLDC 1074 | 10 3 209 1 TWLDT 1075 | 10 3 205 1 TWLWAV 1076 | 0 20 58 0 TYAAL 1077 | 0 20 57 0 TYABA 1078 | 0 3 16 0 U-GWD 1079 | 0 3 194 1 U-GWD 1080 | 10 1 194 1 UBARO 1081 | 0 3 31 0 UCLSPRS 1082 | 0 1 120 0 UCSCIW 1083 | 0 1 119 0 UCSCLW 1084 | 0 0 28 0 UCTMP 1085 | 0 3 29 0 UDRATE 1086 | 0 2 17 0 UFLX 1087 | 0 2 2 0 UGRD 1088 | 0 2 23 0 UGUST 1089 | 0 2 41 0 UGWIND 1090 | 10 2 4 0 UICE 1091 | 0 1 91 0 UKMFLX 1092 | 0 5 4 0 ULWRF 1093 | 0 5 193 1 ULWRF 1094 | 0 3 27 0 UMFLX 1095 | 0 1 118 0 UNCSH 1096 | 0 2 45 0 UNDIV 1097 | 10 1 2 0 UOGRD 1098 | 1 0 14 0 UPAPCP 1099 | 1 0 15 0 UPASM 1100 | 0 7 15 0 UPHL 1101 | 0 7 197 1 UPHL 1102 | 2 3 2 0 UPLSM 1103 | 2 3 1 0 UPLST 1104 | 3 1 192 1 USCT 1105 | 10 0 21 0 USSD 1106 | 0 2 27 0 USTM 1107 | 0 2 194 1 USTM 1108 | 0 4 53 0 USWRFCS 1109 | 0 4 8 0 USWRF 1110 | 0 4 193 1 USWRF 1111 | 0 4 205 1 UTRF 1112 | 0 4 50 0 UVIUCS 1113 | 0 4 51 0 UVI 1114 | 0 7 196 1 UVI 1115 | 0 3 17 0 V-GWD 1116 | 0 3 195 1 V-GWD 1117 | 0 19 232 1 VAFTD 1118 | 0 1 4 0 VAPP 1119 | 10 1 195 1 VBARO 1120 | 0 4 200 1 VBDSF 1121 | 0 4 201 1 VDDSF 1122 | 0 0 202 1 VDFHR 1123 | 0 1 215 1 VDFMR 1124 | 0 14 195 1 VDFOZ 1125 | 0 2 208 1 VDFUA 1126 | 0 2 209 1 VDFVA 1127 | 0 2 204 1 VEDH 1128 | 2 0 210 1 VEGT 1129 | 2 0 4 0 VEG 1130 | 4 1 1 0 VEL1 1131 | 4 1 2 0 VEL2 1132 | 4 1 3 0 VEL3 1133 | 0 2 18 0 VFLX 1134 | 0 6 48 0 VFRCICE 1135 | 0 6 49 0 VFRCIW 1136 | 0 6 47 0 VFRCWD 1137 | 0 2 3 0 VGRD 1138 | 2 0 198 1 VGTYP 1139 | 0 2 24 0 VGUST 1140 | 0 2 42 0 VGWIND 1141 | 10 2 5 0 VICE 1142 | 0 15 3 0 VIL 1143 | 0 19 35 0 VISBSN 1144 | 0 19 34 0 VISIFOG 1145 | 0 19 33 0 VISLFOG 1146 | 0 19 0 0 VIS 1147 | 0 1 92 0 VKMFLX 1148 | 0 20 52 0 VMXR 1149 | 10 1 3 0 VOGRD 1150 | 3 4 4 0 VOLACDEM 1151 | 3 4 7 0 VOLACDEN 1152 | 3 4 6 0 VOLACDOD 1153 | 3 4 3 0 VOLACDTH 1154 | 3 4 2 0 VOLACDTP 1155 | 3 4 1 0 VOLACDTT 1156 | 3 4 5 0 VOLAEADR 1157 | 3 4 8 0 VOLAPER 1158 | 3 4 0 0 VOLAPROB 1159 | 0 19 4 0 VOLASH 1160 | 2 3 13 0 VOLDEC 1161 | 2 3 11 0 VOLTSO 1162 | 0 2 46 0 VORTADV 1163 | 0 2 5 0 VPOT 1164 | 0 0 15 0 VPTMP 1165 | 0 2 224 1 VRATE 1166 | 3 1 193 1 VSCT 1167 | 2 0 25 0 VSOILM 1168 | 2 3 16 0 VSOSM 1169 | 10 0 22 0 VSSD 1170 | 0 2 28 0 VSTM 1171 | 0 2 195 1 VSTM 1172 | 4 2 4 0 VTEC 1173 | 0 0 1 0 VTMP 1174 | 0 2 15 0 VUCSH 1175 | 0 2 16 0 VVCSH 1176 | 0 2 8 0 VVEL 1177 | 2 0 27 0 VWILTM 1178 | 0 2 25 0 VWSH 1179 | 0 2 192 1 VWSH 1180 | 10 4 17 0 WATDENA 1181 | 10 4 16 0 WATERDEN 1182 | 10 4 20 0 WATPDENA 1183 | 10 4 19 0 WATPDEN 1184 | 10 4 18 0 WATPTEMP 1185 | 2 0 5 0 WATR 1186 | 10 0 62 0 WAVEFREW 1187 | 2 0 223 1 WCCONV 1188 | 0 0 13 0 WCF 1189 | 2 0 221 1 WCINC 1190 | 2 0 226 1 WCUFLX 1191 | 2 0 227 1 WCVFLX 1192 | 0 20 10 0 WDCPMFLX 1193 | 10 4 14 0 WDEPTH 1194 | 10 0 31 0 WDIRW 1195 | 0 2 0 0 WDIR 1196 | 1 2 0 0 WDPTHIL 1197 | 10 0 56 0 WDWFSWEL 1198 | 10 0 57 0 WDWSSWEL 1199 | 10 0 58 0 WDWTSWEL 1200 | 0 1 13 0 WEASD 1201 | 10 0 42 0 WESP 1202 | 0 0 27 0 WETBT 1203 | 0 18 11 0 WETDEP 1204 | 0 20 75 0 WFIREFLX 1205 | 1 2 2 0 WFRACT 1206 | 10 0 59 0 WFWFSWEL 1207 | 10 0 60 0 WFWSSWEL 1208 | 10 0 61 0 WFWTSWEL 1209 | 4 8 5 0 WHTCOR 1210 | 4 8 3 0 WHTRAD 1211 | 2 0 26 0 WILT 1212 | 2 0 201 1 WILT 1213 | 0 2 33 0 WINDF 1214 | 0 19 199 1 WINDPROB 1215 | 3 1 19 0 WINDS 1216 | 0 2 1 0 WIND 1217 | 0 19 25 0 WIWW 1218 | 10 0 193 1 WLENG 1219 | 0 20 9 0 WLSMFLX 1220 | 0 2 19 0 WMIXE 1221 | 2 0 33 0 WROD 1222 | 10 0 192 1 WSTP 1223 | 10 0 18 0 WSTR 1224 | 0 2 214 1 WTEND 1225 | 10 4 192 1 WTMPC 1226 | 1 2 1 0 WTMPIL 1227 | 10 4 15 0 WTMPSS 1228 | 10 3 0 0 WTMP 1229 | 2 0 222 1 WVCONV 1230 | 10 0 4 0 WVDIR 1231 | 10 0 5 0 WVHGT 1232 | 2 0 220 1 WVINC 1233 | 10 0 6 0 WVPER 1234 | 10 0 0 0 WVSP1 1235 | 10 0 1 0 WVSP2 1236 | 10 0 2 0 WVSP3 1237 | 2 0 224 1 WVUFLX 1238 | 2 0 225 1 WVVFLX 1239 | 10 0 14 0 WWSDIR 1240 | 4 6 1 0 XLONG 1241 | 0 3 26 0 XPRES 1242 | 4 8 0 0 XRAYRAD 1243 | 4 6 2 0 XSHRT 1244 | 10 2 10 0 ZVCICEP 1245 | -------------------------------------------------------------------------------- /src/resources/run/post/03/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf003.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf003.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/04/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf004.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf004.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/05/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf005.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf005.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/post/06/itag: -------------------------------------------------------------------------------- 1 | &model_inputs 2 | fileName='../../atmf006.nc' 3 | IOFORM='netcdfpara' 4 | grib='grib2' 5 | DateStr='2022-01-01_00:00:00' 6 | MODELNAME='GFS' 7 | fileNameFlux='../../sfcf006.nc' 8 | / 9 | &NAMPGB 10 | KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, 11 | / 12 | -------------------------------------------------------------------------------- /src/resources/run/seaice_newland.grb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/resources/run/seaice_newland.grb -------------------------------------------------------------------------------- /src/resources/run/solarconstant_noaa_an.txt: -------------------------------------------------------------------------------- 1 | 1850 2019 1861 2008 .00 AS BASE VALUE YEARLY TSI (W/M2) IN TIM SCALE 2 | 2019 1360.4600 3 | 2018 1360.5000 4 | 2017 1360.5900 5 | 2016 1360.7100 6 | 2015 1360.8800 7 | 2014 1361.0500 8 | 2013 1361.1300 9 | 2012 1361.0500 10 | 2011 1360.8000 11 | 2010 1360.4800 12 | 2009 1360.3100 13 | 2008 1360.2900 14 | 2007 1360.3000 15 | 2006 1360.4500 16 | 2005 1360.5500 17 | 2004 1360.8100 18 | 2003 1361.0200 19 | 2002 1361.5200 20 | 2001 1361.5800 21 | 2000 1361.7800 22 | 1999 1361.6400 23 | 1998 1361.3400 24 | 1997 1360.8800 25 | 1996 1360.6800 26 | 1995 1360.8400 27 | 1994 1360.9100 28 | 1993 1361.0800 29 | 1992 1361.4900 30 | 1991 1361.6200 31 | 1990 1361.5300 32 | 1989 1361.2100 33 | 1988 1360.6300 34 | 1987 1360.3000 35 | 1986 1360.2100 36 | 1985 1360.2200 37 | 1984 1360.3900 38 | 1983 1360.7200 39 | 1982 1360.8800 40 | 1981 1361.1300 41 | 1980 1361.5200 42 | 1979 1362.2500 43 | 1978 1361.1500 44 | 1977 1360.6100 45 | 1976 1360.4800 46 | 1975 1360.5100 47 | 1974 1360.6700 48 | 1973 1360.7000 49 | 1972 1360.9600 50 | 1971 1360.9400 51 | 1970 1361.2600 52 | 1969 1361.2600 53 | 1968 1361.2700 54 | 1967 1361.1600 55 | 1966 1360.7700 56 | 1965 1360.5000 57 | 1964 1360.4600 58 | 1963 1360.6100 59 | 1962 1360.6900 60 | 1961 1360.8300 61 | 1960 1361.3200 62 | 1959 1361.7100 63 | 1958 1361.9200 64 | 1957 1361.9700 65 | 1956 1361.5700 66 | 1955 1360.7000 67 | 1954 1360.4200 68 | 1953 1360.4900 69 | 1952 1360.6400 70 | 1951 1360.9600 71 | 1950 1361.0800 72 | 1949 1361.5100 73 | 1948 1361.5200 74 | 1947 1361.6500 75 | 1946 1361.1500 76 | 1945 1360.6600 77 | 1944 1360.4600 78 | 1943 1360.5200 79 | 1942 1360.6300 80 | 1941 1360.7800 81 | 1940 1360.9500 82 | 1939 1361.1200 83 | 1938 1361.3000 84 | 1937 1361.3400 85 | 1936 1361.0500 86 | 1935 1360.6800 87 | 1934 1360.4500 88 | 1933 1360.4300 89 | 1932 1360.4700 90 | 1931 1360.5600 91 | 1930 1360.6800 92 | 1929 1360.9200 93 | 1928 1361.0300 94 | 1927 1360.9600 95 | 1926 1360.9100 96 | 1925 1360.7500 97 | 1924 1360.5200 98 | 1923 1360.4300 99 | 1922 1360.5000 100 | 1921 1360.6000 101 | 1920 1360.6900 102 | 1919 1360.9100 103 | 1918 1361.0500 104 | 1917 1361.2500 105 | 1916 1360.8600 106 | 1915 1360.7800 107 | 1914 1360.4600 108 | 1913 1360.3900 109 | 1912 1360.4100 110 | 1911 1360.4300 111 | 1910 1360.5300 112 | 1909 1360.7500 113 | 1908 1360.7900 114 | 1907 1360.9000 115 | 1906 1360.8300 116 | 1905 1360.9100 117 | 1904 1360.7300 118 | 1903 1360.5800 119 | 1902 1360.4200 120 | 1901 1360.4000 121 | 1900 1360.4600 122 | 1899 1360.4800 123 | 1898 1360.6000 124 | 1897 1360.6000 125 | 1896 1360.7300 126 | 1895 1360.9100 127 | 1894 1361.0300 128 | 1893 1361.0900 129 | 1892 1360.9900 130 | 1891 1360.6800 131 | 1890 1360.4400 132 | 1889 1360.4300 133 | 1888 1360.4400 134 | 1887 1360.4900 135 | 1886 1360.5900 136 | 1885 1360.8100 137 | 1884 1360.9100 138 | 1883 1360.9100 139 | 1882 1360.8800 140 | 1881 1360.8300 141 | 1880 1360.6500 142 | 1879 1360.4300 143 | 1878 1360.4100 144 | 1877 1360.4800 145 | 1876 1360.4700 146 | 1875 1360.5200 147 | 1874 1360.7500 148 | 1873 1360.9300 149 | 1872 1361.2300 150 | 1871 1361.3100 151 | 1870 1361.5400 152 | 1869 1361.0000 153 | 1868 1360.6900 154 | 1867 1360.4400 155 | 1866 1360.5100 156 | 1865 1360.6300 157 | 1864 1360.7700 158 | 1863 1360.7500 159 | 1862 1360.8700 160 | 1861 1361.0300 161 | 1860 1361.1800 162 | 1859 1361.1600 163 | 1858 1360.8400 164 | 1857 1360.5700 165 | 1856 1360.4100 166 | 1855 1360.4300 167 | 1854 1360.5500 168 | 1853 1360.7100 169 | 1852 1360.8300 170 | 1851 1360.9200 171 | 1850 1360.9400 172 | 173 | 174 | ******************************************************************* 175 | Data arrangement: 176 | 1st line: yr_start, yr_end, yr_cyc1, yr_cyc2, base_value (4i5,f8.2): 177 | yr_start, yr_end : starting and ending year of the table 178 | yr_cyc1, yr_cyc2 : marks for 1st and last cycles used for data beyond table range 179 | base_value : base value to be added 180 | 2nd line and so on: year, solcon in w/m2 (i4,f10.4) 181 | 182 | Total Solar Irradiance (W/m*m) in TIM scale (annual mean). The original 183 | table (minus 1360) was derived by Van den Dool (2011, Reconstruction of 184 | the solar constant back to 1750) as described below. 185 | 186 | "The above Table 1 shows S for 1850 through 2019 for use at NCEP. Add 1360 to 187 | the numbers shown to obtain S in W/(m*m). Each row represents the year on the 188 | left plus 0, 1, ..9. For 1979-2010 the values in this Table are as observed. For 189 | 1850-1978 the value is based on a regression between sunspots and the TSI data, 190 | the regression (0.81 correlation) being based on 1979-2010 data. The same for 191 | 2011-2019, where I use the NCEP-SWPC prediction of sunspots for the currently 192 | unfolding solar cycle. After all is said and done S varies by no more than 2 W/m2. 193 | Nore that the variance is higher during 1979-2010 than in other parts of the 194 | time series." 195 | . 196 | 197 | -------------------------------------------------------------------------------- /src/resources/run/suite_FV3_GFS_v15p2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | fv_sat_adj 8 | 9 | 10 | 11 | 12 | GFS_time_vary_pre 13 | GFS_rrtmg_setup 14 | GFS_rad_time_vary 15 | GFS_phys_time_vary 16 | 17 | 18 | 19 | 20 | GFS_suite_interstitial_rad_reset 21 | GFS_rrtmg_pre 22 | rrtmg_sw_pre 23 | rrtmg_sw 24 | rrtmg_sw_post 25 | rrtmg_lw_pre 26 | rrtmg_lw 27 | rrtmg_lw_post 28 | GFS_rrtmg_post 29 | 30 | 31 | 32 | 33 | GFS_suite_interstitial_phys_reset 34 | GFS_suite_stateout_reset 35 | get_prs_fv3 36 | GFS_suite_interstitial_1 37 | GFS_surface_generic_pre 38 | GFS_surface_composites_pre 39 | dcyc2t3 40 | GFS_surface_composites_inter 41 | GFS_suite_interstitial_2 42 | 43 | 44 | 45 | sfc_diff 46 | GFS_surface_loop_control_part1 47 | sfc_nst_pre 48 | sfc_nst 49 | sfc_nst_post 50 | lsm_noah 51 | sfc_sice 52 | GFS_surface_loop_control_part2 53 | 54 | 55 | 56 | GFS_surface_composites_post 57 | dcyc2t3_post 58 | sfc_diag 59 | sfc_diag_post 60 | GFS_surface_generic_post 61 | GFS_PBL_generic_pre 62 | hedmf 63 | GFS_PBL_generic_post 64 | GFS_GWD_generic_pre 65 | cires_ugwp 66 | cires_ugwp_post 67 | GFS_GWD_generic_post 68 | rayleigh_damp 69 | GFS_suite_stateout_update 70 | ozphys_2015 71 | h2ophys 72 | GFS_DCNV_generic_pre 73 | get_phi_fv3 74 | GFS_suite_interstitial_3 75 | samfdeepcnv 76 | GFS_DCNV_generic_post 77 | GFS_SCNV_generic_pre 78 | samfshalcnv 79 | GFS_SCNV_generic_post 80 | GFS_suite_interstitial_4 81 | cnvc90 82 | GFS_MP_generic_pre 83 | gfdl_cloud_microphys 84 | GFS_MP_generic_post 85 | maximum_hourly_diagnostics 86 | 87 | 88 | 89 | 90 | GFS_stochastics 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /src/resources/spack-external-packages.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | intel-mpi: 3 | externals: 4 | - spec: intel-mpi@2020.2.254 5 | prefix: /opt/intel/compilers_and_libraries_2020.2.254/linux/mpi/intel64 6 | buildable: False 7 | libfabric: 8 | variants: fabrics=efa,tcp,udp,sockets,verbs,shm,mrail,rxd,rxm 9 | externals: 10 | - spec: libfabric@1.13.2 fabrics=efa,tcp,udp,sockets,verbs,shm,mrail,rxd,rxm 11 | prefix: /opt/amazon/efa 12 | buildable: False 13 | openmpi: 14 | variants: fabrics=auto +pmix +legacylaunchers schedulers=slurm 15 | externals: 16 | - spec: openmpi@4.1.1 fabrics=auto +pmix +legacylaunchers schedulers=slurm 17 | prefix: /opt/amazon/openmpi 18 | pmix: 19 | externals: 20 | - spec: pmix@3.2.3 ~pmi_backwards_compatibility 21 | prefix: /opt/pmix 22 | slurm: 23 | variants: +pmix sysconfdir=/opt/slurm/etc 24 | externals: 25 | - spec: slurm@21.08.5 +pmix sysconfdir=/opt/slurm/etc 26 | prefix: /opt/slurm 27 | buildable: False 28 | 29 | -------------------------------------------------------------------------------- /src/resources/ufs-image-config.yaml: -------------------------------------------------------------------------------- 1 | Build: 2 | InstanceType: c5a.2xlarge 3 | ParentImage: arn:aws:imagebuilder:us-east-2:aws:image/amazon-linux-2-x86/x.x.x 4 | Iam: 5 | AdditionalIamPolicies: 6 | - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess 7 | Components: 8 | - Type: arn 9 | Value: arn:aws:imagebuilder:us-east-2:123456789:component/ufs-spack/1.0.0/1 10 | UpdateOsPackages: 11 | Enabled: true 12 | -------------------------------------------------------------------------------- /src/resources/ufs-spack-component.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: MIT-0 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this 6 | # software and associated documentation files (the "Software"), to deal in the Software 7 | # without restriction, including without limitation the rights to use, copy, modify, 8 | # merge, publish, distribute, sublicense, and/or sell copies of the Software, and to 9 | # permit persons to whom the Software is furnished to do so. 10 | # 11 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 12 | # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 13 | # PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 14 | # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 15 | # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 16 | # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | 18 | name: ufs-spack-component 19 | description: Installs Spack, Intel OneAPI, Intel MPI, and UFS. 20 | schemaVersion: 1.0 21 | 22 | parameters: 23 | - SpackRelease: 24 | type: string 25 | default: 'develop' 26 | description: The version of Spack to install (Github tag/branch) 27 | 28 | phases: 29 | - name: build 30 | steps: 31 | - name: DependenciesStep 32 | action: ExecuteBash 33 | inputs: 34 | commands: 35 | - | 36 | yum -y install git 37 | 38 | - name: InstallSpackPackageStep 39 | action: ExecuteBash 40 | inputs: 41 | commands: 42 | - | 43 | cd /opt 44 | git clone -b {{ SpackRelease }} -c feature.manyFiles=true https://github.com/spack/spack.git 45 | echo 'test -f /opt/spack/share/spack/setup-env.sh && . $_' > /etc/profile.d/spack.sh 46 | chmod 644 /etc/profile.d/spack.sh 47 | 48 | - name: ExternalPackages 49 | action: S3Download 50 | inputs: 51 | - source: s3://aws-weather-bucket/templates/spack-external-packages.yaml 52 | destination: /opt/spack/etc/spack/packages.yaml 53 | overwrite: true 54 | 55 | - name: InstallOneAPI 56 | action: ExecuteBash 57 | inputs: 58 | commands: 59 | - | 60 | source /etc/profile.d/spack.sh 61 | spack install intel-oneapi-compilers@2022.0.2 62 | spack load intel-oneapi-compilers 63 | spack compiler find 64 | spack unload 65 | spack install intel-oneapi-mpi+external-libfabric%intel 66 | 67 | - name: InstallSpackCache 68 | action: ExecuteBash 69 | inputs: 70 | commands: 71 | - | 72 | source /etc/profile.d/spack.sh 73 | pip3 -qqq install botocore==1.23.46 boto3==1.20.46 74 | spack mirror add aws-spack-cache s3://aws-spack-cache/ 75 | spack buildcache keys --install --trust --force 76 | 77 | - name: InstallUFS 78 | action: ExecuteBash 79 | inputs: 80 | commands: 81 | - | 82 | source /etc/profile.d/spack.sh 83 | spack install --reuse ufs-weather-model%intel^intel-oneapi-mpi+external-libfabric 84 | spack install --reuse ufs-utils%intel^intel-oneapi-mpi+external-libfabric 85 | spack install --reuse upp%intel^intel-oneapi-mpi+external-libfabric 86 | 87 | -------------------------------------------------------------------------------- /src/wx/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/event-driven-weather-forecasts/6420d675ba7527fcb8222ed181c3ca70a28d658a/src/wx/__init__.py -------------------------------------------------------------------------------- /src/wx/bucket.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from aws_cdk import ( 5 | aws_s3 as s3, 6 | aws_s3_assets as assets, 7 | CfnOutput, Fn, NestedStack, Tags 8 | ) 9 | from constructs import Construct 10 | 11 | 12 | class S3(NestedStack): 13 | 14 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 15 | super().__init__(scope, construct_id) 16 | 17 | bucket_name=kwargs["bucket"] 18 | self.bucket = s3.Bucket(self, "nwp-bucket", 19 | bucket_name=bucket_name 20 | ) 21 | forecast_template = assets.Asset(self, "RunTemplate", path="resources/run") 22 | Tags.of(self.bucket).add("Purpose", "Event Driven Weather Forecast", priority=300) 23 | 24 | CfnOutput(self, "BucketName", value=self.bucket.bucket_name) 25 | CfnOutput(self, "ForecastTemplate", value=forecast_template.s3_object_url, 26 | export_name="ForecastTemplate") 27 | 28 | @property 29 | def outputs(self): 30 | return self.bucket 31 | 32 | -------------------------------------------------------------------------------- /src/wx/cluster.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from aws_cdk import ( 5 | aws_ec2 as ec2, 6 | aws_iam as iam, 7 | aws_lambda as λ, 8 | aws_lambda_event_sources as λ_events, 9 | aws_logs as logs, 10 | aws_s3 as s3, 11 | aws_s3_assets as assets, 12 | aws_s3_notifications, 13 | aws_sns as sns, 14 | aws_stepfunctions as sfn, 15 | aws_stepfunctions_tasks as tasks, 16 | Aws, CfnOutput, Duration, Fn, NestedStack, Tags 17 | ) 18 | from constructs import Construct 19 | 20 | 21 | class Cluster(NestedStack): 22 | 23 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 24 | super().__init__(scope, construct_id) 25 | 26 | bucket_name = kwargs["bucket"] 27 | vpc = kwargs["vpc"] 28 | 29 | post_head = assets.Asset(self, "PostComputeFileAsset", 30 | path="resources/post_install_headnode.sh") 31 | cluster_name = "wx-pcluster" 32 | 33 | purl = Fn.import_value("ParallelClusterApiInvokeUrl") 34 | hostname = Fn.select(2, Fn.split("/", Fn.select(0, Fn.split('.', purl)))) 35 | parn = f"arn:aws:execute-api:{Aws.REGION}::{hostname}/*/*/*" 36 | 37 | jwt_key = Fn.import_value("JWTKey") 38 | sns_topic = Fn.import_value("ForecastSnsArn") 39 | forecast_tmpl = Fn.import_value("ForecastTemplate") 40 | 41 | sg_rds = ec2.SecurityGroup( 42 | self, 43 | id="sg_slurm", 44 | vpc=vpc, 45 | security_group_name="sg_slurm" 46 | ) 47 | 48 | sg_rds.add_ingress_rule( 49 | peer=ec2.Peer.ipv4(vpc.vpc_cidr_block), 50 | connection=ec2.Port.tcp(8080) 51 | ) 52 | 53 | policy_doc = iam.PolicyDocument(statements=[ 54 | iam.PolicyStatement( 55 | actions=["execute-api:Invoke", "execute-api:ManageConnections"], 56 | resources=["arn:aws:execute-api:*:*:*"], 57 | effect=iam.Effect.ALLOW), 58 | iam.PolicyStatement( 59 | actions=["states:*"], 60 | resources=["*"], 61 | effect=iam.Effect.ALLOW), 62 | iam.PolicyStatement( 63 | actions=["iam:*"], 64 | resources=["*"], 65 | effect=iam.Effect.ALLOW), 66 | ]) 67 | lambda_role = iam.Role(self, "Role", 68 | assumed_by=iam.CompositePrincipal( 69 | iam.ServicePrincipal("lambda.amazonaws.com"), 70 | iam.ServicePrincipal("sts.amazonaws.com"), 71 | ), 72 | description="CreateAPILambdaRole", 73 | managed_policies=[ 74 | iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSLambdaBasicExecutionRole"), 75 | iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSLambdaVPCAccessExecutionRole"), 76 | ], 77 | inline_policies={"cluster_lambda": policy_doc}, 78 | ) 79 | 80 | subnet = vpc.public_subnets[1].subnet_id 81 | for net in vpc.public_subnets: 82 | if net.availability_zone == "us-east-2b": 83 | subnet = net 84 | 85 | layer = λ.LayerVersion(self, "lambda_layer", 86 | compatible_runtimes=[λ.Runtime.PYTHON_3_9], 87 | code=λ.Code.from_asset("./layer.zip"), 88 | layer_version_name="wx_layer", 89 | description="WX Lambda Layer", 90 | ) 91 | 92 | destroy = λ.Function(self, "lambda_func_destroy", 93 | code=λ.Code.from_asset("./lambda"), 94 | environment={ 95 | "CLUSTER_NAME": cluster_name, 96 | "PCLUSTER_API_URL": purl, 97 | "REGION": Aws.REGION, 98 | }, 99 | handler="cluster.destroy", 100 | layers=[layer], 101 | log_retention=logs.RetentionDays.ONE_DAY, 102 | role=lambda_role, 103 | runtime=λ.Runtime.PYTHON_3_9, 104 | timeout=Duration.seconds(60) 105 | ) 106 | Tags.of(destroy).add("Purpose", "Event Driven Weather Forecast", priority=300) 107 | 108 | 109 | outputs = aws_s3_notifications.LambdaDestination(destroy) 110 | bucket = s3.Bucket.from_bucket_name(self, "nwp-bucket", bucket_name) 111 | bucket.add_event_notification(s3.EventType.OBJECT_CREATED, outputs, 112 | s3.NotificationKeyFilter(prefix="outputs/", suffix="done")) 113 | 114 | forecast_wait = sfn.Wait(self, "WaitForForecast", 115 | time=sfn.WaitTime.duration(Duration.minutes(60))) 116 | 117 | destroy_cluster = tasks.LambdaInvoke(self, "TaskDestroyCluster", 118 | lambda_function=destroy, 119 | output_path="$.Payload", 120 | ) 121 | 122 | definition = forecast_wait.next(destroy_cluster) 123 | 124 | sm = sfn.StateMachine(self, "WXStateMachine", 125 | definition=definition, 126 | timeout=Duration.minutes(65)) 127 | 128 | Tags.of(sm).add("Purpose", "Event Driven Weather Forecast", priority=300) 129 | 130 | create = λ.Function(self, "lambda_func_create", 131 | code=λ.Code.from_asset("./lambda"), 132 | environment={ 133 | "BUCKET_NAME": bucket_name, 134 | "CLUSTER_NAME": cluster_name, 135 | "JWTKEY": jwt_key, 136 | "PCLUSTER_API_URL": purl, 137 | "REGION": Aws.REGION, 138 | "FORECAST_TMPL": forecast_tmpl, 139 | "S3_URL_POST_INSTALL_HEADNODE": f"{post_head.s3_object_url}", 140 | "SG": sg_rds.security_group_id, 141 | "SNS_TOPIC": sns_topic, 142 | "SM_ARN": sm.state_machine_arn, 143 | "SUBNETID": subnet, 144 | }, 145 | handler="cluster.create", 146 | layers=[layer], 147 | log_retention=logs.RetentionDays.ONE_DAY, 148 | role=lambda_role, 149 | runtime=λ.Runtime.PYTHON_3_9, 150 | timeout=Duration.seconds(60) 151 | ) 152 | Tags.of(create).add("Purpose", "Event Driven Weather Forecast", priority=300) 153 | gfs = sns.Topic.from_topic_arn(self, "NOAAGFS", "arn:aws:sns:us-east-1:123901341784:NewGFSObject") 154 | create.add_event_source(λ_events.SnsEventSource(gfs)) 155 | 156 | CfnOutput(self, "StateMachineArn", value=sm.state_machine_arn, 157 | export_name="StateMachineArn") 158 | 159 | @property 160 | def outputs(self): 161 | return self.sm 162 | 163 | -------------------------------------------------------------------------------- /src/wx/forecast.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | import datetime as dt 5 | from aws_cdk import ( 6 | aws_iam as iam, 7 | aws_kms as kms, 8 | aws_lambda as λ, 9 | aws_lambda_event_sources as λ_events, 10 | aws_sns as sns, 11 | Aws, CfnOutput, Duration, Fn, NestedStack, RemovalPolicy, Tags 12 | ) 13 | from constructs import Construct 14 | 15 | 16 | class Forecast(NestedStack): 17 | 18 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 19 | super().__init__(scope, construct_id) 20 | 21 | vpc = kwargs["vpc"] 22 | bucket_name = kwargs["bucket"] 23 | 24 | self.sns_kms = kms.Key(self, "ForecastSnsKey", 25 | alias="wx/sns", 26 | description="KMS Key for Forecast SNS Topic", 27 | removal_policy=RemovalPolicy.DESTROY) 28 | self.wx_sns = sns.Topic(self, "ForecastSns", display_name="Forecast SNS Topic", 29 | master_key=self.sns_kms) 30 | 31 | policy_doc = iam.PolicyDocument() 32 | policy_doc.add_statements(iam.PolicyStatement( 33 | actions=[ 34 | "secretsmanager:GetResourcePolicy", 35 | "secretsmanager:GetSecretValue", 36 | "secretsmanager:DescribeSecret", 37 | "secretsmanager:ListSecretVersionIds", 38 | "secretsmanager:ListSecrets", 39 | ], 40 | resources=["*"], 41 | effect=iam.Effect.ALLOW)) 42 | role = iam.Role(self, "Role", 43 | assumed_by=iam.CompositePrincipal( 44 | iam.ServicePrincipal("lambda.amazonaws.com"), 45 | iam.ServicePrincipal("sts.amazonaws.com"), 46 | ), 47 | description="CreateForecastLambdaRole", 48 | managed_policies=[ 49 | iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSLambdaBasicExecutionRole"), 50 | iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSLambdaVPCAccessExecutionRole"), 51 | ], 52 | inline_policies={"secretsmanager": policy_doc}, 53 | ) 54 | 55 | layer = λ.LayerVersion(self, "lambda_layer", 56 | compatible_runtimes=[λ.Runtime.PYTHON_3_9], 57 | code=λ.Code.from_asset("./layer.zip"), 58 | layer_version_name="wx_layer", 59 | description="WX Lambda Layer", 60 | ) 61 | 62 | run = λ.Function(self, "lambda_func_run", 63 | code=λ.Code.from_asset("./lambda"), 64 | environment={ 65 | "BUCKET_NAME": bucket_name, 66 | }, 67 | handler="forecast.main", 68 | layers=[layer], 69 | role=role, 70 | runtime=λ.Runtime.PYTHON_3_9, 71 | timeout=Duration.seconds(60), 72 | vpc=vpc, 73 | ) 74 | Tags.of(run).add("Purpose", "Event Driven Weather Forecast", priority=300) 75 | run.add_event_source(λ_events.SnsEventSource(self.wx_sns)) 76 | 77 | CfnOutput(self, "ForecastSnsArn", value=self.wx_sns.topic_arn, 78 | export_name="ForecastSnsArn") 79 | 80 | @property 81 | def outputs(self): 82 | return self.wx_sns 83 | 84 | -------------------------------------------------------------------------------- /src/wx/network.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from aws_cdk import ( 5 | aws_ec2 as ec2, 6 | CfnOutput, NestedStack, Tags 7 | ) 8 | from constructs import Construct 9 | 10 | class Vpc(NestedStack): 11 | 12 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 13 | super().__init__(scope, construct_id) 14 | 15 | vpc = ec2.Vpc(self, 'wx-vpc', 16 | cidr = '10.0.0.0/18', 17 | enable_dns_hostnames = True, 18 | enable_dns_support = True, 19 | max_azs = 2, 20 | nat_gateways = 1, 21 | subnet_configuration=[ 22 | ec2.SubnetConfiguration( 23 | cidr_mask = 20, 24 | name = 'public', 25 | subnet_type = ec2.SubnetType.PUBLIC 26 | ), 27 | ec2.SubnetConfiguration( 28 | cidr_mask = 20, 29 | name = 'private', 30 | subnet_type = ec2.SubnetType.PRIVATE_WITH_NAT 31 | ), 32 | ], 33 | ) 34 | 35 | CfnOutput(self, "vpcid", value=vpc.vpc_id) 36 | [CfnOutput(self,f"PublicSubnet{i}", value=x.subnet_id) for i,x in enumerate(vpc.public_subnets)] 37 | [CfnOutput(self,f"PrivateSubnet{i}", value=x.subnet_id) for i,x in enumerate(vpc.private_subnets)] 38 | [CfnOutput(self,f"IsolatedSubnet{i}", value=x.subnet_id) for i,x in enumerate(vpc.isolated_subnets)] 39 | 40 | self.vpc = vpc 41 | Tags.of(self.vpc).add("Purpose", "Event Driven Weather Forecast", priority=300) 42 | 43 | @property 44 | def outputs(self): 45 | return self.vpc 46 | -------------------------------------------------------------------------------- /src/wx/pclusterapi.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from aws_cdk import ( 5 | aws_iam as iam, 6 | aws_s3_assets as assets, 7 | Aws, CfnOutput, CfnStack, CfnStackProps, Fn, NestedStack, Tags 8 | ) 9 | from constructs import Construct 10 | 11 | class ParallelClusterApi(NestedStack): 12 | 13 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 14 | super().__init__(scope, construct_id) 15 | 16 | aid = Aws.ACCOUNT_ID 17 | region = Aws.REGION 18 | version = "3.1.4" 19 | template_yaml = assets.Asset(self, "PClusterTemplate", 20 | path="resources/parallelcluster-api.yaml" 21 | ) 22 | template_url = f"https://{template_yaml.s3_bucket_name}.s3.us-east-2.amazonaws.com/{template_yaml.s3_object_key}" 23 | params = { 24 | "ApiDefinitionS3Uri": f"s3://{region}-aws-parallelcluster/parallelcluster/{version}/api/ParallelCluster.openapi.yaml", 25 | "EnableIamAdminAccess": "true", 26 | "CreateApiUserRole": "false", 27 | } 28 | 29 | self.api = CfnStack(self, "APITemplate", 30 | template_url=template_url, 31 | parameters=params) 32 | 33 | Tags.of(self.api).add("Purpose", "Event Driven Weather Forecast", priority=300) 34 | 35 | CfnOutput(self, "ParallelClusterApiInvokeUrl", 36 | value=Fn.get_att(self.api.logical_id, "Outputs.ParallelClusterApiInvokeUrl").to_string(), 37 | export_name="ParallelClusterApiInvokeUrl") 38 | 39 | 40 | @property 41 | def outputs(self): 42 | return self.api 43 | 44 | -------------------------------------------------------------------------------- /src/wx/root.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | from aws_cdk import ( 5 | Aws, CfnOutput, CfnParameter, Duration, Fn, NestedStack, Stack, Tags 6 | ) 7 | from constructs import Construct 8 | 9 | from wx.bucket import S3 10 | from wx.cluster import Cluster 11 | from wx.forecast import Forecast 12 | from wx.network import Vpc 13 | from wx.pclusterapi import ParallelClusterApi 14 | from wx.slurmdb import SlurmDb 15 | 16 | 17 | class Root(Stack): 18 | 19 | def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: 20 | super().__init__(scope, construct_id, **kwargs) 21 | 22 | bucket_name = CfnParameter(self, "BucketName", type="String", 23 | description="The name of the Amazon S3 bucket where the forecast files will be stored.") 24 | 25 | vpc = Vpc(self, "vpc") 26 | 27 | forecast = Forecast(self, "forecast", vpc=vpc.outputs, bucket=bucket_name.value_as_string) 28 | pcluster_api = ParallelClusterApi(self, "parallel-cluster-api") 29 | 30 | slurmdb = SlurmDb(self, "slurmdbd", vpc=vpc.outputs) 31 | slurmdb.add_dependency(vpc) 32 | 33 | s3 = S3(self, "s3", bucket=bucket_name.value_as_string) 34 | 35 | cluster = Cluster(self, "cluster", vpc=vpc.outputs, bucket=bucket_name.value_as_string) 36 | cluster.add_dependency(forecast) 37 | cluster.add_dependency(pcluster_api) 38 | cluster.add_dependency(s3) 39 | cluster.add_dependency(slurmdb) 40 | cluster.add_dependency(vpc) 41 | 42 | @property 43 | def outputs(self): 44 | return self 45 | 46 | -------------------------------------------------------------------------------- /src/wx/slurmdb.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: MIT-0 3 | 4 | import json 5 | from aws_cdk import ( 6 | aws_ec2 as ec2, 7 | aws_rds as rds, 8 | aws_secretsmanager as secretsmanager, 9 | App, CfnOutput, Fn, NestedStack, RemovalPolicy 10 | ) 11 | 12 | from constructs import Construct 13 | 14 | class SlurmDb(NestedStack): 15 | def __init__(self, scope:Construct, construct_id: str, **kwargs) -> None: 16 | super().__init__(scope, construct_id) 17 | 18 | vpc = kwargs["vpc"] 19 | sg_rds = ec2.SecurityGroup( 20 | self, 21 | id="sg_rds", 22 | vpc=vpc, 23 | security_group_name="sg_rds" 24 | ) 25 | 26 | sg_rds.add_ingress_rule( 27 | peer=ec2.Peer.ipv4(vpc.vpc_cidr_block), 28 | connection=ec2.Port.tcp(3306) 29 | ) 30 | 31 | self.username = "admin" 32 | self.secret = secretsmanager.Secret(self, "DBCreds", 33 | secret_name="SlurmDbCreds", 34 | description="Slurm RDS Credentials", 35 | generate_secret_string=secretsmanager.SecretStringGenerator( 36 | exclude_characters ="\"@/\\ '", 37 | generate_string_key="password", 38 | secret_string_template=f'{{"username":"{self.username}"}}') 39 | ) 40 | 41 | instance_type = ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE4_GRAVITON, ec2.InstanceSize.MEDIUM) 42 | engine_version = rds.MysqlEngineVersion.VER_8_0_28 43 | 44 | self.db = rds.DatabaseInstance(self, "RDS", 45 | credentials=rds.Credentials.from_secret(self.secret, self.username), 46 | database_name="slurmdb", 47 | delete_automated_backups=True, 48 | deletion_protection=False, 49 | engine=rds.DatabaseInstanceEngine.mysql(version=engine_version), 50 | instance_type=instance_type, 51 | removal_policy=RemovalPolicy.DESTROY, 52 | security_groups=[sg_rds], 53 | vpc=vpc, 54 | vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC) 55 | ) 56 | 57 | self.jwt = secretsmanager.Secret(self, "JWTCreds", 58 | secret_name="JWTKey", 59 | description="JSON Web Token for SLURM" 60 | ) 61 | 62 | CfnOutput(self, "hostname", value=self.db.db_instance_endpoint_address) 63 | CfnOutput(self, "DBSecretArn", value=self.secret.secret_full_arn, 64 | export_name="DBSecretArn") 65 | CfnOutput(self, "JWTKeyArn", value=self.jwt.secret_full_arn, 66 | export_name="JWTKeyArn") 67 | CfnOutput(self, "JWTKey", value="JWTKey", export_name="JWTKey") 68 | 69 | @property 70 | def outputs(self): 71 | return self.db 72 | --------------------------------------------------------------------------------