mirror of https://github.com/ecmwf/eccodes.git
Merge commit 'ed6ba1f56da5c64b7e8c302a87b27b3af329ade7' into feature/memfs
This commit is contained in:
commit
61844f413b
52
.cproject
52
.cproject
|
@ -1,52 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.117388601">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.117388601" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" id="cdt.managedbuild.toolchain.gnu.base.117388601" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.117388601.793025112" name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1462179316" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.860211140" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1272978155" managedBuildOn="false" name="Gnu Make Builder.Default" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1052361218" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.963458311" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1182912071" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.944880334" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1829431036" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.619958332" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1695886808" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.base.2103226257" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.742915453" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="ecCodes.null.1772218298" name="ecCodes"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
</cproject>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<project>
|
||||
<configuration id="cdt.managedbuild.toolchain.gnu.base.117388601" name="Default">
|
||||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider class="org.eclipse.cdt.core.language.settings.providers.LanguageSettingsGenericProvider" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" name="CDT User Setting Entries" prefer-non-shared="true"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
</extension>
|
||||
</configuration>
|
||||
</project>
|
|
@ -298,7 +298,7 @@ add_subdirectory( ifs_samples ) # must come after samples
|
|||
ecbuild_dont_pack( DIRS
|
||||
concepts tests.ecmwf doxygen confluence examples.dev templates parameters java
|
||||
gaussian_experimental gribex examples/F77
|
||||
examples/extra bamboo fortran/fortranCtypes tigge/tools share/eccodes grib_api_for_mars
|
||||
examples/extra bamboo fortran/fortranCtypes tigge/tools share/eccodes
|
||||
src/.deps tests/.deps tools/.deps tigge/.deps examples/C/.deps examples/python/.deps
|
||||
python/.deps fortran/.deps
|
||||
)
|
||||
|
|
|
@ -384,3 +384,4 @@ uegabe.bufr.num.ref
|
|||
syno.bufr.out.ref
|
||||
airep.bufr.out.ref
|
||||
new_replication.bufr.ref
|
||||
get_string_array.ref
|
||||
|
|
|
@ -38,7 +38,6 @@ do
|
|||
tar="full_${files[i]}"
|
||||
EOF
|
||||
|
||||
p4 edit ${files[i]}
|
||||
if [[ ${precision[i]} -gt 0 ]]
|
||||
then
|
||||
grib_set -r -s bitsPerValue=0,decimalScaleFactor=${precision[i]} full_${files[i]} ${files[i]}
|
||||
|
@ -53,4 +52,3 @@ EOF
|
|||
grib_dump ${grib2} > /dev/null
|
||||
|
||||
done
|
||||
|
||||
|
|
|
@ -612,6 +612,7 @@
|
|||
parameterCategory = 0 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
typeOfFirstFixedSurface = 177 ;
|
||||
}
|
||||
#Cloudy brightness temperature
|
||||
'clbt' = {
|
||||
|
@ -2859,13 +2860,13 @@
|
|||
parameterNumber = 5 ;
|
||||
}
|
||||
#Radiance (with respect to wave length)
|
||||
'p3120' = {
|
||||
'swrad' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 4 ;
|
||||
parameterNumber = 6 ;
|
||||
}
|
||||
#Wind mixing energy
|
||||
'p3126' = {
|
||||
'wmixe' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 19 ;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-02-03 10:04
|
||||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-06-03 11:40
|
||||
#paramId: 500000
|
||||
#Pressure (S) (not reduced)
|
||||
'Pressure (S) (not reduced)' = {
|
||||
|
@ -1933,7 +1933,6 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 0 ;
|
||||
typeOfFirstFixedSurface = 107 ;
|
||||
unitsFactor = 100 ;
|
||||
}
|
||||
|
||||
#paramId: 500302
|
||||
|
@ -6134,6 +6133,536 @@
|
|||
parameterNumber = 42 ;
|
||||
}
|
||||
|
||||
#paramId: 503229
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 1
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503230
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 2
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503231
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 3
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503232
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 4
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 4' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 4 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503233
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 5
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 5' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 5 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503234
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 6
|
||||
'Prognostic mass mixing ratio of volcanic ash particles for bin number 6' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 6 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503235
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (fine mode)
|
||||
'Modal prognostic mass mixing ratio of volcanic ash particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503236
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (medium mode)
|
||||
'Modal prognostic mass mixing ratio of volcanic ash particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503237
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (coarse mode)
|
||||
'Modal prognostic mass mixing ratio of volcanic ash particles (coarse mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503238
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (fine mode)
|
||||
'Modal prognostic specific number concentration of volcanic ash particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503239
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (medium mode)
|
||||
'Modal prognostic specific number concentration of volcanic ash particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503240
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (coarse mode)
|
||||
'Modal prognostic specific number concentration of volcanic ash particles (coarse mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503241
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (fine mode)
|
||||
'Modal prognostic mass mixing ratio of mineral dust particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503242
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (medium mode)
|
||||
'Modal prognostic mass mixing ratio of mineral dust particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503243
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (coarse mode)
|
||||
'Modal prognostic mass mixing ratio of mineral dust particles (coarse mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503244
|
||||
#Modal prognostic specific number concentration of mineral dust particles (fine mode)
|
||||
'Modal prognostic specific number concentration of mineral dust particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503245
|
||||
#Modal prognostic specific number concentration of mineral dust particles (medium mode)
|
||||
'Modal prognostic specific number concentration of mineral dust particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503246
|
||||
#Modal prognostic specific number concentration of mineral dust particles (coarsemode)
|
||||
'Modal prognostic specific number concentration of mineral dust particles (coarsemode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503247
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (fine mode)
|
||||
'Modal prognostic mass mixing ratio of sea salt particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503248
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (medium mode)
|
||||
'Modal prognostic mass mixing ratio of sea salt particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503249
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (coarse mode)
|
||||
'Modal prognostic mass mixing ratio of sea salt particles (coarse mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503250
|
||||
#Modal prognostic specific number concentration of sea salt particles (fine mode)
|
||||
'Modal prognostic specific number concentration of sea salt particles (fine mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503251
|
||||
#Modal prognostic specific number concentration of sea salt particles (medium mode)
|
||||
'Modal prognostic specific number concentration of sea salt particles (medium mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503252
|
||||
#Modal prognostic specific number concentration of sea salt particles (coarse mode)
|
||||
'Modal prognostic specific number concentration of sea salt particles (coarse mode)' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503253
|
||||
#Prognostic specific activity concentration of Caesium 137
|
||||
'Prognostic specific activity concentration of Caesium 137' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30172 ;
|
||||
}
|
||||
|
||||
#paramId: 503254
|
||||
#Prognostic specific activity concentration of Iodine 131 aerosol
|
||||
'Prognostic specific activity concentration of Iodine 131 aerosol' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30141 ;
|
||||
}
|
||||
|
||||
#paramId: 503255
|
||||
#Prognostic specific activity concentration of Tellurium 132
|
||||
'Prognostic specific activity concentration of Tellurium 132' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30129 ;
|
||||
}
|
||||
|
||||
#paramId: 503256
|
||||
#Prognostic specific activity concentration of Zirconium 95
|
||||
'Prognostic specific activity concentration of Zirconium 95' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30079 ;
|
||||
}
|
||||
|
||||
#paramId: 503257
|
||||
#Prognostic specific activity concentration of Xenon 133
|
||||
'Prognostic specific activity concentration of Xenon 133' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30161 ;
|
||||
}
|
||||
|
||||
#paramId: 503258
|
||||
#Prognostic specific activity concentration of Iodine 131 elementary gaseous
|
||||
'Prognostic specific activity concentration of Iodine 131 elementary gaseous' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30138 ;
|
||||
}
|
||||
|
||||
#paramId: 503259
|
||||
#Prognostic specific activity concentration of Iodine 131 organic bounded
|
||||
'Prognostic specific activity concentration of Iodine 131 organic bounded' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30139 ;
|
||||
}
|
||||
|
||||
#paramId: 503260
|
||||
#Prognostic specific activity concentration of Barium 140
|
||||
'Prognostic specific activity concentration of Barium 140' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30175 ;
|
||||
}
|
||||
|
||||
#paramId: 503261
|
||||
#Prognostic specific activity concentration of Ruthenium 103
|
||||
'Prognostic specific activity concentration of Ruthenium 103' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30102 ;
|
||||
}
|
||||
|
||||
#paramId: 503262
|
||||
#Diagnostic total mass concentration of volcanic ash
|
||||
'Diagnostic total mass concentration of volcanic ash' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 0 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503263
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 46500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503265
|
||||
#Diagnostic total column of mass concentration of volcanic ash
|
||||
'Diagnostic total column of mass concentration of volcanic ash' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503266
|
||||
#Diagnostic height of model layer with maximal total mass concentration of volcanic ash
|
||||
'Diagnostic height of model layer with maximal total mass concentration of volcanic ash' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 62 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503267
|
||||
#Diagnostic volcanic ash optical depth
|
||||
'Diagnostic volcanic ash optical depth' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503268
|
||||
#Diagnostic mineral dust optical depth
|
||||
'Diagnostic mineral dust optical depth' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62001 ;
|
||||
}
|
||||
|
||||
#paramId: 503269
|
||||
#Diagnostic sea salt optical depth
|
||||
'Diagnostic sea salt optical depth' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62008 ;
|
||||
}
|
||||
|
||||
#paramId: 503270
|
||||
#Diagnostic vmaximum activity concentration of radionuclides in a layer
|
||||
'Diagnostic vmaximum activity concentration of radionuclides in a layer' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 15 ;
|
||||
}
|
||||
|
||||
#paramId: 503273
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL200-FL350
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer FL200-FL350' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 46500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 24000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503274
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 70000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503275
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL350-FL550
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer FL350-FL550' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 24000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 9100 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503276
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL100-FL245
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer FL100-FL245' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 70000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 38500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503277
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL245-FL390
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer FL245-FL390' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 38500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 20000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503278
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL390-FL530
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in layer FL390-FL530' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 20000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 10000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503279
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in a layer
|
||||
'Diagnostic maximum total mass concentration of volcanic ash in a layer' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503280
|
||||
#Aerosol optical depth
|
||||
'Aerosol optical depth' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
}
|
||||
|
||||
#paramId: 500092
|
||||
#Solar radiation heating rate
|
||||
'Solar radiation heating rate' = {
|
||||
|
@ -10833,3 +11362,52 @@
|
|||
parameterNumber = 202 ;
|
||||
}
|
||||
|
||||
#paramId: 503282
|
||||
#Diagnostic total column of activity concentration of radionuclides
|
||||
'Diagnostic total column of activity concentration of radionuclides' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 192 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
}
|
||||
|
||||
#paramId: 503283
|
||||
#Liquid water potential temperature variance
|
||||
'Liquid water potential temperature variance' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 0 ;
|
||||
}
|
||||
|
||||
#paramId: 503284
|
||||
#Total water specific humidity variance
|
||||
'Total water specific humidity variance' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503285
|
||||
#Liquid water potential temperature - total water specific humidity covariance
|
||||
'Liquid water potential temperature - total water specific humidity covariance' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 2 ;
|
||||
}
|
||||
|
||||
#paramId: 503286
|
||||
#Impervious (paved or sealed) surface fraction
|
||||
'Impervious (paved or sealed) surface fraction' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 196 ;
|
||||
}
|
||||
|
||||
#paramId: 503287
|
||||
#Antropogenic heat flux (e.g. urban heating, traffic)
|
||||
'Antropogenic heat flux (e.g. urban heating, traffic)' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 197 ;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-02-03 10:04
|
||||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-06-03 11:40
|
||||
#paramId: 500000
|
||||
#Pressure (S) (not reduced)
|
||||
'500000' = {
|
||||
|
@ -2603,7 +2603,6 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 0 ;
|
||||
typeOfFirstFixedSurface = 107 ;
|
||||
unitsFactor = 100 ;
|
||||
}
|
||||
|
||||
#paramId: 500302
|
||||
|
@ -11372,3 +11371,582 @@
|
|||
parameterNumber = 202 ;
|
||||
}
|
||||
|
||||
#paramId: 503229
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 1
|
||||
'503229' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503230
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 2
|
||||
'503230' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503231
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 3
|
||||
'503231' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503232
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 4
|
||||
'503232' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 4 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503233
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 5
|
||||
'503233' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 5 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503234
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 6
|
||||
'503234' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 6 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503235
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (fine mode)
|
||||
'503235' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503236
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (medium mode)
|
||||
'503236' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503237
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (coarse mode)
|
||||
'503237' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503238
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (fine mode)
|
||||
'503238' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503239
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (medium mode)
|
||||
'503239' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503240
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (coarse mode)
|
||||
'503240' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503241
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (fine mode)
|
||||
'503241' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503242
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (medium mode)
|
||||
'503242' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503243
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (coarse mode)
|
||||
'503243' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503244
|
||||
#Modal prognostic specific number concentration of mineral dust particles (fine mode)
|
||||
'503244' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503245
|
||||
#Modal prognostic specific number concentration of mineral dust particles (medium mode)
|
||||
'503245' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503246
|
||||
#Modal prognostic specific number concentration of mineral dust particles (coarsemode)
|
||||
'503246' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503247
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (fine mode)
|
||||
'503247' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503248
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (medium mode)
|
||||
'503248' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503249
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (coarse mode)
|
||||
'503249' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503250
|
||||
#Modal prognostic specific number concentration of sea salt particles (fine mode)
|
||||
'503250' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503251
|
||||
#Modal prognostic specific number concentration of sea salt particles (medium mode)
|
||||
'503251' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503252
|
||||
#Modal prognostic specific number concentration of sea salt particles (coarse mode)
|
||||
'503252' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503253
|
||||
#Prognostic specific activity concentration of Caesium 137
|
||||
'503253' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30172 ;
|
||||
}
|
||||
|
||||
#paramId: 503254
|
||||
#Prognostic specific activity concentration of Iodine 131 aerosol
|
||||
'503254' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30141 ;
|
||||
}
|
||||
|
||||
#paramId: 503255
|
||||
#Prognostic specific activity concentration of Tellurium 132
|
||||
'503255' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30129 ;
|
||||
}
|
||||
|
||||
#paramId: 503256
|
||||
#Prognostic specific activity concentration of Zirconium 95
|
||||
'503256' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30079 ;
|
||||
}
|
||||
|
||||
#paramId: 503257
|
||||
#Prognostic specific activity concentration of Xenon 133
|
||||
'503257' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30161 ;
|
||||
}
|
||||
|
||||
#paramId: 503258
|
||||
#Prognostic specific activity concentration of Iodine 131 elementary gaseous
|
||||
'503258' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30138 ;
|
||||
}
|
||||
|
||||
#paramId: 503259
|
||||
#Prognostic specific activity concentration of Iodine 131 organic bounded
|
||||
'503259' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30139 ;
|
||||
}
|
||||
|
||||
#paramId: 503260
|
||||
#Prognostic specific activity concentration of Barium 140
|
||||
'503260' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30175 ;
|
||||
}
|
||||
|
||||
#paramId: 503261
|
||||
#Prognostic specific activity concentration of Ruthenium 103
|
||||
'503261' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30102 ;
|
||||
}
|
||||
|
||||
#paramId: 503262
|
||||
#Diagnostic total mass concentration of volcanic ash
|
||||
'503262' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 0 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503263
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'503263' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 46500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503265
|
||||
#Diagnostic total column of mass concentration of volcanic ash
|
||||
'503265' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503266
|
||||
#Diagnostic height of model layer with maximal total mass concentration of volcanic ash
|
||||
'503266' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 62 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503267
|
||||
#Diagnostic volcanic ash optical depth
|
||||
'503267' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503268
|
||||
#Diagnostic mineral dust optical depth
|
||||
'503268' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62001 ;
|
||||
}
|
||||
|
||||
#paramId: 503269
|
||||
#Diagnostic sea salt optical depth
|
||||
'503269' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62008 ;
|
||||
}
|
||||
|
||||
#paramId: 503270
|
||||
#Diagnostic vmaximum activity concentration of radionuclides in a layer
|
||||
'503270' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 15 ;
|
||||
}
|
||||
|
||||
#paramId: 503273
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL200-FL350
|
||||
'503273' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 46500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 24000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503274
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'503274' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 70000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503275
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL350-FL550
|
||||
'503275' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 24000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 9100 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503276
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL100-FL245
|
||||
'503276' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 70000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 38500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503277
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL245-FL390
|
||||
'503277' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 38500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 20000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503278
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL390-FL530
|
||||
'503278' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 20000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 10000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503279
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in a layer
|
||||
'503279' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503280
|
||||
#Aerosol optical depth
|
||||
'503280' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
}
|
||||
|
||||
#paramId: 503282
|
||||
#Diagnostic total column of activity concentration of radionuclides
|
||||
'503282' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 192 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
}
|
||||
|
||||
#paramId: 503283
|
||||
#Liquid water potential temperature variance
|
||||
'503283' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 0 ;
|
||||
}
|
||||
|
||||
#paramId: 503284
|
||||
#Total water specific humidity variance
|
||||
'503284' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503285
|
||||
#Liquid water potential temperature - total water specific humidity covariance
|
||||
'503285' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 2 ;
|
||||
}
|
||||
|
||||
#paramId: 503286
|
||||
#Impervious (paved or sealed) surface fraction
|
||||
'503286' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 196 ;
|
||||
}
|
||||
|
||||
#paramId: 503287
|
||||
#Antropogenic heat flux (e.g. urban heating, traffic)
|
||||
'503287' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 197 ;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-02-03 10:04
|
||||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-06-03 11:40
|
||||
#paramId: 500000
|
||||
#Pressure (S) (not reduced)
|
||||
'PS' = {
|
||||
|
@ -1933,7 +1933,6 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 0 ;
|
||||
typeOfFirstFixedSurface = 107 ;
|
||||
unitsFactor = 100 ;
|
||||
}
|
||||
|
||||
#paramId: 500302
|
||||
|
@ -6134,6 +6133,536 @@
|
|||
parameterNumber = 42 ;
|
||||
}
|
||||
|
||||
#paramId: 503229
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 1
|
||||
'ASH1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503230
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 2
|
||||
'ASH2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503231
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 3
|
||||
'ASH3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503232
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 4
|
||||
'ASH4' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 4 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503233
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 5
|
||||
'ASH5' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 5 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503234
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 6
|
||||
'ASH6' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 6 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503235
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (fine mode)
|
||||
'ASHA' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503236
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (medium mode)
|
||||
'ASHB' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503237
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (coarse mode)
|
||||
'ASHC' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503238
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (fine mode)
|
||||
'ASHA0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503239
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (medium mode)
|
||||
'ASHB0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503240
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (coarse mode)
|
||||
'ASHC0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503241
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (fine mode)
|
||||
'DUSTA' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503242
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (medium mode)
|
||||
'DUSTB' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503243
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (coarse mode)
|
||||
'DUSTC' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503244
|
||||
#Modal prognostic specific number concentration of mineral dust particles (fine mode)
|
||||
'DUSTA0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503245
|
||||
#Modal prognostic specific number concentration of mineral dust particles (medium mode)
|
||||
'DUSTB0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503246
|
||||
#Modal prognostic specific number concentration of mineral dust particles (coarsemode)
|
||||
'DUSTC0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503247
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (fine mode)
|
||||
'SEASA' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503248
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (medium mode)
|
||||
'SEASB' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503249
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (coarse mode)
|
||||
'SEASC' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503250
|
||||
#Modal prognostic specific number concentration of sea salt particles (fine mode)
|
||||
'SEASA0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503251
|
||||
#Modal prognostic specific number concentration of sea salt particles (medium mode)
|
||||
'SEASB0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503252
|
||||
#Modal prognostic specific number concentration of sea salt particles (coarse mode)
|
||||
'SEASC0' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503253
|
||||
#Prognostic specific activity concentration of Caesium 137
|
||||
'Cs_137' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30172 ;
|
||||
}
|
||||
|
||||
#paramId: 503254
|
||||
#Prognostic specific activity concentration of Iodine 131 aerosol
|
||||
'I_131a' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30141 ;
|
||||
}
|
||||
|
||||
#paramId: 503255
|
||||
#Prognostic specific activity concentration of Tellurium 132
|
||||
'Te_132' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30129 ;
|
||||
}
|
||||
|
||||
#paramId: 503256
|
||||
#Prognostic specific activity concentration of Zirconium 95
|
||||
'Zr_95' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30079 ;
|
||||
}
|
||||
|
||||
#paramId: 503257
|
||||
#Prognostic specific activity concentration of Xenon 133
|
||||
'Xe_133' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30161 ;
|
||||
}
|
||||
|
||||
#paramId: 503258
|
||||
#Prognostic specific activity concentration of Iodine 131 elementary gaseous
|
||||
'I_131g' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30138 ;
|
||||
}
|
||||
|
||||
#paramId: 503259
|
||||
#Prognostic specific activity concentration of Iodine 131 organic bounded
|
||||
'I_131o' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30139 ;
|
||||
}
|
||||
|
||||
#paramId: 503260
|
||||
#Prognostic specific activity concentration of Barium 140
|
||||
'Ba_140' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30175 ;
|
||||
}
|
||||
|
||||
#paramId: 503261
|
||||
#Prognostic specific activity concentration of Ruthenium 103
|
||||
'Ru_103' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30102 ;
|
||||
}
|
||||
|
||||
#paramId: 503262
|
||||
#Diagnostic total mass concentration of volcanic ash
|
||||
'ASH_TOTAL_MC' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 0 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503263
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'ASH_MAX_TOTAL_MC_SFC_200' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 46500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503265
|
||||
#Diagnostic total column of mass concentration of volcanic ash
|
||||
'ASH_TOTAL_MC_VI' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503266
|
||||
#Diagnostic height of model layer with maximal total mass concentration of volcanic ash
|
||||
'ASH_HML_MAX' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 62 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503267
|
||||
#Diagnostic volcanic ash optical depth
|
||||
'AOD_ASH' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503268
|
||||
#Diagnostic mineral dust optical depth
|
||||
'AOD_DUST' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62001 ;
|
||||
}
|
||||
|
||||
#paramId: 503269
|
||||
#Diagnostic sea salt optical depth
|
||||
'AOD_SEAS' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62008 ;
|
||||
}
|
||||
|
||||
#paramId: 503270
|
||||
#Diagnostic vmaximum activity concentration of radionuclides in a layer
|
||||
'RADIONUC_MAX_AC_LAYER' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 15 ;
|
||||
}
|
||||
|
||||
#paramId: 503273
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL200-FL350
|
||||
'ASH_MAX_TOTAL_MC_200_350' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 46500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 24000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503274
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'ASH_MAX_TOTAL_MC_SFC_100' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 70000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503275
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL350-FL550
|
||||
'ASH_MAX_TOTAL_MC_350_550' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 24000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 9100 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503276
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL100-FL245
|
||||
'ASH_MAX_TOTAL_MC_100_245' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 70000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 38500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503277
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL245-FL390
|
||||
'ASH_MAX_TOTAL_MC_245_390' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 38500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 20000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503278
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL390-FL530
|
||||
'ASH_MAX_TOTAL_MC_390_530' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 20000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 10000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503279
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in a layer
|
||||
'ASH_MAX_TOTAL_MC_LAYER' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503280
|
||||
#Aerosol optical depth
|
||||
'AEROSOL_OPTICAL_DEPTH' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
}
|
||||
|
||||
#paramId: 500092
|
||||
#Solar radiation heating rate
|
||||
'SOHR_RAD' = {
|
||||
|
@ -10833,3 +11362,52 @@
|
|||
parameterNumber = 202 ;
|
||||
}
|
||||
|
||||
#paramId: 503282
|
||||
#Diagnostic total column of activity concentration of radionuclides
|
||||
'RADIONUC_AC_VI' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 192 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
}
|
||||
|
||||
#paramId: 503283
|
||||
#Liquid water potential temperature variance
|
||||
'THLTHLCOV' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 0 ;
|
||||
}
|
||||
|
||||
#paramId: 503284
|
||||
#Total water specific humidity variance
|
||||
'QTQTCOV' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503285
|
||||
#Liquid water potential temperature - total water specific humidity covariance
|
||||
'THLQTCOV' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 2 ;
|
||||
}
|
||||
|
||||
#paramId: 503286
|
||||
#Impervious (paved or sealed) surface fraction
|
||||
'FR_PAVED' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 196 ;
|
||||
}
|
||||
|
||||
#paramId: 503287
|
||||
#Antropogenic heat flux (e.g. urban heating, traffic)
|
||||
'AHF' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 197 ;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-02-03 10:04
|
||||
# Automatically generated by get_definitions.sql from database PRJ_TDCFDOKU.GRIB_PARAMETER@MIRAKEL.DWD.DE, do not edit! 2016-06-03 11:40
|
||||
#paramId: 500000
|
||||
#Pressure (S) (not reduced)
|
||||
'Pa' = {
|
||||
|
@ -1933,7 +1933,6 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 0 ;
|
||||
typeOfFirstFixedSurface = 107 ;
|
||||
unitsFactor = 100 ;
|
||||
}
|
||||
|
||||
#paramId: 500302
|
||||
|
@ -6134,6 +6133,536 @@
|
|||
parameterNumber = 42 ;
|
||||
}
|
||||
|
||||
#paramId: 503229
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 1
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503230
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 2
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503231
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 3
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503232
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 4
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 4 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503233
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 5
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 5 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503234
|
||||
#Prognostic mass mixing ratio of volcanic ash particles for bin number 6
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 6 ;
|
||||
typeOfDistributionFunction = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503235
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (fine mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503236
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (medium mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503237
|
||||
#Modal prognostic mass mixing ratio of volcanic ash particles (coarse mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503238
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (fine mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503239
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (medium mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503240
|
||||
#Modal prognostic specific number concentration of volcanic ash particles (coarse mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62025 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503241
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (fine mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503242
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (medium mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503243
|
||||
#Modal prognostic mass mixing ratio of mineral dust particles (coarse mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503244
|
||||
#Modal prognostic specific number concentration of mineral dust particles (fine mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503245
|
||||
#Modal prognostic specific number concentration of mineral dust particles (medium mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503246
|
||||
#Modal prognostic specific number concentration of mineral dust particles (coarsemode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62001 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503247
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (fine mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503248
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (medium mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503249
|
||||
#Modal prognostic mass mixing ratio of sea salt particles (coarse mode)
|
||||
'kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 2 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503250
|
||||
#Modal prognostic specific number concentration of sea salt particles (fine mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 1 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503251
|
||||
#Modal prognostic specific number concentration of sea salt particles (medium mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 2 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503252
|
||||
#Modal prognostic specific number concentration of sea salt particles (coarse mode)
|
||||
'kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 60 ;
|
||||
constituentType = 62008 ;
|
||||
modeNumber = 3 ;
|
||||
typeOfDistributionFunction = 7 ;
|
||||
}
|
||||
|
||||
#paramId: 503253
|
||||
#Prognostic specific activity concentration of Caesium 137
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30172 ;
|
||||
}
|
||||
|
||||
#paramId: 503254
|
||||
#Prognostic specific activity concentration of Iodine 131 aerosol
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30141 ;
|
||||
}
|
||||
|
||||
#paramId: 503255
|
||||
#Prognostic specific activity concentration of Tellurium 132
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30129 ;
|
||||
}
|
||||
|
||||
#paramId: 503256
|
||||
#Prognostic specific activity concentration of Zirconium 95
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30079 ;
|
||||
}
|
||||
|
||||
#paramId: 503257
|
||||
#Prognostic specific activity concentration of Xenon 133
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30161 ;
|
||||
}
|
||||
|
||||
#paramId: 503258
|
||||
#Prognostic specific activity concentration of Iodine 131 elementary gaseous
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30138 ;
|
||||
}
|
||||
|
||||
#paramId: 503259
|
||||
#Prognostic specific activity concentration of Iodine 131 organic bounded
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30139 ;
|
||||
}
|
||||
|
||||
#paramId: 503260
|
||||
#Prognostic specific activity concentration of Barium 140
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30175 ;
|
||||
}
|
||||
|
||||
#paramId: 503261
|
||||
#Prognostic specific activity concentration of Ruthenium 103
|
||||
'Bq kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 14 ;
|
||||
constituentType = 30102 ;
|
||||
}
|
||||
|
||||
#paramId: 503262
|
||||
#Diagnostic total mass concentration of volcanic ash
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 0 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503263
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 46500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503265
|
||||
#Diagnostic total column of mass concentration of volcanic ash
|
||||
'kg m-2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503266
|
||||
#Diagnostic height of model layer with maximal total mass concentration of volcanic ash
|
||||
'm' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 62 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503267
|
||||
#Diagnostic volcanic ash optical depth
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503268
|
||||
#Diagnostic mineral dust optical depth
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62001 ;
|
||||
}
|
||||
|
||||
#paramId: 503269
|
||||
#Diagnostic sea salt optical depth
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
aerosolType = 62008 ;
|
||||
}
|
||||
|
||||
#paramId: 503270
|
||||
#Diagnostic vmaximum activity concentration of radionuclides in a layer
|
||||
'Bq m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 15 ;
|
||||
}
|
||||
|
||||
#paramId: 503273
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL200-FL350
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 46500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 24000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503274
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer SFC-FL200
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 101325 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 70000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503275
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL350-FL550
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 24000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 9100 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503276
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL100-FL245
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 70000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 38500 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503277
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL245-FL390
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 38500 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 20000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503278
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in layer FL390-FL530
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
typeOfSecondFixedSurface = 100 ;
|
||||
scaleFactorOfSecondFixedSurface = 0 ;
|
||||
scaledValueOfSecondFixedSurface = 20000 ;
|
||||
typeOfFirstFixedSurface = 100 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
scaledValueOfFirstFixedSurface = 10000 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503279
|
||||
#Diagnostic maximum total mass concentration of volcanic ash in a layer
|
||||
'kg m-3' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 61 ;
|
||||
constituentType = 62025 ;
|
||||
}
|
||||
|
||||
#paramId: 503280
|
||||
#Aerosol optical depth
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 20 ;
|
||||
parameterNumber = 102 ;
|
||||
}
|
||||
|
||||
#paramId: 500092
|
||||
#Solar radiation heating rate
|
||||
'K s-1' = {
|
||||
|
@ -10833,3 +11362,52 @@
|
|||
parameterNumber = 202 ;
|
||||
}
|
||||
|
||||
#paramId: 503282
|
||||
#Diagnostic total column of activity concentration of radionuclides
|
||||
'Bq m-2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 18 ;
|
||||
parameterNumber = 192 ;
|
||||
typeOfFirstFixedSurface = 10 ;
|
||||
}
|
||||
|
||||
#paramId: 503283
|
||||
#Liquid water potential temperature variance
|
||||
'K2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 0 ;
|
||||
}
|
||||
|
||||
#paramId: 503284
|
||||
#Total water specific humidity variance
|
||||
'kg2 kg-2' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 1 ;
|
||||
}
|
||||
|
||||
#paramId: 503285
|
||||
#Liquid water potential temperature - total water specific humidity covariance
|
||||
'K kg kg-1' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 198 ;
|
||||
parameterNumber = 2 ;
|
||||
}
|
||||
|
||||
#paramId: 503286
|
||||
#Impervious (paved or sealed) surface fraction
|
||||
'Proportion' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 196 ;
|
||||
}
|
||||
|
||||
#paramId: 503287
|
||||
#Antropogenic heat flux (e.g. urban heating, traffic)
|
||||
'W m-2' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 197 ;
|
||||
}
|
||||
|
||||
|
|
|
@ -612,6 +612,7 @@
|
|||
parameterCategory = 0 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
typeOfFirstFixedSurface = 177 ;
|
||||
}
|
||||
#Cloudy brightness temperature
|
||||
'Cloudy brightness temperature' = {
|
||||
|
|
|
@ -611,6 +611,7 @@
|
|||
discipline = 1 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 177 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Cloudy brightness temperature
|
||||
|
|
|
@ -612,6 +612,7 @@
|
|||
parameterCategory = 0 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
typeOfFirstFixedSurface = 177 ;
|
||||
}
|
||||
#Cloudy brightness temperature
|
||||
'clbt' = {
|
||||
|
|
|
@ -612,6 +612,7 @@
|
|||
parameterCategory = 0 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
typeOfFirstFixedSurface = 177 ;
|
||||
}
|
||||
#Cloudy brightness temperature
|
||||
'K' = {
|
||||
|
|
|
@ -4,13 +4,9 @@ prov=$1
|
|||
dest=$2
|
||||
|
||||
mkdir -p $dest
|
||||
p4 edit $dest/*.html
|
||||
|
||||
for file in $prov/*.html
|
||||
do
|
||||
f=`basename $file`
|
||||
cat head.html $file tail.html > $dest/$f
|
||||
done
|
||||
|
||||
p4 add $dest/*.html
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*! \defgroup environment Environment variables
|
||||
Environment variables applicable to eccodes:
|
||||
Environment variables applicable to ecCodes:
|
||||
|
||||
\b ECCODES_DEBUG - If set to 1, it will enable debug level logging messages to be displayed by the library.
|
||||
|
||||
|
@ -7,16 +7,16 @@ Environment variables applicable to eccodes:
|
|||
|
||||
\b ECCODES_IO_BUFFER_SIZE - Defines the size in bytes of the buffer used in the IO calls from Fortran and in the tools.
|
||||
|
||||
\b ECCODES_NO_ABORT - When set to 1 it causes grib_api not to abort execution on failing asserts.
|
||||
\b ECCODES_NO_ABORT - When set to 1 it causes ecCodes not to abort execution on failing asserts.
|
||||
|
||||
\b GRIB_API_WRITE_ON_FAIL - When set to 1 it will write the last processed grib message in a file named $PID_$FILEID_error.grib on failure in a fortran function used without the return code argument.
|
||||
\b ECCODES_GRIB_WRITE_ON_FAIL - When set to 1 it will write the last processed GRIB message in a file named $PID_$FILEID_error.grib on failure in a fortran function used without the return code argument.
|
||||
|
||||
\b ECCODES_DEFINITION_PATH - Set to the folder containing the set of definition files you want grib_api to use instead of the default one.
|
||||
\b ECCODES_DEFINITION_PATH - Set to the folder containing the set of definition files you want ecCodes to use instead of the default one.
|
||||
|
||||
\b ECCODES_GRIBEX_MODE_ON - When set to 1 it will enable the GRIBEX compatibility mode and grib_api will produce GRIB messages readable by GRIBEX.
|
||||
\b ECCODES_GRIBEX_MODE_ON - When set to 1 it will enable the GRIBEX compatibility mode and ecCodes will produce GRIB messages readable by GRIBEX.
|
||||
|
||||
\b ECCODES_GRIB_IEEE_PACKING - Accepted values 32 or 64 for 32 or 64 bits IEEE floating point respectively. The GRIB message produced will contain data written in IEEE floating point without packing.
|
||||
|
||||
\b ECCODES_SAMPLES_PATH - Set to the folder containing the set of samples you want grib_api to use instead of the default one.
|
||||
\b ECCODES_SAMPLES_PATH - Set to the folder containing the set of samples you want ecCodes to use instead of the default one.
|
||||
|
||||
*/
|
||||
|
|
|
@ -25,7 +25,7 @@ ABBREVIATE_BRIEF = "The $name class" \
|
|||
ALWAYS_DETAILED_SEC = YES
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH = /var/tmp/mac/p4/grib_api/main/doxygen/
|
||||
STRIP_FROM_PATH = /home/ma/masn/git/eccodes/doxygen/
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
|
@ -105,7 +105,7 @@ INPUT = grib_api.dox \
|
|||
../tools/grib_keys.dox \
|
||||
../tools/grib_copy.dox \
|
||||
../tools/grib_index_build.dox \
|
||||
../python/eccodes.py
|
||||
gribapi.py
|
||||
FILE_PATTERNS = *.c \
|
||||
*.cc \
|
||||
*.cxx \
|
||||
|
|
|
@ -12,366 +12,4 @@
|
|||
<!-- #EndEditable --> <!-- #BeginEditable "metalink" -->
|
||||
<!-- Users insert meta LINK tags here -->
|
||||
<!-- #EndEditable --> <!-- #BeginEditable "doctitle" -->
|
||||
<title>GRIB API Manual</title>
|
||||
<!-- #EndEditable --><!-- #BeginEditable "customstyle" -->
|
||||
<!--put custom style here-->
|
||||
<link rel="stylesheet" href="/publications/manuals/grib_api/doxygen.css" type="text/css">
|
||||
<!-- #EndEditable -->
|
||||
<script type="text/javascript" language="JavaScript" src=
|
||||
"/assets/js/ecmwf.js">
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="/assets/css/ecmwf.css" type=
|
||||
"text/css">
|
||||
</head>
|
||||
<body bgcolor="#FFFFF2" text="#000000">
|
||||
<a name="top"></a>
|
||||
|
||||
<table summary="Formatting Table: Page Layout" width="750" border=
|
||||
"0" cellspacing="0" cellpadding="0" bgcolor="#FFFFF2">
|
||||
<tr>
|
||||
<td bgcolor="#CCCE9B" align="left" valign="middle"><a href="/"><img
|
||||
src="/assets/images/text_logo.jpg" border="0" alt="Home page"
|
||||
width="136" height="26" align="middle"></a></td>
|
||||
<td bgcolor="#CCCE9B"> </td>
|
||||
<td bgcolor="#CCCE9B" valign="middle">
|
||||
<form name="search" method="post" action="/cgi-bin/htsearch"><input
|
||||
type="hidden" name="restrict" value="">
|
||||
|
||||
<table summary="Formatting Table: Actions Menu" border="0"
|
||||
cellspacing="4" cellpadding="0" align="right">
|
||||
<tr>
|
||||
<td><a href="/" class="menuitem">Home</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/your/d/room/" class="menuitem">Your Room</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/tools/login/" class="menuitem">Login</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/about/contact/" class="menuitem">Contact</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/about/feedback/" class="menuitem">Feedback</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/about/sitemap/" class="menuitem">Site Map</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/tools/qsearch/" class="menuitem">Search:</a></td>
|
||||
<td valign="bottom"><input type="hidden" name="exclude" value="">
|
||||
<input type="hidden" name="config" value="wmss"> <input type="text"
|
||||
name="words" maxlength="128" size="8" style=
|
||||
"height:20px; width:80px"> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="136" bgcolor="#EEEEDE"><a
|
||||
href="/samples/d/banner/page.html"><img alt="Discover this product"
|
||||
border="0" width="136" height="64" src=
|
||||
"/samples/d/banner/image.jpg"></a></td>
|
||||
<td bgcolor="#EEEEDE"> </td>
|
||||
<td align="right" bgcolor="#EEEEDE">
|
||||
<table summary="Formatting Table: Top Navigation" cellpadding="2"
|
||||
cellspacing="0" border="0" width="100%">
|
||||
<tr bgcolor="#EEEEDE">
|
||||
<td valign="top" bgcolor="#EEEEDE" width="16%"><a href=
|
||||
"/about/"><span class="topnav">About Us</span></a><br>
|
||||
<a class="topnav1" href="/about/overview/">Overview</a><br>
|
||||
<a class="topnav1" href="/about/location/">Getting here</a><br>
|
||||
<a class="topnav1" href="/about/committees/">Committees</a> </td>
|
||||
<td valign="top" bgcolor="#EEEEDE" width="16%"><a href=
|
||||
"/products/"><span class="topnav">Products</span></a><br>
|
||||
<a class="topnav1" href="/products/forecasts/">Forecasts</a><br>
|
||||
<a class="topnav1" href="/products/data/">Order Data</a><br>
|
||||
<a class="topnav1" href="/products/data/software/">Order
|
||||
Software</a><br>
|
||||
</td>
|
||||
<td valign="top" bgcolor="#EEEEDE" width="16%"><a href=
|
||||
"/services/"><span class="topnav">Services</span></a><br>
|
||||
<a class="topnav1" href="/services/computing/">Computing</a><br>
|
||||
<a class="topnav1" href="/services/archive/">Archive</a><br>
|
||||
<a class="topnav1" href="/services/prepifs/">PrepIFS</a><br>
|
||||
</td>
|
||||
<td valign="top" bgcolor="#EEEEDE" width="16%"><a href=
|
||||
"/research/"><span class="topnav">Research</span></a><br>
|
||||
<a class="topnav1" href="/research/ifs/">Modelling</a><br>
|
||||
<a class="topnav1" href="/research/era/">Reanalysis</a><br>
|
||||
<a class="topnav1" href="/research/seasonal/">Seasonal</a><br>
|
||||
</td>
|
||||
<td valign="top" bgcolor="#EEEEDE" width="16%"><a href=
|
||||
"/publications/"><span class="topnav">Publications</span></a><br>
|
||||
<a class="topnav1" href=
|
||||
"/publications/newsletters/">Newsletters</a><br>
|
||||
<a class="topnav1" href="/publications/manuals/">Manuals</a><br>
|
||||
<a class="topnav1" href="/publications/manuals/libraries">Libraries</a><br>
|
||||
</td>
|
||||
<td valign="top" bgcolor="#EEEEDE" width="20%"><a href=
|
||||
"/newsevents/"><span class="topnav">News&Events</span></a><br>
|
||||
<a class="topnav1" href="/newsevents/calendar/">Calendar</a><br>
|
||||
<a class="topnav1" href="/newsevents/employment/">Employment</a><a
|
||||
class="topnav1" href="/newsevents/calendar/"></a><br>
|
||||
<a class="topnav1" href="/newsevents/itt/">Open Tenders</a><br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="left" valign="middle" width="136" bgcolor="#CCCE9B">
|
||||
<!-- #BeginEditable "spare1" --> <!-- #EndEditable --></td>
|
||||
<td bgcolor="#CCCE9B"> </td>
|
||||
<td valign="middle" bgcolor="#CCCE9B">
|
||||
<table summary="Formatting Table: Location header" cellpadding="0"
|
||||
cellspacing="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td align="left"><span class="location">
|
||||
<!-- #BeginEditable "location" -->
|
||||
<!-- #BeginLibraryItem "/PRODUCTS/DATA/LIBRARY/software_top_menu.lbi" --><span
|
||||
class="location"><a href="/">Home</a> >
|
||||
<a href= "/publications/index.html">Publications</a> >
|
||||
<a href= "/publications/manuals/index.html">Manuals</a> >
|
||||
<!-- #EndLibraryItem -->Grib API>
|
||||
<!-- #EndEditable --> </span> </td>
|
||||
<td align="right"><!-- #BeginEditable "topprevnext" -->
|
||||
<!-- #EndEditable --></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="left"><!-- #BeginEditable "spare2" -->
|
||||
<!-- #EndEditable --> </td>
|
||||
<td> </td>
|
||||
<td align="left">
|
||||
<h1><!-- #BeginEditable "heading" -->
|
||||
<!-- #EndEditable --></h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td valign="top" width="136" background=
|
||||
"/assets/images/map_backdrop.jpg"><!-- #BeginEditable "submenu" -->
|
||||
<!-- #BeginLibraryItem "/PRODUCTS/DATA/SOFTWARE/" --><!-- + + + + + NAME = [Data]+ + + + + + + + + -->
|
||||
<table background="/assets/shim.gif" bgcolor="#FFF1B3" border="0"
|
||||
cellpadding="1" cellspacing="0" width="100%" class="submenu">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a class="menuheading" href=
|
||||
"/publications/manuals/grib_api/index.html">GRIB API Manual</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"
|
||||
width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" width="100%">
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/installation.html">Installation</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/namespacegribapi.html">Python</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/namespacegrib__api.html">Fortran 90</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/modules.html">C</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/conversion.html">GRIB Conversion</a></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/gribexkeys/callGribex.html">GRIBEX keys</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/keys.html">Keys</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/grib_examples.html">Examples</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/grib_api/tools.html">Tools</a></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<!-- - - NAME = [archive]- - - - - - - -->
|
||||
<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/products/data/Library/software_rel6.lbi" --><!-- + + + + + NAME = [Data]+ + + + + + + + + -->
|
||||
<!-- #BeginLibraryItem "/PRODUCTS/DATA/LIBRARY/software_menu.lbi" --><!-- + + + + + NAME = [Data]+ + + + + + + + + -->
|
||||
<table background="/assets/shim.gif" bgcolor="#FFF1B3" border="0"
|
||||
cellpadding="1" cellspacing="0" width="100%" class="submenu">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a class="menuheading" href=
|
||||
"/products/data/software/index.html">Software</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"
|
||||
width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" width="100%">
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/bufr.html">BUFR</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/crex.html">CREX</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/grib.html">GRIBEX</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/grib_api.html">GRIB API</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/interpolation.html">Interpolation</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/magics.html">Magics</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/metview.html">Metview</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/sms.html">SMS</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/forms/ECMWF_software_ordering_form.pdf">Ordering
|
||||
forms</a> <img src="/products/data/archive/forms/pdf.gif" width=
|
||||
"20" height="20"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/forms/ECMWF_software_licence.pdf">Software
|
||||
licence<img src="/products/data/archive/forms/pdf.gif" width="20"
|
||||
height="20" border="0"></a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/products/data/software/payment.html">Payment rules</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<!-- - - NAME = [archive]- - - - - - - -->
|
||||
<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/products/data/Library/software_rel6.lbi" --><!-- + + + + + NAME = [Data]+ + + + + + + + + -->
|
||||
|
||||
|
||||
<table background="/assets/shim.gif" bgcolor="#CCCE9B" border="0"
|
||||
cellpadding="1" cellspacing="0" width="100%" class="submenu">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span><a class="menuheading" href=
|
||||
"/publications/manuals/index.html">Related Manuals</a></span></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"
|
||||
width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
<table bgcolor="#ffffff" width="100%">
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/libraries/gribex/index.html">GRIBEX
|
||||
manual</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/libraries/interpolation/index.html">Interpolation
|
||||
manual</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a class="menuitem" href=
|
||||
"/publications/manuals/metview/index.html">Metview Manuals</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<p><a class="menuitem" href=
|
||||
"/publications/manuals/magics/index.html">Magics Manuals</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<!-- - - NAME = [data]- - - - - - - --> <!-- #EndLibraryItem -->
|
||||
<!-- #EndEditable --> <br>
|
||||
</td>
|
||||
<td> </td>
|
||||
<td valign="top">
|
||||
|
||||
|
||||
<!-- #BeginEditable "content" ****** -->
|
||||
<title>ecCodes Manual</title>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
cd ../tools
|
||||
./make_dox.ksh
|
||||
cd ../doxygen
|
||||
p4 edit ../html/*
|
||||
|
||||
rm -f ../html/*
|
||||
touch ../html/Makefile.am
|
||||
doxygen grib_api_wiz.cfg
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
#!/bin/sh
|
||||
|
||||
./prepare_pydocs.pl < ../python/eccode.py > eccode.py
|
||||
set -e
|
||||
./prepare_pydocs.pl < ../python/gribapi.py > gribapi.py
|
||||
|
||||
cd ../tools
|
||||
./make_dox.ksh
|
||||
cd ../doxygen
|
||||
p4 edit ../html_web/*
|
||||
|
||||
rm -f ../html_web/*
|
||||
doxygen grib_api_site.cfg
|
||||
|
||||
DOXYGEN_EXE=doxygen
|
||||
# DOXYGEN_EXE=/tmp/doxygen-1.5.3/bin/doxygen
|
||||
$DOXYGEN_EXE grib_api_site.cfg
|
||||
|
||||
cp doxygen.css ../html_web/
|
||||
./build_gribex.ksh gribex ../html_web/gribexkeys
|
||||
./make_site.ksh
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
<td><a href="#top"><img src="/assets/icons/up.gif" alt=
|
||||
"Top of page" border="0" width="18" height="18"></a></td>
|
||||
<td><span class="documentdate"><!-- #BeginEditable "version" -->
|
||||
<!-- #BeginDate format:Ge1 -->25.02.2011<!-- #EndDate -->
|
||||
<!-- #EndEditable --></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -36,6 +36,7 @@ list( APPEND tests
|
|||
bufr_clone
|
||||
bufr_expanded
|
||||
bufr_get_keys
|
||||
bufr_get_string_array
|
||||
bufr_keys_iterator
|
||||
bufr_read_header
|
||||
bufr_read_scatterometer
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
!
|
||||
!Copyright 2005-2016 ECMWF.
|
||||
!
|
||||
! This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
!which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
!
|
||||
! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
!
|
||||
!
|
||||
! FOTRAN 90 Implementation: bufr_get_string_array
|
||||
!
|
||||
! Description: how to get an array of strings from a BUFR message.
|
||||
|
||||
program bufr_get_string_array
|
||||
use eccodes
|
||||
implicit none
|
||||
integer :: ifile
|
||||
integer :: iret,i,n
|
||||
integer :: ibufr
|
||||
integer :: strsize
|
||||
integer, parameter :: max_strsize = 20
|
||||
character(len=max_strsize) , dimension(:),allocatable :: stationOrSiteName
|
||||
|
||||
call codes_open_file(ifile,'../../data/bufr/pgps_110.bufr','r')
|
||||
|
||||
call codes_bufr_new_from_file(ifile,ibufr,iret)
|
||||
|
||||
|
||||
! unpack the data values
|
||||
call codes_set(ibufr,'unpack',1)
|
||||
|
||||
! get the width of the strings which is te same for all of them
|
||||
call codes_get(ibufr,'stationOrSiteName->width',strsize)
|
||||
|
||||
! the width is given in bits
|
||||
strsize=strsize/8
|
||||
|
||||
! max_strsize has to be set to a value >= to the size of the strings that we are getting
|
||||
! back from the call to codes_get_string_array
|
||||
if (strsize > max_strsize) then
|
||||
print *,'stationOrSiteName array dimension is ',max_strsize,' and should be ',strsize
|
||||
call exit(1)
|
||||
end if
|
||||
|
||||
! allocating the array of strings to be passed to codes_get_string_array is mandatory
|
||||
call codes_get_size(ibufr,'stationOrSiteName',n)
|
||||
allocate(stationOrSiteName(n))
|
||||
|
||||
! passing an array of strings stationOrSiteName which must be allocated beforehand
|
||||
call codes_get_string_array(ibufr,'stationOrSiteName',stationOrSiteName)
|
||||
do i=1,n
|
||||
write(*,'(A)')trim(stationOrSiteName(i))
|
||||
end do
|
||||
|
||||
!remember to deallocate
|
||||
deallocate(stationOrSiteName)
|
||||
|
||||
! release memory associated with bufr handle
|
||||
! ibufr won't be accessible any more from codes_release on
|
||||
call codes_release(ibufr)
|
||||
|
||||
! close file
|
||||
call codes_close_file(ifile)
|
||||
|
||||
|
||||
end program bufr_get_string_array
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
#!/bin/sh
|
||||
# Copyright 2005-2016 ECMWF.
|
||||
#
|
||||
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
#
|
||||
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
|
||||
. ./include.sh
|
||||
set -x
|
||||
#Define a common label for all the tmp files
|
||||
label="bufr_get_string_array_test_f"
|
||||
|
||||
#Prepare tmp file
|
||||
fTmp=${label}.tmp.txt
|
||||
rm -f $fTmp | true
|
||||
|
||||
#-----------------------------------------------------
|
||||
# Test get string array from a BUFR
|
||||
#----------------------------------------------------
|
||||
|
||||
fRef=${data_dir}/bufr/get_string_array.ref
|
||||
|
||||
REDIRECT=/dev/null
|
||||
|
||||
#Write the values into a file and compare with reference
|
||||
${examples_dir}/eccodes_f_bufr_get_string_array $f > $fTmp
|
||||
|
||||
#We compare output to the reference by ignoring the whitespaces
|
||||
diff -w $fRef $fTmp
|
||||
|
||||
#cat $fRes
|
||||
|
||||
#Clean up
|
||||
rm -f ${fTmp} | true
|
||||
|
||||
|
||||
|
|
@ -96,8 +96,8 @@
|
|||
codes_get_real4, &
|
||||
codes_get_real8, &
|
||||
codes_get_string, &
|
||||
codes_get_int_array, &
|
||||
codes_get_byte_array, &
|
||||
codes_get_int_array, &
|
||||
codes_get_real4_array, &
|
||||
codes_get_real8_array
|
||||
end interface codes_get
|
||||
|
|
|
@ -100,8 +100,8 @@
|
|||
codes_get_real4, &
|
||||
codes_get_real8, &
|
||||
codes_get_string, &
|
||||
codes_get_int_array, &
|
||||
codes_get_byte_array, &
|
||||
codes_get_int_array, &
|
||||
codes_get_real4_array, &
|
||||
codes_get_real8_array
|
||||
end interface codes_get
|
||||
|
|
|
@ -828,6 +828,43 @@ subroutine codes_get_string ( gribid, key, value, status )
|
|||
call grib_get_string ( gribid, key, value, status )
|
||||
end subroutine codes_get_string
|
||||
|
||||
subroutine codes_get_string_array ( gribid, key, value, status )
|
||||
integer(kind=kindOfInt), intent(in) :: gribid
|
||||
character(len=*), intent(in) :: key
|
||||
character(len=*), dimension(:),allocatable,intent(inout) :: value
|
||||
integer(kind=kindOfInt),optional, intent(out) :: status
|
||||
|
||||
character :: cvalue(size(value)*len(value(0)))
|
||||
integer(kind=kindOfInt) :: iret
|
||||
integer(kind=kindOfInt) :: nb_values
|
||||
integer(kind=kindOfInt) :: slen
|
||||
integer(kind=kindOfInt) :: i,s,j
|
||||
|
||||
if (allocated(value) .eqv. .false.) then
|
||||
iret=CODES_NULL_POINTER
|
||||
if (present(status)) then
|
||||
status = iret
|
||||
else
|
||||
call grib_check(iret,'grib_get',key)
|
||||
endif
|
||||
end if
|
||||
|
||||
nb_values=size(value)
|
||||
slen=len(value(0))
|
||||
iret=grib_f_get_string_array ( gribid, key, cvalue , nb_values, slen )
|
||||
value=transfer(cvalue,value)
|
||||
|
||||
if (iret /= 0) then
|
||||
call grib_f_write_on_fail(gribid)
|
||||
endif
|
||||
if (present(status)) then
|
||||
status = iret
|
||||
else
|
||||
call grib_check(iret,'grib_get',key)
|
||||
endif
|
||||
|
||||
end subroutine codes_get_string_array
|
||||
|
||||
! Note: This function supports the allocatable array attribute
|
||||
! -------------------------------------------------------------
|
||||
subroutine codes_get_int_array ( gribid, key, value, status )
|
||||
|
@ -861,9 +898,9 @@ subroutine codes_get_int_array ( gribid, key, value, status )
|
|||
value(i)=value(1)
|
||||
enddo
|
||||
endif
|
||||
if (iret /= 0) then
|
||||
call grib_f_write_on_fail(gribid)
|
||||
endif
|
||||
if (iret /= 0) then
|
||||
call grib_f_write_on_fail(gribid)
|
||||
endif
|
||||
if (present(status)) then
|
||||
status = iret
|
||||
else
|
||||
|
@ -926,7 +963,6 @@ subroutine codes_get_byte_array ( gribid, key, value, length, status )
|
|||
integer(kind=kindOfInt), optional, intent(out) :: status
|
||||
integer(kind=kindOfInt) :: iret
|
||||
integer(kind=kindOfInt) :: nb_values
|
||||
character :: bytes(size(value))
|
||||
|
||||
call grib_get_byte_array ( gribid, key, value, length, status )
|
||||
end subroutine codes_get_byte_array
|
||||
|
@ -1144,7 +1180,6 @@ subroutine codes_set_byte_array ( gribid, key, value, length, status )
|
|||
integer(kind=kindOfInt), optional, intent(out) :: status
|
||||
integer(kind=kindOfInt) :: iret
|
||||
integer(kind=kindOfInt) :: nb_values
|
||||
character :: bytes(size(value))
|
||||
|
||||
call grib_set_byte_array ( gribid, key, value, length, status )
|
||||
end subroutine codes_set_byte_array
|
||||
|
|
|
@ -32,7 +32,8 @@ integer, external :: grib_f_get_int, grib_f_get_long,grib_f_get_int_array, &
|
|||
grib_f_get_real8, grib_f_get_real8_array, &
|
||||
grib_f_get_real4_element, grib_f_get_real8_element, &
|
||||
grib_f_get_real4_elements, grib_f_get_real8_elements, &
|
||||
grib_f_get_string,grib_f_is_missing,grib_f_is_defined
|
||||
grib_f_get_string,grib_f_get_string_array, &
|
||||
grib_f_is_missing,grib_f_is_defined
|
||||
integer, external :: grib_f_new_from_index, &
|
||||
grib_f_index_new_from_file, &
|
||||
grib_f_index_add_file, &
|
||||
|
|
|
@ -162,6 +162,16 @@ static void czstr_to_fortran(char* str,int len)
|
|||
*p=' ';
|
||||
}
|
||||
|
||||
/*static void czstr_to_fortran_replace0(char* str,int len)
|
||||
{
|
||||
char *p,*end;
|
||||
p=str; end=str+len-1;
|
||||
while (p != end) {
|
||||
if (*p=='\0') *p=' ';
|
||||
p++;
|
||||
}
|
||||
}*/
|
||||
|
||||
static void fort_char_clean(char* str,int len)
|
||||
{
|
||||
char *p,*end;
|
||||
|
@ -2697,6 +2707,43 @@ int grib_f_set_real8_array(int* gid, char* key, double *val, int* size, int len)
|
|||
return grib_f_set_real8_array_( gid, key, val, size, len);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
int grib_f_get_string_array_(int* gid, char* key, char* val,int* nvals,int* slen,int len)
|
||||
{
|
||||
grib_handle *h = get_handle(*gid);
|
||||
int err = GRIB_SUCCESS;
|
||||
size_t i;
|
||||
char buf[1024];
|
||||
size_t lsize = *nvals;
|
||||
char** cval=0;
|
||||
char* p=val;
|
||||
|
||||
if(!h) return GRIB_INVALID_GRIB;
|
||||
|
||||
cval=(char**)grib_context_malloc_clear(h->context,sizeof(char*)*lsize);
|
||||
err = grib_get_string_array(h, cast_char(buf,key,len), cval, &lsize);
|
||||
if (err) return err;
|
||||
|
||||
if (strlen(cval[0])>*slen) err=GRIB_ARRAY_TOO_SMALL;
|
||||
|
||||
for (i=0;i<lsize;i++) {
|
||||
strcpy(p,cval[i]);
|
||||
czstr_to_fortran(p,*slen);
|
||||
p+= *slen;
|
||||
}
|
||||
grib_context_free(h->context,cval);
|
||||
/*remember to deallocate each string*/
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
int grib_f_get_string_array__(int* gid, char* key, char* val,int* nvals,int* slen, int len){
|
||||
return grib_f_get_string_array_( gid, key, val,nvals,slen,len);
|
||||
}
|
||||
int grib_f_get_string_array(int* gid, char* key, char* val,int* nvals,int* slen, int len){
|
||||
return grib_f_get_string_array_( gid, key, val, nvals, slen, len);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
int grib_f_get_string_(int* gid, char* key, char* val,int len, int len2){
|
||||
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
# Copyright 2005-2016 ECMWF.
|
||||
#
|
||||
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
#
|
||||
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
#
|
||||
constant GRIBEXSection1Problem = 120 - section1Length ;
|
||||
|
||||
template mars_labeling "grib1/mars_labeling.def";
|
||||
|
||||
unsigned[1] yearOfReference = yearOfCentury : dump;
|
||||
unsigned[1] monthOfReference = month : dump;
|
||||
unsigned[1] dayOfReference = day : dump;
|
||||
unsigned[1] hourOfReference = hour : dump;
|
||||
unsigned[1] minuteOfReference = minute : dump;
|
||||
unsigned[1] centuryOfReference = centuryOfReferenceTimeOfData : dump;
|
||||
transient secondsOfReference = 0 ;
|
||||
|
||||
unsigned[1] numberOfForcasts=0 : dump;
|
||||
unsigned[1] numberOfAnalysis=1 : dump;
|
||||
|
||||
if (numberOfForcasts) {
|
||||
unsigned[3] forecastSteps[numberOfForcasts] : dump;
|
||||
}
|
||||
if (numberOfAnalysis) {
|
||||
signed[3] analysisOffsets[numberOfAnalysis] : dump;
|
||||
}
|
||||
|
||||
padto padding_local_35(offsetSection1 + 120);
|
||||
|
||||
meta dateOfReference g1date(centuryOfReference,yearOfReference,monthOfReference,dayOfReference) : dump;
|
||||
meta timeOfReference time(hourOfReference,minuteOfReference,secondsOfReference) : dump;
|
||||
|
||||
if (indicatorOfTypeOfLevel==160) {
|
||||
alias mars.levelist = level;
|
||||
}
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
# Copyright 2005-2016 ECMWF.
|
||||
#
|
||||
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
#
|
||||
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
#
|
||||
# START grib1::section
|
||||
# SECTION 4, Binary data section
|
||||
# Length of section
|
||||
# (octets)
|
||||
position offsetSection4;
|
||||
|
||||
# Due to a trick done by GRIBEX to support large GRIBs, we need a special treatment
|
||||
# of the message length and of the section4 lenth, so instead of
|
||||
# length[3] section4Length ;
|
||||
# we get:
|
||||
g1_section4_length[3] section4Length(totalLength);
|
||||
|
||||
meta section4Pointer section_pointer(offsetSection4,section4Length,4);
|
||||
|
||||
g1_half_byte_codeflag halfByte;
|
||||
flags[1] dataFlag "grib1/11.table" = 0 : read_only;
|
||||
signed[2] binaryScaleFactor = 0 : read_only,dump;
|
||||
ibmfloat referenceValue : read_only,dump;
|
||||
unsigned[1] bitsPerValue : dump ;
|
||||
alias numberOfBitsContainingEachPackedValue = bitsPerValue;
|
||||
|
||||
meta referenceValueError reference_value_error(referenceValue,ibm);
|
||||
|
||||
flagbit sphericalHarmonics(dataFlag,7) : dump;
|
||||
flagbit complexPacking(dataFlag,6) : dump;
|
||||
flagbit integerPointValues(dataFlag,5) : dump;
|
||||
flagbit additionalFlagPresent(dataFlag,4) : edition_specific,dump;
|
||||
|
||||
transient hideThis=0;
|
||||
|
||||
concept packingType {
|
||||
#set uses the last one
|
||||
#get returns the first match
|
||||
"grid_simple" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
"grid_ieee" = { sphericalHarmonics = 0; complexPacking = 0;
|
||||
integerPointValues=1; additionalFlagPresent=1;}
|
||||
"spectral_complex" = { sphericalHarmonics = 1; complexPacking = 1;
|
||||
additionalFlagPresent = 0; }
|
||||
"spectral_simple" = { sphericalHarmonics = 1; complexPacking = 0; additionalFlagPresent = 0;
|
||||
representationMode=1;}
|
||||
"spectral_ieee" = { sphericalHarmonics = 1; complexPacking = 1;
|
||||
additionalFlagPresent = 0; hideThis=1; }
|
||||
"grid_simple_matrix" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 1;}
|
||||
"grid_second_order" = { sphericalHarmonics = 0; complexPacking = 1; }
|
||||
"grid_complex" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
"grid_complex_spatial_differencing" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
"grid_jpeg" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
"grid_png" = { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
"grid_simple_log_preprocessing"= { sphericalHarmonics = 0; complexPacking = 0; additionalFlagPresent = 0;}
|
||||
} : dump;
|
||||
|
||||
|
||||
alias ls.packingType=packingType;
|
||||
alias typeOfPacking=packingType;
|
||||
|
||||
if( binaryScaleFactor == -32767) {
|
||||
constant dataRepresentationTemplateNumber = 0;
|
||||
constant bitMapIndicator = 0;
|
||||
# For grib 1 -> 2
|
||||
position offsetBeforeData;
|
||||
transient numberOfCodedValues=numberOfPoints;
|
||||
meta values data_dummy_field(
|
||||
section4Length,
|
||||
offsetBeforeData,
|
||||
offsetSection4,
|
||||
unitsFactor,
|
||||
unitsBias,
|
||||
changingPrecision,
|
||||
numberOfCodedValues,
|
||||
bitsPerValue,
|
||||
referenceValue,
|
||||
binaryScaleFactor,
|
||||
decimalScaleFactor,
|
||||
halfByte,
|
||||
packingType,
|
||||
grid_ieee,precision,
|
||||
missingValue,
|
||||
numberOfPoints,
|
||||
bitmap
|
||||
) : dump;
|
||||
} else {
|
||||
template dataValues "grib1/data.[packingType:s].def";
|
||||
}
|
||||
|
||||
position offsetAfterData;
|
||||
|
||||
transient dataLength=(offsetAfterData-offsetBeforeData)/8;
|
||||
|
||||
if (bitmapPresent==1) {
|
||||
alias numberOfEffectiveValues=numberOfDataPoints;
|
||||
} else {
|
||||
alias numberOfEffectiveValues=numberOfCodedValues;
|
||||
}
|
||||
|
||||
_if (sphericalHarmonics) {
|
||||
alias numberOfEffectiveValues=numberOfValues;
|
||||
}
|
||||
|
||||
#meta setDecimalPrecision suppressed(decimalPrecision,changeDecimalPrecision);
|
||||
meta changeDecimalPrecision decimal_precision(bitsPerValue,decimalScaleFactor,changingPrecision,values) : edition_specific;
|
||||
meta decimalPrecision decimal_precision(bitsPerValue,decimalScaleFactor,changingPrecision) : edition_specific;
|
||||
alias setDecimalPrecision=changeDecimalPrecision;
|
||||
|
||||
meta bitsPerValueAndRepack bits_per_value(values,bitsPerValue) : edition_specific;
|
||||
alias setBitsPerValue=bitsPerValueAndRepack;
|
||||
|
||||
meta scaleValuesBy scale_values(values,missingValue) : edition_specific;
|
||||
meta offsetValuesBy offset_values(values,missingValue) : edition_specific;
|
||||
|
||||
concept gridType {
|
||||
#set uses the last one
|
||||
#get returns the first match
|
||||
"regular_ll" = {dataRepresentationType = 0; sphericalHarmonics = 0; PLPresent=0;}
|
||||
"reduced_ll" = {dataRepresentationType = 0; sphericalHarmonics = 0; PLPresent=1; Ni=missing(); }
|
||||
"mercator" = {dataRepresentationType = 1; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"lambert" = {dataRepresentationType = 3; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"polar_stereographic" = {dataRepresentationType = 5; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"UTM" = {dataRepresentationType = 6; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"simple_polyconic" = {dataRepresentationType = 7; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"albers" = {dataRepresentationType = 8; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"miller" = {dataRepresentationType = 8; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"rotated_ll" = {dataRepresentationType = 10; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"stretched_ll" = {dataRepresentationType = 20; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"stretched_rotated_ll" = {dataRepresentationType = 30; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"regular_gg" = {dataRepresentationType = 4; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"rotated_gg" = {dataRepresentationType = 14; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"stretched_gg" = {dataRepresentationType = 24; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"stretched_rotated_gg" = {dataRepresentationType = 34; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"reduced_gg" = {dataRepresentationType = 4; sphericalHarmonics = 0;
|
||||
PLPresent=1; numberOfPointsAlongAParallel = missing();
|
||||
iDirectionIncrement = missing(); ijDirectionIncrementGiven=0;}
|
||||
"sh" = {dataRepresentationType = 50; sphericalHarmonics = 1; PLPresent=0; }
|
||||
"rotated_sh" = {dataRepresentationType = 60; sphericalHarmonics = 1; PLPresent=0; }
|
||||
"stretched_sh" = {dataRepresentationType = 70; sphericalHarmonics = 1; PLPresent=0; }
|
||||
"stretched_rotated_sh" = {dataRepresentationType = 80; sphericalHarmonics = 1; PLPresent=0; }
|
||||
"space_view" = {dataRepresentationType = 90; sphericalHarmonics = 0; PLPresent=0; }
|
||||
"unknown" = {PLPresent=0;}
|
||||
"unknown_PLPresent" = {PLPresent=1;}
|
||||
} : dump;
|
||||
|
||||
alias ls.gridType=gridType;
|
||||
alias geography.gridType=gridType;
|
||||
alias typeOfGrid=gridType;
|
||||
|
||||
meta getNumberOfValues size(values) : edition_specific,dump ;
|
||||
|
||||
padtoeven padding_sec4_1(offsetSection4,section4Length) ;
|
||||
|
||||
meta md5Section4 md5(offsetSection4,section4Length);
|
||||
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
if WITH_MARS_TESTS
|
||||
TESTS = ls.sh
|
||||
|
||||
noinst_PROGRAMS =
|
||||
|
||||
LDADD = $(top_builddir)/src/libgrib_api.a $(EMOS_LIB)
|
||||
|
||||
INCLUDES = -I$(top_builddir)/src
|
||||
|
||||
EXTRA_DIST = $(TESTS)
|
||||
|
||||
endif
|
|
@ -1,50 +0,0 @@
|
|||
# Copyright 2005-2016 ECMWF.
|
||||
#
|
||||
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
#
|
||||
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
|
||||
set -ea
|
||||
|
||||
echo
|
||||
echo "TEST: $0"
|
||||
|
||||
data_dir=""
|
||||
|
||||
# save current working dir
|
||||
save=`pwd`
|
||||
|
||||
if [ -z "${data_dir}" ]
|
||||
then
|
||||
cd ../
|
||||
cpath=`pwd`
|
||||
ECCODES_DEFINITION_PATH=$cpath/definitions
|
||||
export ECCODES_DEFINITION_PATH
|
||||
ECCODES_SAMPLES_PATH=$cpath/samples
|
||||
export ECCODES_SAMPLES_PATH
|
||||
tools_dir=$cpath/tools/
|
||||
tigge_dir=$cpath/tigge/
|
||||
data_dir=$cpath/data
|
||||
test_dir=$cpath/tests
|
||||
def_dir=$cpath/definitions
|
||||
else
|
||||
tools_dir=""
|
||||
tigge_dir=""
|
||||
fi
|
||||
|
||||
if [ -z "${GRIB_API_INCLUDE}" ]
|
||||
then
|
||||
GRIB_API_INCLUDE=`pwd`/src
|
||||
fi
|
||||
|
||||
if [ -z "${GRIB_API_LIB}" ]
|
||||
then
|
||||
GRIB_API_LIB=`pwd`/src
|
||||
fi
|
||||
|
||||
# go back to current working dir
|
||||
cd $save
|
||||
|
||||
set -u
|
|
@ -1,60 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 2005-2016 ECMWF.
|
||||
#
|
||||
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||
#
|
||||
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||
|
||||
. ./include.sh
|
||||
|
||||
rm -f log | true
|
||||
workdir=`pwd`
|
||||
|
||||
cd ${data_dir}
|
||||
infile=regular_gaussian_model_level.grib1
|
||||
|
||||
${tools_dir}grib_ls -P count $infile > log
|
||||
${tools_dir}grib_ls -p count,step $infile >> log
|
||||
${tools_dir}grib_ls $infile >> log
|
||||
${tools_dir}grib_ls -l 0,0,1 $infile >> log
|
||||
${tools_dir}grib_get -l 0,0,1 $infile >> log
|
||||
${tools_dir}grib_get -p count,step $infile >> log
|
||||
${tools_dir}grib_get -P count $infile >> log
|
||||
|
||||
files=" reduced_gaussian_lsm.grib1
|
||||
reduced_gaussian_model_level.grib1
|
||||
reduced_gaussian_model_level.grib2
|
||||
reduced_gaussian_pressure_level.grib1
|
||||
reduced_gaussian_pressure_level.grib2
|
||||
reduced_gaussian_pressure_level_constant.grib1
|
||||
reduced_gaussian_pressure_level_constant.grib2
|
||||
reduced_gaussian_sub_area.grib1
|
||||
reduced_gaussian_sub_area.grib2
|
||||
reduced_gaussian_surface.grib1
|
||||
reduced_gaussian_surface.grib2
|
||||
reduced_latlon_surface.grib1
|
||||
reduced_latlon_surface.grib2
|
||||
regular_gaussian_model_level.grib1
|
||||
regular_gaussian_model_level.grib2
|
||||
regular_gaussian_pressure_level.grib1
|
||||
regular_gaussian_pressure_level.grib2
|
||||
regular_gaussian_pressure_level_constant.grib1
|
||||
regular_gaussian_pressure_level_constant.grib2
|
||||
regular_gaussian_surface.grib1
|
||||
regular_gaussian_surface.grib2
|
||||
regular_latlon_surface.grib1
|
||||
regular_latlon_surface.grib2
|
||||
"
|
||||
|
||||
for file in $files
|
||||
do
|
||||
echo $file >> log
|
||||
${tools_dir}grib_ls -l 40,28 $file | grep index | awk '{print $4;}' >> log
|
||||
done
|
||||
|
||||
diff log ls.log
|
||||
rm -f log
|
||||
|
||||
cd $workdir
|
|
@ -490,6 +490,7 @@ static grib_darray* decode_double_array(grib_context* c,unsigned char* data,long
|
|||
} else {
|
||||
dval=localReference*modifiedFactor;
|
||||
}
|
||||
grib_context_log(c, GRIB_LOG_DEBUG," modifiedWidth=%ld lval=%ld dval=%g", modifiedWidth,lval,dval);
|
||||
grib_darray_push(c,ret,dval);
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,6 @@ static void init_class(grib_iterator_class* c)
|
|||
|
||||
static int next(grib_iterator* i, double *lat, double *lon, double *val)
|
||||
{
|
||||
|
||||
grib_iterator_lambert_conformal* self = (grib_iterator_lambert_conformal*)i;
|
||||
|
||||
if((long)i->e >= (long)(i->nv-1))
|
||||
|
@ -114,161 +113,161 @@ static int next(grib_iterator* i, double *lat, double *lon, double *val)
|
|||
|
||||
static int init(grib_iterator* iter,grib_handle* h,grib_arguments* args)
|
||||
{
|
||||
int i, j, ret=0;
|
||||
double *lats, *lons; /* the lat/lon arrays to be populated */
|
||||
long nx,ny,iScansNegatively,jScansPositively,jPointsAreConsecutive,alternativeRowScanning;
|
||||
double LoVInDegrees,LaDInDegrees,Latin1InDegrees,Latin2InDegrees,latFirstInDegrees,
|
||||
lonFirstInDegrees, Dx, Dy, radius=0;
|
||||
double latFirstInRadians, lonFirstInRadians, LoVInRadians, Latin1InRadians, Latin2InRadians,
|
||||
LaDInRadians, lonDiff, lonDeg, latDeg;
|
||||
double f, n, rho, rho0, angle, x0, y0, x, y, tmp, tmp2;
|
||||
int i, j, ret=0;
|
||||
double *lats, *lons; /* the lat/lon arrays to be populated */
|
||||
long nx,ny,iScansNegatively,jScansPositively,jPointsAreConsecutive,alternativeRowScanning;
|
||||
double LoVInDegrees,LaDInDegrees,Latin1InDegrees,Latin2InDegrees,latFirstInDegrees,
|
||||
lonFirstInDegrees, Dx, Dy, radius=0;
|
||||
double latFirstInRadians, lonFirstInRadians, LoVInRadians, Latin1InRadians, Latin2InRadians,
|
||||
LaDInRadians, lonDiff, lonDeg, latDeg;
|
||||
double f, n, rho, rho0, angle, x0, y0, x, y, tmp, tmp2;
|
||||
|
||||
grib_iterator_lambert_conformal* self = (grib_iterator_lambert_conformal*)iter;
|
||||
grib_iterator_lambert_conformal* self = (grib_iterator_lambert_conformal*)iter;
|
||||
|
||||
const char* sradius = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* snx = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sny = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLoVInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLaDInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLatin1InDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLatin2InDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* slatFirstInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* slonFirstInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
/* Dx and Dy are in Metres */
|
||||
const char* sDx = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sDy = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* siScansNegatively = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sjScansPositively = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sjPointsAreConsecutive = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* salternativeRowScanning = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sradius = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* snx = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sny = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLoVInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLaDInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLatin1InDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sLatin2InDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* slatFirstInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* slonFirstInDegrees = grib_arguments_get_name(h,args,self->carg++);
|
||||
/* Dx and Dy are in Metres */
|
||||
const char* sDx = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sDy = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* siScansNegatively = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sjScansPositively = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* sjPointsAreConsecutive = grib_arguments_get_name(h,args,self->carg++);
|
||||
const char* salternativeRowScanning = grib_arguments_get_name(h,args,self->carg++);
|
||||
|
||||
if((ret = grib_get_long_internal(h, snx,&nx)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sny,&ny)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, snx,&nx)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sny,&ny)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
|
||||
if (iter->nv!=nx*ny) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR,"Wrong number of points (%ld!=%ldx%ld)",iter->nv,nx,ny);
|
||||
return GRIB_WRONG_GRID;
|
||||
}
|
||||
if((ret = grib_get_double_internal(h, sradius,&radius)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLoVInDegrees, &LoVInDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLaDInDegrees, &LaDInDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLatin1InDegrees, &Latin1InDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLatin2InDegrees, &Latin2InDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, slatFirstInDegrees,&latFirstInDegrees)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, slonFirstInDegrees,&lonFirstInDegrees)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sDx,&Dx)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sDy,&Dy)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sjPointsAreConsecutive,&jPointsAreConsecutive)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sjScansPositively,&jScansPositively)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, siScansNegatively,&iScansNegatively)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, salternativeRowScanning,&alternativeRowScanning)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if (iter->nv!=nx*ny) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR,"Wrong number of points (%ld!=%ldx%ld)",iter->nv,nx,ny);
|
||||
return GRIB_WRONG_GRID;
|
||||
}
|
||||
if((ret = grib_get_double_internal(h, sradius,&radius)) != GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLoVInDegrees, &LoVInDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLaDInDegrees, &LaDInDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLatin1InDegrees, &Latin1InDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sLatin2InDegrees, &Latin2InDegrees))!=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, slatFirstInDegrees,&latFirstInDegrees)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, slonFirstInDegrees,&lonFirstInDegrees)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sDx,&Dx)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_double_internal(h, sDy,&Dy)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sjPointsAreConsecutive,&jPointsAreConsecutive)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, sjScansPositively,&jScansPositively)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, siScansNegatively,&iScansNegatively)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
if((ret = grib_get_long_internal(h, salternativeRowScanning,&alternativeRowScanning)) !=GRIB_SUCCESS)
|
||||
return ret;
|
||||
|
||||
/* See Wolfram MathWorld: http://mathworld.wolfram.com/LambertConformalConicProjection.html */
|
||||
latFirstInRadians = latFirstInDegrees * DEG2RAD;
|
||||
lonFirstInRadians = lonFirstInDegrees * DEG2RAD;
|
||||
Latin1InRadians = Latin1InDegrees * DEG2RAD;
|
||||
Latin2InRadians = Latin2InDegrees * DEG2RAD;
|
||||
LaDInRadians = LaDInDegrees * DEG2RAD;
|
||||
LoVInRadians = LoVInDegrees * DEG2RAD;
|
||||
/* See Wolfram MathWorld: http://mathworld.wolfram.com/LambertConformalConicProjection.html */
|
||||
latFirstInRadians = latFirstInDegrees * DEG2RAD;
|
||||
lonFirstInRadians = lonFirstInDegrees * DEG2RAD;
|
||||
Latin1InRadians = Latin1InDegrees * DEG2RAD;
|
||||
Latin2InRadians = Latin2InDegrees * DEG2RAD;
|
||||
LaDInRadians = LaDInDegrees * DEG2RAD;
|
||||
LoVInRadians = LoVInDegrees * DEG2RAD;
|
||||
|
||||
if ( fabs(Latin1InRadians - Latin2InRadians) < 1E-09 ) {
|
||||
n = sin(Latin1InRadians);
|
||||
}
|
||||
else {
|
||||
n = log(cos(Latin1InRadians)/cos(Latin2InRadians)) /
|
||||
log(tan(M_PI_4 + Latin2InRadians/2.0) / tan(M_PI_4 + Latin1InRadians/2.0));
|
||||
}
|
||||
if ( fabs(Latin1InRadians - Latin2InRadians) < 1E-09 ) {
|
||||
n = sin(Latin1InRadians);
|
||||
}
|
||||
else {
|
||||
n = log(cos(Latin1InRadians)/cos(Latin2InRadians)) /
|
||||
log(tan(M_PI_4 + Latin2InRadians/2.0) / tan(M_PI_4 + Latin1InRadians/2.0));
|
||||
}
|
||||
|
||||
f = (cos(Latin1InRadians) * pow(tan(M_PI_4 + Latin1InRadians/2.0), n)) / n;
|
||||
rho = radius * f * pow(tan(M_PI_4 + latFirstInRadians/2.0), -n);
|
||||
rho0 = radius * f * pow(tan(M_PI_4 + LaDInRadians/2.0), -n);
|
||||
if ( n < 0 ) /* adjustment for southern hemisphere */
|
||||
rho0 = -rho0;
|
||||
lonDiff = lonFirstInRadians - LoVInRadians;
|
||||
f = (cos(Latin1InRadians) * pow(tan(M_PI_4 + Latin1InRadians/2.0), n)) / n;
|
||||
rho = radius * f * pow(tan(M_PI_4 + latFirstInRadians/2.0), -n);
|
||||
rho0 = radius * f * pow(tan(M_PI_4 + LaDInRadians/2.0), -n);
|
||||
if ( n < 0 ) /* adjustment for southern hemisphere */
|
||||
rho0 = -rho0;
|
||||
lonDiff = lonFirstInRadians - LoVInRadians;
|
||||
|
||||
/* Adjust longitude to range -180 to 180 */
|
||||
if (lonDiff > M_PI) lonDiff -= 2*M_PI;
|
||||
if (lonDiff < -M_PI) lonDiff += 2*M_PI;
|
||||
angle = n * lonDiff;
|
||||
x0 = rho * sin(angle);
|
||||
y0 = rho0 - rho * cos(angle);
|
||||
Dx = iScansNegatively == 0 ? Dx : -Dx;
|
||||
Dy = jScansPositively == 1 ? Dy : -Dy;
|
||||
/* Adjust longitude to range -180 to 180 */
|
||||
if (lonDiff > M_PI) lonDiff -= 2*M_PI;
|
||||
if (lonDiff < -M_PI) lonDiff += 2*M_PI;
|
||||
angle = n * lonDiff;
|
||||
x0 = rho * sin(angle);
|
||||
y0 = rho0 - rho * cos(angle);
|
||||
Dx = iScansNegatively == 0 ? Dx : -Dx;
|
||||
/* GRIB-405: Don't change sign of Dy. Latitudes ALWAYS increase from latitudeOfFirstGridPoint */
|
||||
/*Dy = jScansPositively == 1 ? Dy : -Dy;*/
|
||||
|
||||
/* No support (yet) for jPointsAreConsecutive */
|
||||
if (jPointsAreConsecutive) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR,"No support for: 'Adjacent points in j (y) direction being consecutive'");
|
||||
Assert(0);
|
||||
}
|
||||
/* No support (yet) for jPointsAreConsecutive */
|
||||
if (jPointsAreConsecutive) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR,"No support for: 'Adjacent points in j (y) direction being consecutive'");
|
||||
Assert(0);
|
||||
}
|
||||
|
||||
/* Allocate latitude and longitude arrays */
|
||||
self->lats = (double*)grib_context_malloc(h->context,iter->nv*sizeof(double));
|
||||
if (!self->lats) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR, "unable to allocate %ld bytes",iter->nv*sizeof(double));
|
||||
return GRIB_OUT_OF_MEMORY;
|
||||
}
|
||||
self->lons = (double*)grib_context_malloc(h->context,iter->nv*sizeof(double));
|
||||
if (!self->lats) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR, "unable to allocate %ld bytes",iter->nv*sizeof(double));
|
||||
return GRIB_OUT_OF_MEMORY;
|
||||
}
|
||||
lats=self->lats;
|
||||
lons=self->lons;
|
||||
/* Allocate latitude and longitude arrays */
|
||||
self->lats = (double*)grib_context_malloc(h->context,iter->nv*sizeof(double));
|
||||
if (!self->lats) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR, "unable to allocate %ld bytes",iter->nv*sizeof(double));
|
||||
return GRIB_OUT_OF_MEMORY;
|
||||
}
|
||||
self->lons = (double*)grib_context_malloc(h->context,iter->nv*sizeof(double));
|
||||
if (!self->lats) {
|
||||
grib_context_log(h->context,GRIB_LOG_ERROR, "unable to allocate %ld bytes",iter->nv*sizeof(double));
|
||||
return GRIB_OUT_OF_MEMORY;
|
||||
}
|
||||
lats=self->lats;
|
||||
lons=self->lons;
|
||||
|
||||
/* Populate our arrays */
|
||||
for (j = 0; j < ny; j++) {
|
||||
y = y0 + j*Dy;
|
||||
if ( n < 0 ) { /* adjustment for southern hemisphere */
|
||||
y = -y;
|
||||
}
|
||||
tmp = rho0 - y;
|
||||
tmp2 = tmp*tmp;
|
||||
for (i = 0; i < nx; i++) {
|
||||
int index =i+j*nx;
|
||||
x = x0 + i*Dx;
|
||||
if ( n < 0 ) { /* adjustment for southern hemisphere */
|
||||
x = -x;
|
||||
}
|
||||
/* Populate our arrays */
|
||||
for (j = 0; j < ny; j++) {
|
||||
y = y0 + j*Dy;
|
||||
if ( n < 0 ) { /* adjustment for southern hemisphere */
|
||||
y = -y;
|
||||
}
|
||||
tmp = rho0 - y;
|
||||
tmp2 = tmp*tmp;
|
||||
for (i = 0; i < nx; i++) {
|
||||
int index =i+j*nx;
|
||||
x = x0 + i*Dx;
|
||||
if ( n < 0 ) { /* adjustment for southern hemisphere */
|
||||
x = -x;
|
||||
}
|
||||
|
||||
angle = atan(x / tmp);
|
||||
rho = sqrt(x*x + tmp2);
|
||||
if (n <= 0) rho = -rho;
|
||||
lonDeg = LoVInDegrees + (angle/n) * RAD2DEG;
|
||||
latDeg = (2.0 * atan(pow(radius * f/rho, 1.0/n)) - M_PI_2) * RAD2DEG;
|
||||
while ( lonDeg >= 360.0) lonDeg -= 360.0;
|
||||
while ( lonDeg < 0.0) lonDeg += 360.0;
|
||||
lons[index] = lonDeg;
|
||||
lats[index] = latDeg;
|
||||
}
|
||||
}
|
||||
angle = atan(x / tmp);
|
||||
rho = sqrt(x*x + tmp2);
|
||||
if (n <= 0) rho = -rho;
|
||||
lonDeg = LoVInDegrees + (angle/n) * RAD2DEG;
|
||||
latDeg = (2.0 * atan(pow(radius * f/rho, 1.0/n)) - M_PI_2) * RAD2DEG;
|
||||
while ( lonDeg >= 360.0) lonDeg -= 360.0;
|
||||
while ( lonDeg < 0.0) lonDeg += 360.0;
|
||||
lons[index] = lonDeg;
|
||||
lats[index] = latDeg;
|
||||
}
|
||||
}
|
||||
|
||||
iter->e = -1;
|
||||
iter->e = -1;
|
||||
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int destroy(grib_iterator* i)
|
||||
{
|
||||
grib_iterator_lambert_conformal* self = (grib_iterator_lambert_conformal*)i;
|
||||
const grib_context *c = i->h->context;
|
||||
grib_iterator_lambert_conformal* self = (grib_iterator_lambert_conformal*)i;
|
||||
const grib_context *c = i->h->context;
|
||||
|
||||
grib_context_free(c,self->lats);
|
||||
grib_context_free(c,self->lons);
|
||||
return 1;
|
||||
grib_context_free(c,self->lats);
|
||||
grib_context_free(c,self->lons);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -371,11 +371,19 @@ static void point_in_time(grib_handle* h,const parameter* p,double min,double ma
|
|||
case 0: /* Analysis */
|
||||
if (is_uerra)
|
||||
CHECK(eq(h,"productDefinitionTemplateNumber",0)||eq(h,"productDefinitionTemplateNumber",1));
|
||||
if (get(h,"productDefinitionTemplateNumber") == 1){
|
||||
CHECK(ne(h,"numberOfForecastsInEnsemble",0));
|
||||
CHECK(le(h,"perturbationNumber",get(h,"numberOfForecastsInEnsemble")));
|
||||
}
|
||||
break;
|
||||
|
||||
case 1: /* Forecast */
|
||||
if (is_uerra)
|
||||
CHECK(eq(h,"productDefinitionTemplateNumber",0)||eq(h,"productDefinitionTemplateNumber",1));
|
||||
if (get(h,"productDefinitionTemplateNumber") == 1){
|
||||
CHECK(ne(h,"numberOfForecastsInEnsemble",0));
|
||||
CHECK(le(h,"perturbationNumber",get(h,"numberOfForecastsInEnsemble")));
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: /* Analysis and forecast products */
|
||||
|
@ -1145,30 +1153,29 @@ static void verify(grib_handle* h)
|
|||
CHECK(eq(h,"productionStatusOfProcessedData",6)||eq(h,"productionStatusOfProcessedData",7)); /* S2S prod||test */
|
||||
CHECK(le(h,"endStep",100*24));
|
||||
}
|
||||
else if (is_uerra){
|
||||
CHECK(eq(h,"productionStatusOfProcessedData",8)||eq(h,"productionStatusOfProcessedData",9)); /* UERRA prod||test */
|
||||
CHECK(le(h,"endStep",30));
|
||||
}
|
||||
else
|
||||
else if (!is_uerra)
|
||||
{
|
||||
CHECK(eq(h,"productionStatusOfProcessedData",4)||eq(h,"productionStatusOfProcessedData",5)); /* TIGGE prod||test */
|
||||
CHECK(le(h,"endStep",30*24));
|
||||
}
|
||||
|
||||
if (is_uerra){
|
||||
CHECK((eq(h,"step",1)||eq(h,"step",2)||eq(h,"step",4)||eq(h,"step",5))||(get(h,"step") % 3) == 0);
|
||||
}
|
||||
else if (is_lam){
|
||||
CHECK((get(h,"step") % 3) == 0);
|
||||
}
|
||||
else
|
||||
else if (!is_uerra)
|
||||
{
|
||||
CHECK((get(h,"step") % 6) == 0);
|
||||
}
|
||||
|
||||
if (is_uerra){
|
||||
/* 0 = analysis , 2 = analysis or forecast */
|
||||
CHECK(eq(h,"typeOfProcessedData",0)||eq(h,"typeOfProcessedData",2));
|
||||
CHECK(eq(h,"productionStatusOfProcessedData",8)||eq(h,"productionStatusOfProcessedData",9)); /* UERRA prod||test */
|
||||
CHECK(le(h,"endStep",30));
|
||||
/* 0 = analysis , 1 = forecast */
|
||||
CHECK(eq(h,"typeOfProcessedData",0)||eq(h,"typeOfProcessedData",1));
|
||||
if (get(h,"typeOfProcessedData") == 0)
|
||||
CHECK(eq(h,"step",0));
|
||||
else
|
||||
CHECK((eq(h,"step",1)||eq(h,"step",2)||eq(h,"step",4)||eq(h,"step",5))||(get(h,"step") % 3) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1082,7 +1082,6 @@ s2s/ammc: warning: s2s.mx2t6_20151224_26.grib2, field 47 [surface_air_maximum_te
|
|||
{"scaleFactorOfFirstFixedSurface", GRIB_TYPE_LONG, 0},
|
||||
{"scaledValueOfFirstFixedSurface", GRIB_TYPE_LONG, 10},
|
||||
|
||||
/* {"typeOfSecondFixedSurface", GRIB_TYPE_LONG, 255}, */
|
||||
{NULL, },
|
||||
},
|
||||
{&three_hourly, &given_level},
|
||||
|
@ -1382,9 +1381,6 @@ warning: s2s.z_tigge_c_kwbc_20150817000000_ncep_prod_pf_pl_0000_015_0500_w.grib2
|
|||
12,
|
||||
{
|
||||
{"model", GRIB_TYPE_STRING, 0, "glob"},
|
||||
|
||||
{"paramId", GRIB_TYPE_LONG, 135},
|
||||
|
||||
{"discipline", GRIB_TYPE_LONG, 0},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 2},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 8},
|
||||
|
@ -2803,7 +2799,7 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
10,
|
||||
150,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 228256},
|
||||
{"paramId", GRIB_TYPE_LONG, 49},
|
||||
{"class", GRIB_TYPE_STRING, 0, "ur"},
|
||||
{"discipline", GRIB_TYPE_LONG, 0},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 2},
|
||||
|
@ -2817,13 +2813,14 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&since_prev_pp, &given_level},
|
||||
},
|
||||
{
|
||||
"2_metre_maximum_temperature_uerra", /* TBD xxx Length of time range 1/3/6 checks? */
|
||||
"2_metre_maximum_temperature_uerra",
|
||||
200,
|
||||
340,
|
||||
200,
|
||||
340,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 228257},
|
||||
{"paramId", GRIB_TYPE_LONG, 201},
|
||||
{"class", GRIB_TYPE_STRING, 0, "ur"},
|
||||
{"discipline", GRIB_TYPE_LONG, 0},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 0},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 0},
|
||||
|
@ -2834,13 +2831,14 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&since_prev_pp, &given_level},
|
||||
},
|
||||
{
|
||||
"2_metre_minimum_temperature_uerra", /* TBD xxx Length of time range 1/3/6 checks? */
|
||||
"2_metre_minimum_temperature_uerra",
|
||||
200,
|
||||
340,
|
||||
200,
|
||||
340,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 228258},
|
||||
{"paramId", GRIB_TYPE_LONG, 202},
|
||||
{"class", GRIB_TYPE_STRING, 0, "ur"},
|
||||
{"discipline", GRIB_TYPE_LONG, 0},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 0},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 0},
|
||||
|
@ -2900,7 +2898,23 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&point_in_time, &predefined_level},
|
||||
},
|
||||
{
|
||||
"liquid_non-frozen_soil_moisture_sfc",
|
||||
"liquid_non-frozen_soil_moisture_level",
|
||||
-1e-19,
|
||||
0,
|
||||
450,
|
||||
800,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 260210},
|
||||
{"discipline", GRIB_TYPE_LONG, 2},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 3},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 10},
|
||||
{"typeOfFirstFixedSurface", GRIB_TYPE_LONG, 151},
|
||||
{NULL, },
|
||||
},
|
||||
{&point_in_time, &given_level},
|
||||
},
|
||||
{
|
||||
"liquid_non-frozen_soil_moisture_layer",
|
||||
-1e-19,
|
||||
0,
|
||||
450,
|
||||
|
@ -2919,7 +2933,23 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&point_in_time, &given_thickness},
|
||||
},
|
||||
{
|
||||
"volumetric_soil_moisture_sfc",
|
||||
"volumetric_soil_moisture_level",
|
||||
-1e-19,
|
||||
0,
|
||||
450,
|
||||
800,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 260199},
|
||||
{"discipline", GRIB_TYPE_LONG, 2},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 0},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 25},
|
||||
{"typeOfFirstFixedSurface", GRIB_TYPE_LONG, 151},
|
||||
{NULL, },
|
||||
},
|
||||
{&point_in_time, &given_level},
|
||||
},
|
||||
{
|
||||
"volumetric_soil_moisture_layer",
|
||||
-1e-19,
|
||||
0,
|
||||
450,
|
||||
|
@ -2944,7 +2974,7 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
-1e+10,
|
||||
1e+10,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 260433},
|
||||
{"paramId", GRIB_TYPE_LONG, 260364},
|
||||
{"discipline", GRIB_TYPE_LONG, 2},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 3},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 26},
|
||||
|
@ -2954,7 +2984,7 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&point_in_time, &predefined_level},
|
||||
},
|
||||
{
|
||||
"soil_temperature_sfc",
|
||||
"soil_temperature_level",
|
||||
200,
|
||||
230,
|
||||
300,
|
||||
|
@ -2970,6 +3000,43 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
},
|
||||
{&point_in_time, &given_level},
|
||||
},
|
||||
{
|
||||
"soil_temperature_level",
|
||||
200,
|
||||
230,
|
||||
300,
|
||||
350,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 260360},
|
||||
{"discipline", GRIB_TYPE_LONG, 2},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 3},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 18},
|
||||
{"typeOfFirstFixedSurface", GRIB_TYPE_LONG, 151},
|
||||
{"scaleFactorOfFirstFixedSurface", GRIB_TYPE_LONG, 0},
|
||||
{NULL, },
|
||||
},
|
||||
{&point_in_time, &given_level},
|
||||
},
|
||||
|
||||
{
|
||||
"soil_temperature_layer",
|
||||
200,
|
||||
230,
|
||||
300,
|
||||
350,
|
||||
{
|
||||
{"paramId", GRIB_TYPE_LONG, 260360},
|
||||
{"discipline", GRIB_TYPE_LONG, 2},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 3},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 18},
|
||||
{"typeOfFirstFixedSurface", GRIB_TYPE_LONG, 151},
|
||||
{"scaleFactorOfFirstFixedSurface", GRIB_TYPE_LONG, 0},
|
||||
{"typeOfSecondFixedSurface", GRIB_TYPE_LONG, 151},
|
||||
{"scaleFactorOfSecondFixedSurface", GRIB_TYPE_LONG, 0},
|
||||
{NULL, },
|
||||
},
|
||||
{&point_in_time, &given_thickness},
|
||||
},
|
||||
{
|
||||
"total_column_water_sfc.ur",
|
||||
0,
|
||||
|
@ -2988,5 +3055,24 @@ s2s/ammc/enfo:s2s.tcc_20151004_9.grib2, field 21 [total_cloud_cover_sfc.glob]: t
|
|||
{&point_in_time, &predefined_thickness},
|
||||
},
|
||||
|
||||
{
|
||||
"w_vertical_velocity_pl",
|
||||
-20,
|
||||
0,
|
||||
0,
|
||||
20,
|
||||
{
|
||||
{"class", GRIB_TYPE_STRING, 0, "ur"},
|
||||
{"paramId", GRIB_TYPE_LONG, 135},
|
||||
{"discipline", GRIB_TYPE_LONG, 0},
|
||||
{"parameterCategory", GRIB_TYPE_LONG, 2},
|
||||
{"parameterNumber", GRIB_TYPE_LONG, 8},
|
||||
|
||||
{"typeOfFirstFixedSurface", GRIB_TYPE_LONG, 100},
|
||||
{NULL, },
|
||||
},
|
||||
{&point_in_time, &given_level, &pressure_level},
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -11,25 +11,28 @@
|
|||
\n \n -r \n Repack data. Sometimes after setting some keys involving properties
|
||||
of the packing algorithm a repacking of data is needed.
|
||||
This repacking is performed setting this -r option.
|
||||
\n \n -p key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -p key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
Declaration of keys to print.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be requested. Default type is string.
|
||||
\n \n -P key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -P key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
As -p adding the declared keys to the default list.
|
||||
\n \n -w key[:{s/d/l}]=value,key[:{s/d/l}]=value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]=value,... \n
|
||||
Where clause.
|
||||
Only grib messages matching the key/value constraints are copied to the
|
||||
output_grib_file.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. Default type is string.
|
||||
\n \n -B order by directive \n
|
||||
Order by. The output will be ordered according the order by directive.
|
||||
Order by example: "step asc, centre desc" (step ascending and centre discending)
|
||||
Order by. The output will be ordered according to the order by directive.
|
||||
Order by example: "step asc, centre desc" (step ascending and centre descending)
|
||||
\n \n -V \n Version.
|
||||
\n \n -W width \n
|
||||
Minimum width of each column in output. Default is 10.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -g \n Copy GTS header.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
|
@ -44,6 +47,10 @@
|
|||
\verbatim
|
||||
> grib_copy -w levtype!=pl ../data/tigge_pf_ecmwf.grib2 out.grib
|
||||
\endverbatim\n
|
||||
-# To copy only the first three fields from a file\n
|
||||
\verbatim
|
||||
> grib_copy -w count=1/2/3 ../data/tigge_pf_ecmwf.grib2 out.grib
|
||||
\endverbatim\n
|
||||
-# A grib_file with multi field messages can be converted in single field messages
|
||||
with a simple grib_copy.\n
|
||||
\verbatim
|
||||
|
@ -52,6 +59,6 @@ with a simple grib_copy.\n
|
|||
-# Use the square brackets to insert the value of a key
|
||||
in the name of the output file.\n
|
||||
\verbatim
|
||||
> grib_copy in.grib out_[shortName].grib
|
||||
> grib_copy in.grib 'out_[shortName].grib'
|
||||
\endverbatim\n
|
||||
*/
|
||||
|
|
|
@ -9,21 +9,29 @@
|
|||
\section OPTIONS
|
||||
-O \n Octet mode. WMO documentation style dump.
|
||||
\n \n -D \n Debug mode.
|
||||
\n \n -d \n Print all data values. Available only in C mode
|
||||
\n \n -C \n C code mode. A C code program generating the grib message is dumped.
|
||||
\n \n -d \n Print all data values.
|
||||
\n \n -j \n JSON mode (JavaScript Object Notation).
|
||||
\n \n -t \n Print type information.
|
||||
\n \n -H \n Print octet content in hexadecimal format.
|
||||
\n \n -a \n Dump aliases.
|
||||
\n \n -w key[:{s/d/l}]{=/!=}value,key[:{s/d/l}]{=/!=}value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]{=/!=}value,... \n
|
||||
Where clause.
|
||||
Grib messages are processed only if they match all the key/value constraints.
|
||||
Messages are processed only if they match all the key/value constraints.
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be specified. Default type is string.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -s key[:{s/d/i}]=value,key[:{s/d/i}]=value,... \n
|
||||
Key/values to set.
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. By default the native type is set.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -V \n Version.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -X offset \n
|
||||
Input file offset in bytes. Processing of the input file will start from "offset".
|
||||
\n \n -x \n Fast parsing option, only headers are loaded.
|
||||
\n \n
|
||||
\section grib_dump_examples grib_dump examples
|
||||
-# To dump in a WMO documentation style with hexadecimal octet values (-H).\n
|
||||
|
@ -38,209 +46,4 @@
|
|||
\verbatim
|
||||
> grib_dump -D ../data/regular_latlon_surface.grib1
|
||||
\endverbatim\n
|
||||
-# To obtain a C code example from a grib file.\n
|
||||
\code
|
||||
>grib_dump -C ../data/regular_latlon_surface.grib1
|
||||
#include <grib_api.h>
|
||||
|
||||
/* This code was generated automatically */
|
||||
|
||||
|
||||
int main(int argc,const char** argv)
|
||||
{
|
||||
grib_handle *h = NULL;
|
||||
size_t size = 0;
|
||||
double* vdouble = NULL;
|
||||
long* vlong = NULL;
|
||||
FILE* f = NULL;
|
||||
const char* p = NULL;
|
||||
const void* buffer = NULL;
|
||||
|
||||
if(argc != 2) {
|
||||
fprintf(stderr,"usage: %s out\n",argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
h = grib_handle_new_from_samples(NULL,"GRIB1");
|
||||
if(!h) {
|
||||
fprintf(stderr,"Cannot create grib handle\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"parametersVersion",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"truncateLaplacian",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"truncateDegrees",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"dummy",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"changingPrecision",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"unitsFactor",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"unitsBias",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"timeRangeIndicatorFromStepRange",-1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"eps",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"editionNumber",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"productionStatusOfProcessedData",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"table2Version",128),0);
|
||||
|
||||
/* 98 = European Center for Medium-Range Weather Forecasts (grib1/0.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"centre",98),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"generatingProcessIdentifier",130),0);
|
||||
GRIB_CHECK(grib_set_long(h,"gridDefinition",255),0);
|
||||
|
||||
/* 128 = 10000000
|
||||
(1=1) Section 2 included
|
||||
(2=0) Section 3 omited
|
||||
See grib1/1.table */
|
||||
GRIB_CHECK(grib_set_long(h,"section1Flags",128),0);
|
||||
|
||||
|
||||
/* 167 = 2 metre temperature (K) (grib1/2.98.128.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"indicatorOfParameter",167),0);
|
||||
|
||||
|
||||
/* 1 = Surface (of the Earth, which includes sea surface) (grib1/3.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"indicatorOfTypeOfLevel",1),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"level",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"yearOfCentury",8),0);
|
||||
GRIB_CHECK(grib_set_long(h,"month",2),0);
|
||||
GRIB_CHECK(grib_set_long(h,"day",6),0);
|
||||
GRIB_CHECK(grib_set_long(h,"hour",12),0);
|
||||
GRIB_CHECK(grib_set_long(h,"minute",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"second",0),0);
|
||||
|
||||
/* 1 = Hour (grib1/4.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"unitOfTimeRange",1),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"P1",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"P2",0),0);
|
||||
|
||||
/* 0 = Forecast product valid at reference time + P1 (P1>0) (grib1/5.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"timeRangeIndicator",0),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"numberIncludedInAverage",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"numberMissingFromAveragesOrAccumulations",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"centuryOfReferenceTimeOfData",21),0);
|
||||
|
||||
/* 0 = Unknown code table entry (grib1/0.ecmf.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"subCentre",0),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"decimalScaleFactor",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"setLocalDefinition",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"dataDate",20080206),0);
|
||||
GRIB_CHECK(grib_set_long(h,"dataTime",1200),0);
|
||||
|
||||
/* 1 = Hour (stepUnits.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"stepUnits",1),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"deleteLocalDefinition",0),0);
|
||||
|
||||
/* 1 = MARS labelling or ensemble forecast data (grib1/localDefinitionNumber.98.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"localDefinitionNumber",1),0);
|
||||
|
||||
|
||||
/* 1 = Operational archive (mars/class.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"marsClass",1),0);
|
||||
|
||||
|
||||
/* 2 = Analysis (mars/type.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"marsType",2),0);
|
||||
|
||||
|
||||
/* 1025 = Atmospheric model (mars/stream.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"marsStream",1025),0);
|
||||
|
||||
p = "0001";
|
||||
size = strlen(p)+1;
|
||||
GRIB_CHECK(grib_set_string(h,"experimentVersionNumber",p,&size),0);
|
||||
GRIB_CHECK(grib_set_long(h,"perturbationNumber",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"numberOfForecastsInEnsemble",0),0);
|
||||
|
||||
/* x */
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"gridDescriptionSectionPresent",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"GDSPresent",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"bitmapPresent",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"radius",6367470),0);
|
||||
GRIB_CHECK(grib_set_long(h,"shapeOfTheEarth",6),0);
|
||||
GRIB_CHECK(grib_set_long(h,"numberOfVerticalCoordinateValues",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"pvlLocation",255),0);
|
||||
|
||||
/* 0 = Latitude/Longitude Grid (grib1/6.table) */
|
||||
GRIB_CHECK(grib_set_long(h,"dataRepresentationType",0),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"Ni",16),0);
|
||||
GRIB_CHECK(grib_set_long(h,"Nj",31),0);
|
||||
GRIB_CHECK(grib_set_long(h,"latitudeOfFirstGridPoint",60000),0);
|
||||
GRIB_CHECK(grib_set_long(h,"longitudeOfFirstGridPoint",0),0);
|
||||
|
||||
/* 128 = 10000000
|
||||
(1=1) Direction increments given
|
||||
(2=0) Earth assumed spherical with radius = 6367.47 km
|
||||
(5=0) u and v components resolved relative to easterly and northerly directions
|
||||
See grib1/7.table */
|
||||
GRIB_CHECK(grib_set_long(h,"resolutionAndComponentFlags",128),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"ijDirectionIncrementGiven",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"earthIsOblate",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"uvRelativeToGrid",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"latitudeOfLastGridPoint",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"longitudeOfLastGridPoint",30000),0);
|
||||
GRIB_CHECK(grib_set_long(h,"iDirectionIncrement",2000),0);
|
||||
GRIB_CHECK(grib_set_long(h,"jDirectionIncrement",2000),0);
|
||||
|
||||
/* 0 = 00000000
|
||||
(1=0) Points scan in +i direction
|
||||
(2=0) Points scan in -j direction
|
||||
(3=0) Adjacent points in i direction are consecutive
|
||||
See grib1/8.table */
|
||||
GRIB_CHECK(grib_set_long(h,"scanningMode",0),0);
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"iScansNegatively",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"jScansPositively",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"jPointsAreConsecutive",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"iScansPositively",1),0);
|
||||
|
||||
/* ITERATOR */
|
||||
|
||||
|
||||
/* NEAREST */
|
||||
|
||||
GRIB_CHECK(grib_set_long(h,"PVPresent",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"PLPresent",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"missingValue",9999),0);
|
||||
GRIB_CHECK(grib_set_long(h,"sphericalHarmonics",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"complexPacking",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"integerPointValues",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"additionalFlagPresent",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"hideThis",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"bitsPerValue",16),0);
|
||||
GRIB_CHECK(grib_set_long(h,"dirty_statistics",1),0);
|
||||
GRIB_CHECK(grib_set_long(h,"dataLength",124),0);
|
||||
GRIB_CHECK(grib_set_long(h,"changeDecimalPrecision",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"decimalPrecision",0),0);
|
||||
GRIB_CHECK(grib_set_long(h,"bitsPerValueAndRepack",16),0);
|
||||
/* Save the message */
|
||||
|
||||
f = fopen(argv[1],"w");
|
||||
if(!f) {
|
||||
perror(argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
GRIB_CHECK(grib_get_message(h,&buffer,&size),0);
|
||||
|
||||
if(fwrite(buffer,1,size,f) != size) {
|
||||
perror(argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(fclose(f)) {
|
||||
perror(argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
grib_handle_delete(h);
|
||||
return 0;
|
||||
}
|
||||
\endcode\n
|
||||
*/
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*! \page grib_filter grib_filter
|
||||
Latest training course presentation on grib_filter available <a href="http://www.ecmwf.int/services/computing/training/material/grib_api/grib_api_filter.pdf">here<img src="/assets/icons/pdf.gif" width="20" height="20" align="absmiddle" border="0"></a>.
|
||||
\section DESCRIPTION
|
||||
Apply the rules defined in rules_file to each grib message
|
||||
in the grib files provided as arguments.
|
||||
Apply the rules defined in rules_file to each GRIB message
|
||||
in the GRIB files provided as arguments.
|
||||
If you specify '-' (a single dash) for the rules_file, the rules will be read from standard input.
|
||||
|
||||
\section USAGE
|
||||
grib_filter
|
||||
|
@ -10,13 +10,15 @@ Latest training course presentation on grib_filter available <a href="http://www
|
|||
|
||||
\section OPTIONS
|
||||
-f \n Force. Force the execution not to fail on error.
|
||||
\n \n -o output_grib_file \n
|
||||
Output grib is written to ouput_grib_file.
|
||||
If an ouput grib file is required and -o is not used, the ouput grib is written to filtered.out
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -o output_file \n
|
||||
Output is written to output_file.
|
||||
If an output file is required and -o is not used, the output is written to filter.out
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -V \n Version.
|
||||
\n \n -g \n Copy GTS header.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -v \n Verbose.
|
||||
\n \n
|
||||
|
@ -26,7 +28,7 @@ Latest training course presentation on grib_filter available <a href="http://www
|
|||
is sent to multiple files depending on key values used in the output file name. \n
|
||||
If we write a rules_file containing the only statement:\n \n
|
||||
\verbatim
|
||||
write "../data/split/[centre]_[dataDate]_[dataType]_[levelType].grib[edition]";
|
||||
write "../data/split/[centre]_[date]_[dataType]_[levelType].grib[editionNumber]";
|
||||
\endverbatim\n
|
||||
Applying this rules_file to the "../data/tigge_pf_ecmwf.grib2" grib file we obtain several files in the ../data/split directory containing
|
||||
fields split according to their key values\n
|
||||
|
@ -41,14 +43,14 @@ ecmf_20070122_pf_pv.grib2
|
|||
ecmf_20070122_pf_sfc.grib2
|
||||
\endverbatim\n
|
||||
-# The key values in the file name can also be obtained in a different format by indicating explicitly the type required after a colon.
|
||||
- :l for long
|
||||
- :i for integer
|
||||
- :d for double
|
||||
- :s for string
|
||||
.
|
||||
The following statement works in a slightly different way from the previous example,
|
||||
including in the output file name the long values for centre and dataType.\n
|
||||
including in the output file name the integer values for centre and dataType.\n
|
||||
\verbatim
|
||||
write "../data/split/[centre:l]_[dataDate]_[dataType:l]_[levelType].grib[edition]";
|
||||
write "../data/split/[centre:i]_[date]_[dataType:i]_[levelType].grib[editionNumber]";
|
||||
\endverbatim\n
|
||||
Running the same command again we obtain a different list of files.\n
|
||||
\verbatim
|
||||
|
@ -62,20 +64,19 @@ Running the same command again we obtain a different list of files.\n
|
|||
98_20070122_4_sfc.grib2
|
||||
\endverbatim\n
|
||||
-# Other statements are allowed in the grib_filter syntax:
|
||||
- comments beginning with #
|
||||
- print "string to print also with key values like in the file name"
|
||||
- transient keyname1 = keyname2;
|
||||
- set keyname = keyvalue;
|
||||
- defined(keyname) to check if a key is defined in a message
|
||||
- if ( condition ) { block of rules } else { block of rules }\n
|
||||
The condition can be made using ==,!= and joining single block conditions with || and && \n
|
||||
The statement can be any valid statement also another nested condition\n
|
||||
- set keyname = keyvalue;
|
||||
- print "string to print also with key values like in the file name"
|
||||
- transient keyname1 = keyname2;
|
||||
- comments beginning with #
|
||||
.
|
||||
A complex example of grib_filter rules is the following to change temperature in a grib edition 1 file.
|
||||
\verbatim
|
||||
# Temperature
|
||||
if ( level == 850 && indicatorOfParameter == 11 ) {
|
||||
print "found indicatorOfParameter=[indicatorOfParameter] level=[level] date=[dataDate]";
|
||||
print "found indicatorOfParameter=[indicatorOfParameter] level=[level] date=[date]";
|
||||
transient oldtype = type ;
|
||||
set identificationOfOriginatingGeneratingSubCentre=98;
|
||||
set gribTablesVersionNo = 128;
|
||||
|
@ -95,32 +96,40 @@ if ( level == 850 && indicatorOfParameter == 11 ) {
|
|||
}
|
||||
set numberOfForecastsInEnsemble=11;
|
||||
write;
|
||||
print "indicatorOfParameter=[indicatorOfParameter] level=[level] date=[dataDate]";
|
||||
print "indicatorOfParameter=[indicatorOfParameter] level=[level] date=[date]";
|
||||
print;
|
||||
}
|
||||
\endverbatim\n
|
||||
-# Here is an example of an IF statement comparing a key with a string.
|
||||
Note you have to use the "is" keyword for strings and not "==", and to negate you add the "!" before the whole condition:\n \n
|
||||
\verbatim
|
||||
# Select Geopotential Height messages which are not on a Reduced Gaussian Grid
|
||||
if (shortName is "gh" && !(gridType is "reduced_gg" )) {
|
||||
set step = 72;
|
||||
}
|
||||
\endverbatim\n
|
||||
-# The switch statement is an enhanced version of the if statement. Its syntax is the following:
|
||||
\verbatim
|
||||
switch (key1,key2,...,keyn) {
|
||||
case val11,val12,...,val1n:
|
||||
switch (key1) {
|
||||
case val1:
|
||||
# block of rules;
|
||||
case val21,val22,...,val2n:
|
||||
case val2:
|
||||
# block of rules;
|
||||
default:
|
||||
# [ block of rules ]
|
||||
# block of rules
|
||||
}
|
||||
\endverbatim\n
|
||||
Each value of each key given as argument to the switch statement is matched against the values specified in the case statements.\n
|
||||
If there is a match, then the block or rules corresponding to the matching case statement is executed.\n
|
||||
Otherwise, the default case is executed. The default case is mandatory, even if empty.\n
|
||||
Otherwise, the default case is executed. The default case is mandatory if the case statements do not cover all the possibilities.\n
|
||||
The "~" operator can be used to match "anything".\n\n
|
||||
Following is an example showing the use of the switch statement:\n
|
||||
\verbatim
|
||||
processing paramId=[paramId] [shortName] [stepType]
|
||||
switch (shortName,indicatorOfParameter) {
|
||||
case tp:
|
||||
switch (shortName) {
|
||||
case tp :
|
||||
set stepType=accum;
|
||||
case ~,2 :
|
||||
case 10u :
|
||||
set typeOfLevel=surface;
|
||||
default:
|
||||
}
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
\section OPTIONS
|
||||
-f \n Force. Force the execution not to fail on error.
|
||||
\n \n -p key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -p key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
Declaration of keys to print.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be requested. Default type is string.
|
||||
\n \n -F format \n
|
||||
C style format for floating point values.
|
||||
|
@ -22,28 +22,32 @@
|
|||
4 (4 values in the nearest points are printed) Default
|
||||
1 (the value at the nearest point is printed)
|
||||
file (file is used as mask. The closer point with mask value>=0.5 is printed)
|
||||
\n \n -P key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -P key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
As -p adding the declared keys to the default list.
|
||||
\n \n -w key[:{s/d/l}]{=/!=}value,key[:{s/d/l}]{=/!=}value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]{=/!=}value,... \n
|
||||
Where clause.
|
||||
Grib messages are processed only if they match all the key/value constraints.
|
||||
Messages are processed only if they match all the key/value constraints.
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be specified. Default type is string.
|
||||
\n \n -n namespace \n
|
||||
All the keys belonging to namespace are printed.
|
||||
\n \n -s key[:{s/d/l}]=value,key[:{s/d/l}]=value,... \n
|
||||
\n \n -s key[:{s/d/i}]=value,key[:{s/d/i}]=value,... \n
|
||||
Key/values to set.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. By default the native type is set.
|
||||
\n \n -V \n Version.
|
||||
\n \n -W width \n
|
||||
Minimum width of each column in output. Default is 10.
|
||||
\n \n -m \n Mars keys are printed.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -g \n Copy GTS header.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -X offset \n
|
||||
Input file offset in bytes. Processing of the input file will start from "offset".
|
||||
\n \n -i index \n
|
||||
Data value corresponding to the given index is printed.
|
||||
\n \n
|
||||
|
|
|
@ -7,26 +7,28 @@
|
|||
[options] grib_file grib_file ...
|
||||
|
||||
\section OPTIONS
|
||||
-M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
-M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -m missingValue \n
|
||||
The missing value is given through this option.
|
||||
Any string is allowed and it is printed in place of the missing
|
||||
values. Default is to skip the missing values.
|
||||
\n \n -p key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -p key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
Declaration of keys to print.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be requested. Default type is string.
|
||||
\n \n -F format \n
|
||||
C style format for values. Default is "%.10e"
|
||||
\n \n -w key[:{s/d/l}]{=/!=}value,key[:{s/d/l}]{=/!=}value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]{=/!=}value,... \n
|
||||
Where clause.
|
||||
Grib messages are processed only if they match all the key/value constraints.
|
||||
Messages are processed only if they match all the key/value constraints.
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be specified. Default type is string.
|
||||
\n \n -f \n Force. Force the execution not to fail on error.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -X offset \n
|
||||
Input file offset in bytes. Processing of the input file will start from "offset".
|
||||
\n \n -V \n Version.
|
||||
\n \n
|
||||
\section grib_get_data_examples grib_get_data examples
|
||||
|
|
|
@ -8,13 +8,19 @@
|
|||
|
||||
\section OPTIONS
|
||||
-f \n Force. Force the execution not to fail on error.
|
||||
\n \n -o output_grib_file \n
|
||||
Output grib is written to ouput_grib_file.
|
||||
If an ouput grib file is required and -o is not used, the ouput grib is written to filtered.out
|
||||
\n \n -o output_index_file \n
|
||||
Output is written to output_index_file.
|
||||
If an output index file is required and -o is not used, the output index is written to gribidx
|
||||
\n \n -k key1,key2,... \n
|
||||
Specify a list of keys to index on. By default the input files are indexed on the MARS keys.
|
||||
For each key a string (key:s) or a double (key:d) or an integer (key:i)
|
||||
type can be requested.
|
||||
\n \n -V \n Version.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -N \n Do not compress index.
|
||||
By default the index is compressed to remove keys with only one value.
|
||||
\n \n
|
||||
\section grib_index_build_examples grib_index_build examples
|
||||
-# By default grib_index_build will index on the MARS keys. \n
|
||||
|
|
|
@ -8,32 +8,33 @@
|
|||
[options] grib_file grib_file ...
|
||||
|
||||
\section OPTIONS
|
||||
-p key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
-p key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
Declaration of keys to print.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be requested. Default type is string.
|
||||
\n \n -F format \n
|
||||
C style format for floating point values.
|
||||
\n \n -P key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -P key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
As -p adding the declared keys to the default list.
|
||||
\n \n -w key[:{s/d/l}]{=/!=}value,key[:{s/d/l}]{=/!=}value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]{=/!=}value,... \n
|
||||
Where clause.
|
||||
Grib messages are processed only if they match all the key/value constraints.
|
||||
Messages are processed only if they match all the key/value constraints.
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be specified. Default type is string.
|
||||
\n \n -j \n json output \n \n -B order by directive \n
|
||||
Order by. The output will be ordered according the order by directive.
|
||||
Order by example: "step asc, centre desc" (step ascending and centre discending)
|
||||
\n \n -j \n json output
|
||||
\n \n -B order by directive \n
|
||||
Order by. The output will be ordered according to the order by directive.
|
||||
Order by example: "step asc, centre desc" (step ascending and centre descending)
|
||||
\n \n -l Latitude,Longitude[,MODE,file] \n
|
||||
Value close to the point of a Latitude/Longitude.
|
||||
Allowed values for MODE are:
|
||||
4 (4 values in the nearest points are printed) Default
|
||||
1 (the value at the nearest point is printed)
|
||||
file (file is used as mask. The closer point with mask value>=0.5 is printed)
|
||||
\n \n -s key[:{s/d/l}]=value,key[:{s/d/l}]=value,... \n
|
||||
\n \n -s key[:{s/d/i}]=value,key[:{s/d/i}]=value,... \n
|
||||
Key/values to set.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. By default the native type is set.
|
||||
\n \n -i index \n
|
||||
Data value corresponding to the given index is printed.
|
||||
|
@ -43,10 +44,13 @@
|
|||
\n \n -V \n Version.
|
||||
\n \n -W width \n
|
||||
Minimum width of each column in output. Default is 10.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -g \n Copy GTS header.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -X offset \n
|
||||
Input file offset in bytes. Processing of the input file will start from "offset".
|
||||
\n \n -x \n Fast parsing option, only headers are loaded.
|
||||
\n \n
|
||||
\section grib_ls_examples grib_ls examples
|
||||
|
@ -75,9 +79,9 @@ Only the pressure levels are listed with the following line.\n
|
|||
../data/reduced_gaussian_surface.grib2
|
||||
paramId shortName value
|
||||
167 2t 282.002
|
||||
1 of 1 grib messages in ../data/reduced_gaussian_surface.grib2
|
||||
1 of 1 messages in ../data/reduced_gaussian_surface.grib2
|
||||
|
||||
1 of 1 total grib messages in 1 files
|
||||
1 of 1 total messages in 1 files
|
||||
Input Point: latitude=51.46 longitude=-1.33
|
||||
Grid Point chosen #3 index=749 latitude=51.63 longitude=0.00 distance=93.81 (Km)
|
||||
Other grid Points
|
||||
|
|
|
@ -9,35 +9,38 @@
|
|||
[options] grib_file grib_file ... output_grib_file
|
||||
|
||||
\section OPTIONS
|
||||
-s key[:{s/d/l}]=value,key[:{s/d/l}]=value,... \n
|
||||
-s key[:{s/d/i}]=value,key[:{s/d/i}]=value,... \n
|
||||
Key/values to set.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. By default the native type is set.
|
||||
\n \n -r \n Repack data. Sometimes after setting some keys involving properties
|
||||
of the packing algorithm a repacking of data is needed.
|
||||
This repacking is performed setting this -r option.
|
||||
\n \n -d value \n
|
||||
Set all the data values to "value".
|
||||
\n \n -p key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -p key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
Declaration of keys to print.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be requested. Default type is string.
|
||||
\n \n -P key[:{s/d/l}],key[:{s/d/l}],... \n
|
||||
\n \n -P key[:{s/d/i}],key[:{s/d/i}],... \n
|
||||
As -p adding the declared keys to the default list.
|
||||
\n \n -w key[:{s/d/l}]=value,key[:{s/d/l}]=value,... \n
|
||||
\n \n -w key[:{s/d/i}]{=/!=}value,key[:{s/d/i}]=value,... \n
|
||||
Where clause.
|
||||
Set is only executed for grib messages matching all the key/value constraints.
|
||||
If a grib message does not match the constraints it is copied unchanged
|
||||
to the output_grib_file. This behaviour can be changed setting the option -S.
|
||||
For each key a string (key:s) or a double (key:d) or a long (key:l)
|
||||
A valid constraint is of type key=value or key!=value.
|
||||
For each key a string (key:s), a double (key:d) or an integer (key:i)
|
||||
type can be defined. Default type is string.
|
||||
\n \n -7 \n Does not fail when the message has wrong length
|
||||
\n \n -S \n Strict. Only grib messages matching all the constraints are copied to
|
||||
the output file
|
||||
\n \n -V \n Version.
|
||||
\n \n -M \n Multi-grib support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -M \n Multi-field support off. Turn off support for multiple fields in single grib message.
|
||||
\n \n -g \n Copy GTS header.
|
||||
\n \n -G \n GRIBEX compatibility mode.
|
||||
\n \n -T T | B | M | A \n Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental).
|
||||
The input file is interpreted according to the message type.
|
||||
\n \n -f \n Force. Force the execution not to fail on error.
|
||||
\n \n -v \n Verbose.
|
||||
\n \n
|
||||
|
|
|
@ -3,30 +3,26 @@ set -ex
|
|||
set -A tools grib_dump grib_ls grib_get grib_copy grib_set grib_filter grib_compare grib_get_data grib_keys grib_index_build
|
||||
export DOXYGEN_USAGE=1
|
||||
|
||||
p4 edit tools.dox
|
||||
|
||||
cat tools_head.dox > tools.dox
|
||||
|
||||
for tool in ${tools[@]}
|
||||
do
|
||||
p4 edit ${tool}.dox
|
||||
|
||||
set +e
|
||||
set +e
|
||||
./$tool > ${tool}.dox
|
||||
set -e
|
||||
set -e
|
||||
|
||||
cat >> ${tool}.dox <<EOF
|
||||
cat >> ${tool}.dox <<EOF
|
||||
|
||||
\section ${tool}_examples ${tool} examples
|
||||
EOF
|
||||
|
||||
./${tool}.sh >> ${tool}.dox
|
||||
|
||||
cat >> ${tool}.dox <<EOF
|
||||
cat >> ${tool}.dox <<EOF
|
||||
*/
|
||||
EOF
|
||||
|
||||
cat >> tools.dox <<EOF
|
||||
cat >> tools.dox <<EOF
|
||||
- \ref ${tool}
|
||||
EOF
|
||||
|
||||
|
|
Loading…
Reference in New Issue