MTG2 branch with timeproc and adapted parameter definitions

This commit is contained in:
Robert Osinski 2024-07-26 13:03:30 +00:00
parent 97a01c3df0
commit bd2ed4f450
45 changed files with 568 additions and 1415 deletions

View File

@ -7,3 +7,4 @@ build:
parallel: 64 parallel: 64
cmake_options: cmake_options:
- -DENABLE_EXTRA_TESTS=1 - -DENABLE_EXTRA_TESTS=1
- -DENABLE_ECCODES_OMP_THREADS=1

View File

@ -50,9 +50,9 @@ check_symbol_exists( fdatasync "unistd.h" ECCODES_HAVE_FDATASYNC)
check_c_source_compiles( check_c_source_compiles(
" typedef int foo_t; " typedef int foo_t;
static inline foo_t static_foo(){return 0;} static inline foo_t static_foo(void){return 0;}
foo_t foo(){return 0;} foo_t foo(void){return 0;}
int main(int argc, char *argv[]){return 0;} int main(int argc, char *argv[]){ return static_foo(); }
" ECCODES_HAVE_C_INLINE " ECCODES_HAVE_C_INLINE
) )

View File

@ -254,16 +254,6 @@
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Maximum 10 metre wind gust since previous post-processing
'fg10' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Large-scale precipitation fraction #Large-scale precipitation fraction
'lspf' = { 'lspf' = {
discipline = 0 ; discipline = 0 ;
@ -444,11 +434,6 @@
#Total column water #Total column water
'tcw' = { 'tcw' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 51 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
#Total column vertically-integrated water vapour #Total column vertically-integrated water vapour
'tcwv' = { 'tcwv' = {
discipline = 0 ; discipline = 0 ;
@ -492,14 +477,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 76 ; parameterNumber = 76 ;
} }
#Surface net radiation (SW and LW)
'snr' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Top net radiation (SW and LW) #Top net radiation (SW and LW)
'tnr' = { 'tnr' = {
discipline = 0 ; discipline = 0 ;
@ -508,13 +485,6 @@
typeOfFirstFixedSurface = 8 ; typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Mean sea level pressure
'msl' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 101 ;
}
#Divergence #Divergence
'd' = { 'd' = {
discipline = 0 ; discipline = 0 ;
@ -1259,15 +1229,9 @@
#Mean wave period of second swell partition #Mean wave period of second swell partition
'mwp2' = { 'mwp2' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 51 ;
}
#Significant wave height of third swell partition #Significant wave height of third swell partition
'swh3' = { 'swh3' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Mean wave direction of third swell partition #Mean wave direction of third swell partition
'mwd3' = { 'mwd3' = {
discipline = 10 ; discipline = 10 ;
@ -1368,18 +1332,6 @@
parameterNumber = 15 ; parameterNumber = 15 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean sea water temperature in the upper 300 m
'mswt300m' = {
discipline = 10 ;
parameterCategory = 4 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 160 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
#Total column vertically-integrated water enthalpy #Total column vertically-integrated water enthalpy
'viwe' = { 'viwe' = {
discipline = 0 ; discipline = 0 ;
@ -1481,14 +1433,6 @@
parameterNumber = 59 ; parameterNumber = 59 ;
typeOfGeneratingProcess = 9 ; typeOfGeneratingProcess = 9 ;
} }
#Ammonium aerosol mass mixing ratio
'aermr18' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
is_aerosol = 1 ;
}
#Nitrate aerosol optical depth at 550 nm #Nitrate aerosol optical depth at 550 nm
'niaod550' = { 'niaod550' = {
discipline = 0 ; discipline = 0 ;
@ -1574,15 +1518,6 @@
is_chemical_srcsink = 1 ; is_chemical_srcsink = 1 ;
sourceSinkChemicalPhysicalProcess = 7 ; sourceSinkChemicalPhysicalProcess = 7 ;
} }
#Ammonium aerosol mass mixing ratio
'aermr18diff' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
typeOfGeneratingProcess = 20 ;
is_aerosol = 1 ;
}
#Biogenic secondary organic aerosol mass mixing ratio increment #Biogenic secondary organic aerosol mass mixing ratio increment
'aermr19diff' = { 'aermr19diff' = {
discipline = 0 ; discipline = 0 ;
@ -3366,15 +3301,6 @@
scaledValueOfFirstFixedSurface = 200 ; scaledValueOfFirstFixedSurface = 200 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#100 metre wind speed
'si100' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 1 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#Urban cover #Urban cover
'cur' = { 'cur' = {
discipline = 2 ; discipline = 2 ;
@ -3438,9 +3364,6 @@
#C4 grass cover #C4 grass cover
'c4gr' = { 'c4gr' = {
discipline = 2 ; discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Accumulated freezing rain water equivalent #Accumulated freezing rain water equivalent
'fzrawe' = { 'fzrawe' = {
discipline = 0 ; discipline = 0 ;
@ -3791,13 +3714,6 @@
parameterNumber = 34 ; parameterNumber = 34 ;
typeOfFirstFixedSurface = 16 ; typeOfFirstFixedSurface = 16 ;
} }
#Geometric height of atmospheric isothermal level above ground
'haig' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 34 ;
typeOfFirstFixedSurface = 20 ;
}
#Roof temperature #Roof temperature
'rft' = { 'rft' = {
discipline = 0 ; discipline = 0 ;
@ -4660,14 +4576,6 @@
parameterNumber = 42 ; parameterNumber = 42 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean top net short-wave radiation flux, clear sky
'mtnswrfcs' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 11 ;
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Mean top net long-wave radiation flux, clear sky #Mean top net long-wave radiation flux, clear sky
'mtnlwrfcs' = { 'mtnlwrfcs' = {
discipline = 0 ; discipline = 0 ;
@ -5932,9 +5840,6 @@
#Total water precipitation #Total water precipitation
'twatp' = { 'twatp' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 49 ;
}
#Total snow precipitation #Total snow precipitation
'tsnowp' = { 'tsnowp' = {
discipline = 0 ; discipline = 0 ;
@ -5956,12 +5861,6 @@
parameterNumber = 52 ; parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
} }
#Total snowfall rate water equivalent
'tsrwe' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 53 ;
}
#Large scale precipitation rate #Large scale precipitation rate
'lsprate' = { 'lsprate' = {
discipline = 0 ; discipline = 0 ;
@ -6498,12 +6397,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 4 ; parameterNumber = 4 ;
} }
#Icing top
'icit' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 5 ;
}
#Icing base #Icing base
'icib' = { 'icib' = {
discipline = 0 ; discipline = 0 ;
@ -8687,15 +8580,6 @@
#Wind stress at sea surface #Wind stress at sea surface
'wst_sea' = { 'wst_sea' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
#Wind speed at 10m above sea surface #Wind speed at 10m above sea surface
'ws10_sea' = { 'ws10_sea' = {
discipline = 0 ; discipline = 0 ;
@ -9833,16 +9717,6 @@
#Time-mean wind stress at sea surface #Time-mean wind stress at sea surface
'avg_wst_sea' = { 'avg_wst_sea' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean wind speed at 10m above sea surface #Time-mean wind speed at 10m above sea surface
'avg_10ws_sea' = { 'avg_10ws_sea' = {
discipline = 0 ; discipline = 0 ;
@ -9947,45 +9821,6 @@
scaleFactorOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Time-accumulated net short wave radiation at sea surface
'acc_ssr_sea' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 9 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated total precipitation at sea surface
'tp_sea' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated snow precipitation at sea surface
'sn_sea' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 66 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Virtual temperature #Virtual temperature
'vtmp' = { 'vtmp' = {
discipline = 0 ; discipline = 0 ;
@ -10871,15 +10706,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 39 ; parameterNumber = 39 ;
} }
#10 metre wind direction
'dwi' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
typeOfFirstFixedSurface = 102 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#2D wave spectra (single) #2D wave spectra (single)
'd2fd' = { 'd2fd' = {
discipline = 10 ; discipline = 10 ;
@ -11096,14 +10922,6 @@
parameterNumber = 40 ; parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Time-mean surface net radiation flux (SW and LW)
'msnrf' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 0 ;
}
#Surface runoff #Surface runoff
'sro' = { 'sro' = {
discipline = 2 ; discipline = 2 ;
@ -11421,3 +11239,76 @@
scaledValueOfFirstFixedSurface = 100 ; scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#Time-mean total lightning flash density
'avg_litoti' = {
discipline = 0 ;
parameterCategory = 17 ;
parameterNumber = 4 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Time-maximum convective available potential energy
'max_cape' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 6 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 2 metre temperature
'max_2t' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 10 metre wind gust
'max_i10fg' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum convective available potential energy shear
'max_capes' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 19 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum total precipitation rate
'max_tprate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-minimum 2 metre temperature
'min_2t' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 3 ;
}
#Time-minimum total precipitation rate
'min_tprate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 3 ;
}

View File

@ -917,12 +917,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 193 ; parameterNumber = 193 ;
} }
#Accumulated ice water tendency
'aiw' = {
discipline = 192 ;
parameterCategory = 128 ;
parameterNumber = 249 ;
}
#Ice age #Ice age
'ice' = { 'ice' = {
discipline = 192 ; discipline = 192 ;
@ -1175,12 +1169,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#10 metre wind gust difference
'fgdiff10' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 49 ;
}
#Large-scale precipitation fraction difference #Large-scale precipitation fraction difference
'lspfdiff' = { 'lspfdiff' = {
discipline = 192 ; discipline = 192 ;
@ -1715,12 +1703,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Surface net radiation difference
'snrdiff' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 149 ;
}
#Top net radiation difference #Top net radiation difference
'tnrdiff' = { 'tnrdiff' = {
discipline = 192 ; discipline = 192 ;
@ -2293,12 +2275,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Accumulated ice water tendency difference
'aiwdiff' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 249 ;
}
#Ice age difference #Ice age difference
'icediff' = { 'icediff' = {
discipline = 192 ; discipline = 192 ;
@ -3332,12 +3308,6 @@
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Experimental product #Experimental product
'p49.212' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 49 ;
}
#Experimental product
'p50.212' = { 'p50.212' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -3932,12 +3902,6 @@
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Experimental product #Experimental product
'p149.212' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 149 ;
}
#Experimental product
'p150.212' = { 'p150.212' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4532,12 +4496,6 @@
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Experimental product #Experimental product
'p249.212' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 249 ;
}
#Experimental product
'p250.212' = { 'p250.212' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4890,13 +4848,6 @@
discipline = 192 ; discipline = 192 ;
parameterCategory = 213 ; parameterCategory = 213 ;
parameterNumber = 148 ; parameterNumber = 148 ;
}
#Random pattern 49 for SPP scheme
'spp49' = {
discipline = 192 ;
parameterCategory = 213 ;
parameterNumber = 149 ;
}
#Random pattern 50 for SPP scheme #Random pattern 50 for SPP scheme
'spp50' = { 'spp50' = {
discipline = 192 ; discipline = 192 ;
@ -5617,12 +5568,6 @@
parameterCategory = 214 ; parameterCategory = 214 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Clear-sky surface UV spectral flux (385-390 nm)
'uvsflxcs385390' = {
discipline = 192 ;
parameterCategory = 214 ;
parameterNumber = 49 ;
}
#Clear-sky surface UV spectral flux (390-395 nm) #Clear-sky surface UV spectral flux (390-395 nm)
'uvsflxcs390395' = { 'uvsflxcs390395' = {
discipline = 192 ; discipline = 192 ;
@ -5929,12 +5874,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Source/gain of hydrophobic organic matter aerosol
'aersrcomhphob' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 49 ;
}
#Source/gain of hydrophilic organic matter aerosol #Source/gain of hydrophilic organic matter aerosol
'aersrcomhphil' = { 'aersrcomhphil' = {
discipline = 192 ; discipline = 192 ;
@ -6529,12 +6468,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Single scattering albedo at 1640 nm
'ssa1640' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 149 ;
}
#Asymmetry factor at 340 nm #Asymmetry factor at 340 nm
'asymmetry340' = { 'asymmetry340' = {
discipline = 192 ; discipline = 192 ;

View File

@ -917,12 +917,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 193 ; parameterNumber = 193 ;
} }
#Accumulated ice water tendency
'Accumulated ice water tendency' = {
discipline = 192 ;
parameterCategory = 128 ;
parameterNumber = 249 ;
}
#Ice age #Ice age
'Ice age' = { 'Ice age' = {
discipline = 192 ; discipline = 192 ;
@ -1175,12 +1169,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#10 metre wind gust difference
'10 metre wind gust difference' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 49 ;
}
#Large-scale precipitation fraction difference #Large-scale precipitation fraction difference
'Large-scale precipitation fraction difference' = { 'Large-scale precipitation fraction difference' = {
discipline = 192 ; discipline = 192 ;
@ -1715,12 +1703,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Surface net radiation difference
'Surface net radiation difference' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 149 ;
}
#Top net radiation difference #Top net radiation difference
'Top net radiation difference' = { 'Top net radiation difference' = {
discipline = 192 ; discipline = 192 ;
@ -2293,12 +2275,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Accumulated ice water tendency difference
'Accumulated ice water tendency difference' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 249 ;
}
#Ice age difference #Ice age difference
'Ice age difference' = { 'Ice age difference' = {
discipline = 192 ; discipline = 192 ;
@ -3332,12 +3308,6 @@
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Experimental product #Experimental product
'Experimental product' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 49 ;
}
#Experimental product
'Experimental product' = { 'Experimental product' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -3932,12 +3902,6 @@
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Experimental product #Experimental product
'Experimental product' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 149 ;
}
#Experimental product
'Experimental product' = { 'Experimental product' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4532,12 +4496,6 @@
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Experimental product #Experimental product
'Experimental product' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 249 ;
}
#Experimental product
'Experimental product' = { 'Experimental product' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4890,13 +4848,6 @@
discipline = 192 ; discipline = 192 ;
parameterCategory = 213 ; parameterCategory = 213 ;
parameterNumber = 148 ; parameterNumber = 148 ;
}
#Random pattern 49 for SPP scheme
'Random pattern 49 for SPP scheme' = {
discipline = 192 ;
parameterCategory = 213 ;
parameterNumber = 149 ;
}
#Random pattern 50 for SPP scheme #Random pattern 50 for SPP scheme
'Random pattern 50 for SPP scheme' = { 'Random pattern 50 for SPP scheme' = {
discipline = 192 ; discipline = 192 ;
@ -5617,12 +5568,6 @@
parameterCategory = 214 ; parameterCategory = 214 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Clear-sky surface UV spectral flux (385-390 nm)
'Clear-sky surface UV spectral flux (385-390 nm)' = {
discipline = 192 ;
parameterCategory = 214 ;
parameterNumber = 49 ;
}
#Clear-sky surface UV spectral flux (390-395 nm) #Clear-sky surface UV spectral flux (390-395 nm)
'Clear-sky surface UV spectral flux (390-395 nm)' = { 'Clear-sky surface UV spectral flux (390-395 nm)' = {
discipline = 192 ; discipline = 192 ;
@ -5929,12 +5874,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Source/gain of hydrophobic organic matter aerosol
'Source/gain of hydrophobic organic matter aerosol' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 49 ;
}
#Source/gain of hydrophilic organic matter aerosol #Source/gain of hydrophilic organic matter aerosol
'Source/gain of hydrophilic organic matter aerosol' = { 'Source/gain of hydrophilic organic matter aerosol' = {
discipline = 192 ; discipline = 192 ;
@ -6529,12 +6468,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Single scattering albedo at 1640 nm
'Single scattering albedo at 1640 nm' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 149 ;
}
#Asymmetry factor at 340 nm #Asymmetry factor at 340 nm
'Asymmetry factor at 340 nm' = { 'Asymmetry factor at 340 nm' = {
discipline = 192 ; discipline = 192 ;

View File

@ -917,12 +917,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 193 ; parameterNumber = 193 ;
} }
#Accumulated ice water tendency
'249' = {
discipline = 192 ;
parameterCategory = 128 ;
parameterNumber = 249 ;
}
#Ice age #Ice age
'250' = { '250' = {
discipline = 192 ; discipline = 192 ;
@ -1175,12 +1169,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#10 metre wind gust difference
'200049' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 49 ;
}
#Large-scale precipitation fraction difference #Large-scale precipitation fraction difference
'200050' = { '200050' = {
discipline = 192 ; discipline = 192 ;
@ -1715,12 +1703,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Surface net radiation difference
'200149' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 149 ;
}
#Top net radiation difference #Top net radiation difference
'200150' = { '200150' = {
discipline = 192 ; discipline = 192 ;
@ -2293,12 +2275,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Accumulated ice water tendency difference
'200249' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 249 ;
}
#Ice age difference #Ice age difference
'200250' = { '200250' = {
discipline = 192 ; discipline = 192 ;
@ -3332,12 +3308,6 @@
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Experimental product #Experimental product
'212049' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 49 ;
}
#Experimental product
'212050' = { '212050' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -3932,12 +3902,6 @@
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Experimental product #Experimental product
'212149' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 149 ;
}
#Experimental product
'212150' = { '212150' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4532,12 +4496,6 @@
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Experimental product #Experimental product
'212249' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 249 ;
}
#Experimental product
'212250' = { '212250' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4890,13 +4848,6 @@
discipline = 192 ; discipline = 192 ;
parameterCategory = 213 ; parameterCategory = 213 ;
parameterNumber = 148 ; parameterNumber = 148 ;
}
#Random pattern 49 for SPP scheme
'213149' = {
discipline = 192 ;
parameterCategory = 213 ;
parameterNumber = 149 ;
}
#Random pattern 50 for SPP scheme #Random pattern 50 for SPP scheme
'213150' = { '213150' = {
discipline = 192 ; discipline = 192 ;
@ -5617,12 +5568,6 @@
parameterCategory = 214 ; parameterCategory = 214 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Clear-sky surface UV spectral flux (385-390 nm)
'214049' = {
discipline = 192 ;
parameterCategory = 214 ;
parameterNumber = 49 ;
}
#Clear-sky surface UV spectral flux (390-395 nm) #Clear-sky surface UV spectral flux (390-395 nm)
'214050' = { '214050' = {
discipline = 192 ; discipline = 192 ;
@ -5929,12 +5874,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Source/gain of hydrophobic organic matter aerosol
'215049' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 49 ;
}
#Source/gain of hydrophilic organic matter aerosol #Source/gain of hydrophilic organic matter aerosol
'215050' = { '215050' = {
discipline = 192 ; discipline = 192 ;
@ -6529,12 +6468,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Single scattering albedo at 1640 nm
'215149' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 149 ;
}
#Asymmetry factor at 340 nm #Asymmetry factor at 340 nm
'215150' = { '215150' = {
discipline = 192 ; discipline = 192 ;

View File

@ -917,12 +917,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 193 ; parameterNumber = 193 ;
} }
#Accumulated ice water tendency
'aiw' = {
discipline = 192 ;
parameterCategory = 128 ;
parameterNumber = 249 ;
}
#Ice age #Ice age
'ice' = { 'ice' = {
discipline = 192 ; discipline = 192 ;
@ -1175,12 +1169,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#10 metre wind gust difference
'10fgdiff' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 49 ;
}
#Large-scale precipitation fraction difference #Large-scale precipitation fraction difference
'lspfdiff' = { 'lspfdiff' = {
discipline = 192 ; discipline = 192 ;
@ -1715,12 +1703,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Surface net radiation difference
'snrdiff' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 149 ;
}
#Top net radiation difference #Top net radiation difference
'tnrdiff' = { 'tnrdiff' = {
discipline = 192 ; discipline = 192 ;
@ -2293,12 +2275,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Accumulated ice water tendency difference
'aiwdiff' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 249 ;
}
#Ice age difference #Ice age difference
'icediff' = { 'icediff' = {
discipline = 192 ; discipline = 192 ;
@ -3332,12 +3308,6 @@
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 49 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -3932,12 +3902,6 @@
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 149 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4532,12 +4496,6 @@
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 249 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4890,13 +4848,6 @@
discipline = 192 ; discipline = 192 ;
parameterCategory = 213 ; parameterCategory = 213 ;
parameterNumber = 148 ; parameterNumber = 148 ;
}
#Random pattern 49 for SPP scheme
'spp49' = {
discipline = 192 ;
parameterCategory = 213 ;
parameterNumber = 149 ;
}
#Random pattern 50 for SPP scheme #Random pattern 50 for SPP scheme
'spp50' = { 'spp50' = {
discipline = 192 ; discipline = 192 ;
@ -5617,12 +5568,6 @@
parameterCategory = 214 ; parameterCategory = 214 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Clear-sky surface UV spectral flux (385-390 nm)
'uvsflxcs385390' = {
discipline = 192 ;
parameterCategory = 214 ;
parameterNumber = 49 ;
}
#Clear-sky surface UV spectral flux (390-395 nm) #Clear-sky surface UV spectral flux (390-395 nm)
'uvsflxcs390395' = { 'uvsflxcs390395' = {
discipline = 192 ; discipline = 192 ;
@ -5929,12 +5874,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Source/gain of hydrophobic organic matter aerosol
'aersrcomhphob' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 49 ;
}
#Source/gain of hydrophilic organic matter aerosol #Source/gain of hydrophilic organic matter aerosol
'aersrcomhphil' = { 'aersrcomhphil' = {
discipline = 192 ; discipline = 192 ;
@ -6529,12 +6468,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Single scattering albedo at 1640 nm
'ssa1640' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 149 ;
}
#Asymmetry factor at 340 nm #Asymmetry factor at 340 nm
'asymmetry340' = { 'asymmetry340' = {
discipline = 192 ; discipline = 192 ;

View File

@ -917,12 +917,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 193 ; parameterNumber = 193 ;
} }
#Accumulated ice water tendency
'(-1 to 1)' = {
discipline = 192 ;
parameterCategory = 128 ;
parameterNumber = 249 ;
}
#Ice age #Ice age
'(0 - 1)' = { '(0 - 1)' = {
discipline = 192 ; discipline = 192 ;
@ -1175,12 +1169,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#10 metre wind gust difference
'm s**-1' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 49 ;
}
#Large-scale precipitation fraction difference #Large-scale precipitation fraction difference
's' = { 's' = {
discipline = 192 ; discipline = 192 ;
@ -1715,12 +1703,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Surface net radiation difference
'J m**-2' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 149 ;
}
#Top net radiation difference #Top net radiation difference
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
@ -2293,12 +2275,6 @@
parameterCategory = 200 ; parameterCategory = 200 ;
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Accumulated ice water tendency difference
'(-1 to 1)' = {
discipline = 192 ;
parameterCategory = 200 ;
parameterNumber = 249 ;
}
#Ice age difference #Ice age difference
'(0 - 1)' = { '(0 - 1)' = {
discipline = 192 ; discipline = 192 ;
@ -3332,12 +3308,6 @@
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 49 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -3932,12 +3902,6 @@
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 149 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4532,12 +4496,6 @@
parameterNumber = 248 ; parameterNumber = 248 ;
} }
#Experimental product #Experimental product
'~' = {
discipline = 192 ;
parameterCategory = 212 ;
parameterNumber = 249 ;
}
#Experimental product
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;
parameterCategory = 212 ; parameterCategory = 212 ;
@ -4890,13 +4848,6 @@
discipline = 192 ; discipline = 192 ;
parameterCategory = 213 ; parameterCategory = 213 ;
parameterNumber = 148 ; parameterNumber = 148 ;
}
#Random pattern 49 for SPP scheme
'dimensionless' = {
discipline = 192 ;
parameterCategory = 213 ;
parameterNumber = 149 ;
}
#Random pattern 50 for SPP scheme #Random pattern 50 for SPP scheme
'dimensionless' = { 'dimensionless' = {
discipline = 192 ; discipline = 192 ;
@ -5617,12 +5568,6 @@
parameterCategory = 214 ; parameterCategory = 214 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Clear-sky surface UV spectral flux (385-390 nm)
'W m**-2' = {
discipline = 192 ;
parameterCategory = 214 ;
parameterNumber = 49 ;
}
#Clear-sky surface UV spectral flux (390-395 nm) #Clear-sky surface UV spectral flux (390-395 nm)
'W m**-2' = { 'W m**-2' = {
discipline = 192 ; discipline = 192 ;
@ -5929,12 +5874,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 48 ; parameterNumber = 48 ;
} }
#Source/gain of hydrophobic organic matter aerosol
'kg m**-2 s**-1' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 49 ;
}
#Source/gain of hydrophilic organic matter aerosol #Source/gain of hydrophilic organic matter aerosol
'kg m**-2 s**-1' = { 'kg m**-2 s**-1' = {
discipline = 192 ; discipline = 192 ;
@ -6529,12 +6468,6 @@
parameterCategory = 215 ; parameterCategory = 215 ;
parameterNumber = 148 ; parameterNumber = 148 ;
} }
#Single scattering albedo at 1640 nm
'(0 - 1)' = {
discipline = 192 ;
parameterCategory = 215 ;
parameterNumber = 149 ;
}
#Asymmetry factor at 340 nm #Asymmetry factor at 340 nm
'~' = { '~' = {
discipline = 192 ; discipline = 192 ;

View File

@ -254,16 +254,6 @@
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Maximum 10 metre wind gust since previous post-processing
'Maximum 10 metre wind gust since previous post-processing' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Large-scale precipitation fraction #Large-scale precipitation fraction
'Large-scale precipitation fraction' = { 'Large-scale precipitation fraction' = {
discipline = 0 ; discipline = 0 ;
@ -444,11 +434,6 @@
#Total column water #Total column water
'Total column water' = { 'Total column water' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 51 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
#Total column vertically-integrated water vapour #Total column vertically-integrated water vapour
'Total column vertically-integrated water vapour' = { 'Total column vertically-integrated water vapour' = {
discipline = 0 ; discipline = 0 ;
@ -492,14 +477,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 76 ; parameterNumber = 76 ;
} }
#Surface net radiation (SW and LW)
'Surface net radiation (SW and LW)' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Top net radiation (SW and LW) #Top net radiation (SW and LW)
'Top net radiation (SW and LW)' = { 'Top net radiation (SW and LW)' = {
discipline = 0 ; discipline = 0 ;
@ -508,13 +485,6 @@
typeOfFirstFixedSurface = 8 ; typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Mean sea level pressure
'Mean sea level pressure' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 101 ;
}
#Divergence #Divergence
'Divergence' = { 'Divergence' = {
discipline = 0 ; discipline = 0 ;
@ -1259,15 +1229,9 @@
#Mean wave period of second swell partition #Mean wave period of second swell partition
'Mean wave period of second swell partition' = { 'Mean wave period of second swell partition' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 51 ;
}
#Significant wave height of third swell partition #Significant wave height of third swell partition
'Significant wave height of third swell partition' = { 'Significant wave height of third swell partition' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Mean wave direction of third swell partition #Mean wave direction of third swell partition
'Mean wave direction of third swell partition' = { 'Mean wave direction of third swell partition' = {
discipline = 10 ; discipline = 10 ;
@ -1368,18 +1332,6 @@
parameterNumber = 15 ; parameterNumber = 15 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean sea water temperature in the upper 300 m
'Mean sea water temperature in the upper 300 m' = {
discipline = 10 ;
parameterCategory = 4 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 160 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
#Total column vertically-integrated water enthalpy #Total column vertically-integrated water enthalpy
'Total column vertically-integrated water enthalpy' = { 'Total column vertically-integrated water enthalpy' = {
discipline = 0 ; discipline = 0 ;
@ -1481,14 +1433,6 @@
parameterNumber = 59 ; parameterNumber = 59 ;
typeOfGeneratingProcess = 9 ; typeOfGeneratingProcess = 9 ;
} }
#Ammonium aerosol mass mixing ratio
'Ammonium aerosol mass mixing ratio' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
is_aerosol = 1 ;
}
#Nitrate aerosol optical depth at 550 nm #Nitrate aerosol optical depth at 550 nm
'Nitrate aerosol optical depth at 550 nm' = { 'Nitrate aerosol optical depth at 550 nm' = {
discipline = 0 ; discipline = 0 ;
@ -1574,15 +1518,6 @@
is_chemical_srcsink = 1 ; is_chemical_srcsink = 1 ;
sourceSinkChemicalPhysicalProcess = 7 ; sourceSinkChemicalPhysicalProcess = 7 ;
} }
#Ammonium aerosol mass mixing ratio
'Ammonium aerosol mass mixing ratio' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
typeOfGeneratingProcess = 20 ;
is_aerosol = 1 ;
}
#Biogenic secondary organic aerosol mass mixing ratio increment #Biogenic secondary organic aerosol mass mixing ratio increment
'Biogenic secondary organic aerosol mass mixing ratio increment' = { 'Biogenic secondary organic aerosol mass mixing ratio increment' = {
discipline = 0 ; discipline = 0 ;
@ -3366,15 +3301,6 @@
scaledValueOfFirstFixedSurface = 200 ; scaledValueOfFirstFixedSurface = 200 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#100 metre wind speed
'100 metre wind speed' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 1 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#Urban cover #Urban cover
'Urban cover' = { 'Urban cover' = {
discipline = 2 ; discipline = 2 ;
@ -3438,9 +3364,6 @@
#C4 grass cover #C4 grass cover
'C4 grass cover' = { 'C4 grass cover' = {
discipline = 2 ; discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Accumulated freezing rain water equivalent #Accumulated freezing rain water equivalent
'Accumulated freezing rain water equivalent' = { 'Accumulated freezing rain water equivalent' = {
discipline = 0 ; discipline = 0 ;
@ -3791,13 +3714,6 @@
parameterNumber = 34 ; parameterNumber = 34 ;
typeOfFirstFixedSurface = 16 ; typeOfFirstFixedSurface = 16 ;
} }
#Geometric height of atmospheric isothermal level above ground
'Geometric height of atmospheric isothermal level above ground' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 34 ;
typeOfFirstFixedSurface = 20 ;
}
#Roof temperature #Roof temperature
'Roof temperature' = { 'Roof temperature' = {
discipline = 0 ; discipline = 0 ;
@ -4660,14 +4576,6 @@
parameterNumber = 42 ; parameterNumber = 42 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean top net short-wave radiation flux, clear sky
'Mean top net short-wave radiation flux, clear sky' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 11 ;
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Mean top net long-wave radiation flux, clear sky #Mean top net long-wave radiation flux, clear sky
'Mean top net long-wave radiation flux, clear sky' = { 'Mean top net long-wave radiation flux, clear sky' = {
discipline = 0 ; discipline = 0 ;
@ -5932,9 +5840,6 @@
#Total water precipitation #Total water precipitation
'Total water precipitation' = { 'Total water precipitation' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 49 ;
}
#Total snow precipitation #Total snow precipitation
'Total snow precipitation' = { 'Total snow precipitation' = {
discipline = 0 ; discipline = 0 ;
@ -5956,12 +5861,6 @@
parameterNumber = 52 ; parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
} }
#Total snowfall rate water equivalent
'Total snowfall rate water equivalent' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 53 ;
}
#Large scale precipitation rate #Large scale precipitation rate
'Large scale precipitation rate' = { 'Large scale precipitation rate' = {
discipline = 0 ; discipline = 0 ;
@ -6498,12 +6397,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 4 ; parameterNumber = 4 ;
} }
#Icing top
'Icing top' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 5 ;
}
#Icing base #Icing base
'Icing base' = { 'Icing base' = {
discipline = 0 ; discipline = 0 ;
@ -8687,15 +8580,6 @@
#Wind stress at sea surface #Wind stress at sea surface
'Wind stress at sea surface' = { 'Wind stress at sea surface' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
#Wind speed at 10m above sea surface #Wind speed at 10m above sea surface
'Wind speed at 10m above sea surface' = { 'Wind speed at 10m above sea surface' = {
discipline = 0 ; discipline = 0 ;
@ -9833,16 +9717,6 @@
#Time-mean wind stress at sea surface #Time-mean wind stress at sea surface
'Time-mean wind stress at sea surface' = { 'Time-mean wind stress at sea surface' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean wind speed at 10m above sea surface #Time-mean wind speed at 10m above sea surface
'Time-mean wind speed at 10m above sea surface' = { 'Time-mean wind speed at 10m above sea surface' = {
discipline = 0 ; discipline = 0 ;
@ -9947,45 +9821,6 @@
scaleFactorOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Time-accumulated net short wave radiation at sea surface
'Time-accumulated net short wave radiation at sea surface' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 9 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated total precipitation at sea surface
'Time-accumulated total precipitation at sea surface' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated snow precipitation at sea surface
'Time-accumulated snow precipitation at sea surface' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 66 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Virtual temperature #Virtual temperature
'Virtual temperature' = { 'Virtual temperature' = {
discipline = 0 ; discipline = 0 ;
@ -10871,15 +10706,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 39 ; parameterNumber = 39 ;
} }
#10 metre wind direction
'10 metre wind direction' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
typeOfFirstFixedSurface = 102 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#2D wave spectra (single) #2D wave spectra (single)
'2D wave spectra (single)' = { '2D wave spectra (single)' = {
discipline = 10 ; discipline = 10 ;
@ -11096,14 +10922,6 @@
parameterNumber = 40 ; parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Time-mean surface net radiation flux (SW and LW)
'Time-mean surface net radiation flux (SW and LW)' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 0 ;
}
#Surface runoff #Surface runoff
'Surface runoff' = { 'Surface runoff' = {
discipline = 2 ; discipline = 2 ;
@ -11421,3 +11239,76 @@
scaledValueOfFirstFixedSurface = 100 ; scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#Time-mean total lightning flash density
'Time-mean total lightning flash density' = {
discipline = 0 ;
parameterCategory = 17 ;
parameterNumber = 4 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Time-maximum convective available potential energy
'Time-maximum convective available potential energy' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 6 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 2 metre temperature
'Time-maximum 2 metre temperature' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 10 metre wind gust
'Time-maximum 10 metre wind gust' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum convective available potential energy shear
'Time-maximum convective available potential energy shear' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 19 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum total precipitation rate
'Time-maximum total precipitation rate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-minimum 2 metre temperature
'Time-minimum 2 metre temperature' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 3 ;
}
#Time-minimum total precipitation rate
'Time-minimum total precipitation rate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 3 ;
}

View File

@ -254,16 +254,6 @@
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Maximum 10 metre wind gust since previous post-processing
'49' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Large-scale precipitation fraction #Large-scale precipitation fraction
'50' = { '50' = {
discipline = 0 ; discipline = 0 ;
@ -444,11 +434,6 @@
#Total column water #Total column water
'136' = { '136' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 51 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
#Total column vertically-integrated water vapour #Total column vertically-integrated water vapour
'137' = { '137' = {
discipline = 0 ; discipline = 0 ;
@ -492,14 +477,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 76 ; parameterNumber = 76 ;
} }
#Surface net radiation (SW and LW)
'149' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Top net radiation (SW and LW) #Top net radiation (SW and LW)
'150' = { '150' = {
discipline = 0 ; discipline = 0 ;
@ -508,13 +485,6 @@
typeOfFirstFixedSurface = 8 ; typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Mean sea level pressure
'151' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 101 ;
}
#Divergence #Divergence
'155' = { '155' = {
discipline = 0 ; discipline = 0 ;
@ -1259,15 +1229,9 @@
#Mean wave period of second swell partition #Mean wave period of second swell partition
'140126' = { '140126' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 51 ;
}
#Significant wave height of third swell partition #Significant wave height of third swell partition
'140127' = { '140127' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Mean wave direction of third swell partition #Mean wave direction of third swell partition
'140128' = { '140128' = {
discipline = 10 ; discipline = 10 ;
@ -1368,18 +1332,6 @@
parameterNumber = 15 ; parameterNumber = 15 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean sea water temperature in the upper 300 m
'151127' = {
discipline = 10 ;
parameterCategory = 4 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 160 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
#Total column vertically-integrated water enthalpy #Total column vertically-integrated water enthalpy
'162093' = { '162093' = {
discipline = 0 ; discipline = 0 ;
@ -1481,14 +1433,6 @@
parameterNumber = 59 ; parameterNumber = 59 ;
typeOfGeneratingProcess = 9 ; typeOfGeneratingProcess = 9 ;
} }
#Ammonium aerosol mass mixing ratio
'210249' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
is_aerosol = 1 ;
}
#Nitrate aerosol optical depth at 550 nm #Nitrate aerosol optical depth at 550 nm
'210250' = { '210250' = {
discipline = 0 ; discipline = 0 ;
@ -1574,15 +1518,6 @@
is_chemical_srcsink = 1 ; is_chemical_srcsink = 1 ;
sourceSinkChemicalPhysicalProcess = 7 ; sourceSinkChemicalPhysicalProcess = 7 ;
} }
#Ammonium aerosol mass mixing ratio
'211249' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
typeOfGeneratingProcess = 20 ;
is_aerosol = 1 ;
}
#Biogenic secondary organic aerosol mass mixing ratio increment #Biogenic secondary organic aerosol mass mixing ratio increment
'211252' = { '211252' = {
discipline = 0 ; discipline = 0 ;
@ -3366,15 +3301,6 @@
scaledValueOfFirstFixedSurface = 200 ; scaledValueOfFirstFixedSurface = 200 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#100 metre wind speed
'228249' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 1 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#Urban cover #Urban cover
'229001' = { '229001' = {
discipline = 2 ; discipline = 2 ;
@ -3438,9 +3364,6 @@
#C4 grass cover #C4 grass cover
'229011' = { '229011' = {
discipline = 2 ; discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Accumulated freezing rain water equivalent #Accumulated freezing rain water equivalent
'231001' = { '231001' = {
discipline = 0 ; discipline = 0 ;
@ -3791,13 +3714,6 @@
parameterNumber = 34 ; parameterNumber = 34 ;
typeOfFirstFixedSurface = 16 ; typeOfFirstFixedSurface = 16 ;
} }
#Geometric height of atmospheric isothermal level above ground
'231049' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 34 ;
typeOfFirstFixedSurface = 20 ;
}
#Roof temperature #Roof temperature
'231050' = { '231050' = {
discipline = 0 ; discipline = 0 ;
@ -4660,14 +4576,6 @@
parameterNumber = 42 ; parameterNumber = 42 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean top net short-wave radiation flux, clear sky
'235049' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 11 ;
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Mean top net long-wave radiation flux, clear sky #Mean top net long-wave radiation flux, clear sky
'235050' = { '235050' = {
discipline = 0 ; discipline = 0 ;
@ -5932,9 +5840,6 @@
#Total water precipitation #Total water precipitation
'260045' = { '260045' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 49 ;
}
#Total snow precipitation #Total snow precipitation
'260046' = { '260046' = {
discipline = 0 ; discipline = 0 ;
@ -5956,12 +5861,6 @@
parameterNumber = 52 ; parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
} }
#Total snowfall rate water equivalent
'260049' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 53 ;
}
#Large scale precipitation rate #Large scale precipitation rate
'260050' = { '260050' = {
discipline = 0 ; discipline = 0 ;
@ -6498,12 +6397,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 4 ; parameterNumber = 4 ;
} }
#Icing top
'260149' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 5 ;
}
#Icing base #Icing base
'260150' = { '260150' = {
discipline = 0 ; discipline = 0 ;
@ -8687,15 +8580,6 @@
#Wind stress at sea surface #Wind stress at sea surface
'262901' = { '262901' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
#Wind speed at 10m above sea surface #Wind speed at 10m above sea surface
'262902' = { '262902' = {
discipline = 0 ; discipline = 0 ;
@ -9833,16 +9717,6 @@
#Time-mean wind stress at sea surface #Time-mean wind stress at sea surface
'263901' = { '263901' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean wind speed at 10m above sea surface #Time-mean wind speed at 10m above sea surface
'263902' = { '263902' = {
discipline = 0 ; discipline = 0 ;
@ -9947,45 +9821,6 @@
scaleFactorOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Time-accumulated net short wave radiation at sea surface
'264900' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 9 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated total precipitation at sea surface
'264904' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated snow precipitation at sea surface
'264905' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 66 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Virtual temperature #Virtual temperature
'300012' = { '300012' = {
discipline = 0 ; discipline = 0 ;
@ -10871,15 +10706,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 39 ; parameterNumber = 39 ;
} }
#10 metre wind direction
'140249' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
typeOfFirstFixedSurface = 102 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#2D wave spectra (single) #2D wave spectra (single)
'140251' = { '140251' = {
discipline = 10 ; discipline = 10 ;
@ -11096,14 +10922,6 @@
parameterNumber = 40 ; parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Time-mean surface net radiation flux (SW and LW)
'172149' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 0 ;
}
#Surface runoff #Surface runoff
'174008' = { '174008' = {
discipline = 2 ; discipline = 2 ;
@ -11421,3 +11239,76 @@
scaledValueOfFirstFixedSurface = 100 ; scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#Time-mean total lightning flash density
'235326' = {
discipline = 0 ;
parameterCategory = 17 ;
parameterNumber = 4 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Time-maximum convective available potential energy
'237287' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 6 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 2 metre temperature
'237167' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 10 metre wind gust
'237318' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum convective available potential energy shear
'237321' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 19 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum total precipitation rate
'237055' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-minimum 2 metre temperature
'238167' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 3 ;
}
#Time-minimum total precipitation rate
'238055' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 3 ;
}

View File

@ -51,7 +51,7 @@ concept datasetForLocal(unknown) {
"unknown" = { dummy=1; } "unknown" = { dummy=1; }
} }
if (datasetForLocal isnot "unknown") { if (!(datasetForLocal is "unknown")) {
constant conceptsDir2 = "grib2/localConcepts/[datasetForLocal]": hidden; constant conceptsDir2 = "grib2/localConcepts/[datasetForLocal]": hidden;
constant conceptsDir1 = "grib2": hidden; constant conceptsDir1 = "grib2": hidden;
} }
@ -127,4 +127,7 @@ if (paramId >= 140000 && paramId < 141000 &&
alias mars.paramtype = paramTypeWave; alias mars.paramtype = paramTypeWave;
} }
template timeproc "grib2/timeproc.def";
alias mars.timeproc = timeproc ;
meta md5Section4 md5(offsetSection4,section4Length); meta md5Section4 md5(offsetSection4,section4Length);

View File

@ -254,16 +254,6 @@
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Maximum 10 metre wind gust since previous post-processing
'10fg' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Large-scale precipitation fraction #Large-scale precipitation fraction
'lspf' = { 'lspf' = {
discipline = 0 ; discipline = 0 ;
@ -444,11 +434,6 @@
#Total column water #Total column water
'tcw' = { 'tcw' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 51 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
#Total column vertically-integrated water vapour #Total column vertically-integrated water vapour
'tcwv' = { 'tcwv' = {
discipline = 0 ; discipline = 0 ;
@ -492,14 +477,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 76 ; parameterNumber = 76 ;
} }
#Surface net radiation (SW and LW)
'snr' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Top net radiation (SW and LW) #Top net radiation (SW and LW)
'tnr' = { 'tnr' = {
discipline = 0 ; discipline = 0 ;
@ -508,13 +485,6 @@
typeOfFirstFixedSurface = 8 ; typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Mean sea level pressure
'msl' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 101 ;
}
#Divergence #Divergence
'd' = { 'd' = {
discipline = 0 ; discipline = 0 ;
@ -1259,15 +1229,9 @@
#Mean wave period of second swell partition #Mean wave period of second swell partition
'mwp2' = { 'mwp2' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 51 ;
}
#Significant wave height of third swell partition #Significant wave height of third swell partition
'swh3' = { 'swh3' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Mean wave direction of third swell partition #Mean wave direction of third swell partition
'mwd3' = { 'mwd3' = {
discipline = 10 ; discipline = 10 ;
@ -1368,18 +1332,6 @@
parameterNumber = 15 ; parameterNumber = 15 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean sea water temperature in the upper 300 m
'mswt300m' = {
discipline = 10 ;
parameterCategory = 4 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 160 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
#Total column vertically-integrated water enthalpy #Total column vertically-integrated water enthalpy
'viwe' = { 'viwe' = {
discipline = 0 ; discipline = 0 ;
@ -1481,14 +1433,6 @@
parameterNumber = 59 ; parameterNumber = 59 ;
typeOfGeneratingProcess = 9 ; typeOfGeneratingProcess = 9 ;
} }
#Ammonium aerosol mass mixing ratio
'aermr18' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
is_aerosol = 1 ;
}
#Nitrate aerosol optical depth at 550 nm #Nitrate aerosol optical depth at 550 nm
'niaod550' = { 'niaod550' = {
discipline = 0 ; discipline = 0 ;
@ -1574,15 +1518,6 @@
is_chemical_srcsink = 1 ; is_chemical_srcsink = 1 ;
sourceSinkChemicalPhysicalProcess = 7 ; sourceSinkChemicalPhysicalProcess = 7 ;
} }
#Ammonium aerosol mass mixing ratio
'aermr18diff' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
typeOfGeneratingProcess = 20 ;
is_aerosol = 1 ;
}
#Biogenic secondary organic aerosol mass mixing ratio increment #Biogenic secondary organic aerosol mass mixing ratio increment
'aermr19diff' = { 'aermr19diff' = {
discipline = 0 ; discipline = 0 ;
@ -3366,15 +3301,6 @@
scaledValueOfFirstFixedSurface = 200 ; scaledValueOfFirstFixedSurface = 200 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#100 metre wind speed
'100si' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 1 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#Urban cover #Urban cover
'cur' = { 'cur' = {
discipline = 2 ; discipline = 2 ;
@ -3438,9 +3364,6 @@
#C4 grass cover #C4 grass cover
'c4gr' = { 'c4gr' = {
discipline = 2 ; discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Accumulated freezing rain water equivalent #Accumulated freezing rain water equivalent
'fzrawe' = { 'fzrawe' = {
discipline = 0 ; discipline = 0 ;
@ -3791,13 +3714,6 @@
parameterNumber = 34 ; parameterNumber = 34 ;
typeOfFirstFixedSurface = 16 ; typeOfFirstFixedSurface = 16 ;
} }
#Geometric height of atmospheric isothermal level above ground
'haig' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 34 ;
typeOfFirstFixedSurface = 20 ;
}
#Roof temperature #Roof temperature
'rft' = { 'rft' = {
discipline = 0 ; discipline = 0 ;
@ -4660,14 +4576,6 @@
parameterNumber = 42 ; parameterNumber = 42 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean top net short-wave radiation flux, clear sky
'mtnswrfcs' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 11 ;
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Mean top net long-wave radiation flux, clear sky #Mean top net long-wave radiation flux, clear sky
'mtnlwrfcs' = { 'mtnlwrfcs' = {
discipline = 0 ; discipline = 0 ;
@ -5932,9 +5840,6 @@
#Total water precipitation #Total water precipitation
'twatp' = { 'twatp' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 49 ;
}
#Total snow precipitation #Total snow precipitation
'tsnowp' = { 'tsnowp' = {
discipline = 0 ; discipline = 0 ;
@ -5956,12 +5861,6 @@
parameterNumber = 52 ; parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
} }
#Total snowfall rate water equivalent
'tsrwe' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 53 ;
}
#Large scale precipitation rate #Large scale precipitation rate
'lsprate' = { 'lsprate' = {
discipline = 0 ; discipline = 0 ;
@ -6498,12 +6397,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 4 ; parameterNumber = 4 ;
} }
#Icing top
'icit' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 5 ;
}
#Icing base #Icing base
'icib' = { 'icib' = {
discipline = 0 ; discipline = 0 ;
@ -8687,15 +8580,6 @@
#Wind stress at sea surface #Wind stress at sea surface
'wst_sea' = { 'wst_sea' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
#Wind speed at 10m above sea surface #Wind speed at 10m above sea surface
'10ws_sea' = { '10ws_sea' = {
discipline = 0 ; discipline = 0 ;
@ -9833,16 +9717,6 @@
#Time-mean wind stress at sea surface #Time-mean wind stress at sea surface
'avg_wst_sea' = { 'avg_wst_sea' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean wind speed at 10m above sea surface #Time-mean wind speed at 10m above sea surface
'avg_10ws_sea' = { 'avg_10ws_sea' = {
discipline = 0 ; discipline = 0 ;
@ -9947,45 +9821,6 @@
scaleFactorOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Time-accumulated net short wave radiation at sea surface
'acc_ssr_sea' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 9 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated total precipitation at sea surface
'tp_sea' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated snow precipitation at sea surface
'sn_sea' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 66 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Virtual temperature #Virtual temperature
'vtmp' = { 'vtmp' = {
discipline = 0 ; discipline = 0 ;
@ -10871,15 +10706,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 39 ; parameterNumber = 39 ;
} }
#10 metre wind direction
'dwi' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
typeOfFirstFixedSurface = 102 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#2D wave spectra (single) #2D wave spectra (single)
'2dfd' = { '2dfd' = {
discipline = 10 ; discipline = 10 ;
@ -11096,14 +10922,6 @@
parameterNumber = 40 ; parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Time-mean surface net radiation flux (SW and LW)
'msnrf' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 0 ;
}
#Surface runoff #Surface runoff
'sro' = { 'sro' = {
discipline = 2 ; discipline = 2 ;
@ -11421,3 +11239,76 @@
scaledValueOfFirstFixedSurface = 100 ; scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#Time-mean total lightning flash density
'avg_litoti' = {
discipline = 0 ;
parameterCategory = 17 ;
parameterNumber = 4 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Time-maximum convective available potential energy
'max_cape' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 6 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 2 metre temperature
'max_2t' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 10 metre wind gust
'max_i10fg' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum convective available potential energy shear
'max_capes' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 19 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum total precipitation rate
'max_tprate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-minimum 2 metre temperature
'min_2t' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 3 ;
}
#Time-minimum total precipitation rate
'min_tprate' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 3 ;
}

View File

@ -0,0 +1,46 @@
concept timeproc {
# either instantaneous data or processing is specified by mars stream
"point-in-time" = {stepType="instant";}
"point-in-time" = {stream="mnth"; numberOfTimeRange=1;}
"point-in-time" = {stream="mmsa"; numberOfTimeRange=1;}
"point-in-time" = {stream="msmm"; numberOfTimeRange=1;}
#
### Accumulations ###
# we need to do this dataset dependent, in some datasets we might have
# hourly rolling accumulations and we don't want to have the first in a different bucket
## since start accumulation must have forecastTime=0
# hourly
"since-start" = {typeOfStatisticalProcessing=1; forecastTime=0; indicatorOfUnitOfTimeRange=1;}
# 24 hourly time unit
"since-start" = {typeOfStatisticalProcessing=1; forecastTime=0; indicatorOfUnitOfTimeRange=2;}
## 1h rolling accumulation
"1h" = {typeOfStatisticalProcessing=1; indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 1; class=d1;}
## 24h rolling accumulation
"24h" = {typeOfStatisticalProcessing=1; indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 24; class=d1;}
"24h" = {typeOfStatisticalProcessing=1; indicatorOfUnitOfTimeRange=2; lengthOfTimeRange = 1; class=d1;}
### end Accumulations ###
#
### mean/min/max/stdev ###
"1h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 1;}
"3h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 3;}
"3h" = {indicatorOfUnitOfTimeRange=10; lengthOfTimeRange = 1;}
"6h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 6;}
"6h" = {indicatorOfUnitOfTimeRange=11; lengthOfTimeRange = 1;}
"12h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 12;}
"12h" = {indicatorOfUnitOfTimeRange=12; lengthOfTimeRange = 1;}
"18h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 18;}
"24h" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 24;}
"24h" = {indicatorOfUnitOfTimeRange=2; lengthOfTimeRange = 1;}
"7 days" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 168;}
# 28 days
"month" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 672;}
# 29 days
"month" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 696;}
# 30 days
"month" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 720;}
# 31 days
"month" = {indicatorOfUnitOfTimeRange=1; lengthOfTimeRange = 744;}
# time unit month
"month" = {indicatorOfUnitOfTimeRange=3; lengthOfTimeRange = 1;}
### end mean/min/max/stdev ###
}

View File

@ -254,16 +254,6 @@
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Maximum 10 metre wind gust since previous post-processing
'm s**-1' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Large-scale precipitation fraction #Large-scale precipitation fraction
's' = { 's' = {
discipline = 0 ; discipline = 0 ;
@ -444,11 +434,6 @@
#Total column water #Total column water
'kg m**-2' = { 'kg m**-2' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 51 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
}
#Total column vertically-integrated water vapour #Total column vertically-integrated water vapour
'kg m**-2' = { 'kg m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -492,14 +477,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 76 ; parameterNumber = 76 ;
} }
#Surface net radiation (SW and LW)
'J m**-2' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Top net radiation (SW and LW) #Top net radiation (SW and LW)
'J m**-2' = { 'J m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -508,13 +485,6 @@
typeOfFirstFixedSurface = 8 ; typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Mean sea level pressure
'Pa' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 101 ;
}
#Divergence #Divergence
's**-1' = { 's**-1' = {
discipline = 0 ; discipline = 0 ;
@ -1259,15 +1229,9 @@
#Mean wave period of second swell partition #Mean wave period of second swell partition
's' = { 's' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 51 ;
}
#Significant wave height of third swell partition #Significant wave height of third swell partition
'm' = { 'm' = {
discipline = 10 ; discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Mean wave direction of third swell partition #Mean wave direction of third swell partition
'degrees' = { 'degrees' = {
discipline = 10 ; discipline = 10 ;
@ -1368,18 +1332,6 @@
parameterNumber = 15 ; parameterNumber = 15 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean sea water temperature in the upper 300 m
'K' = {
discipline = 10 ;
parameterCategory = 4 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 160 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = 300 ;
scaleFactorOfSecondFixedSurface = 0 ;
}
#Total column vertically-integrated water enthalpy #Total column vertically-integrated water enthalpy
'J m**-2' = { 'J m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -1481,14 +1433,6 @@
parameterNumber = 59 ; parameterNumber = 59 ;
typeOfGeneratingProcess = 9 ; typeOfGeneratingProcess = 9 ;
} }
#Ammonium aerosol mass mixing ratio
'kg kg**-1' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
is_aerosol = 1 ;
}
#Nitrate aerosol optical depth at 550 nm #Nitrate aerosol optical depth at 550 nm
'dimensionless' = { 'dimensionless' = {
discipline = 0 ; discipline = 0 ;
@ -1574,15 +1518,6 @@
is_chemical_srcsink = 1 ; is_chemical_srcsink = 1 ;
sourceSinkChemicalPhysicalProcess = 7 ; sourceSinkChemicalPhysicalProcess = 7 ;
} }
#Ammonium aerosol mass mixing ratio
'kg kg**-1' = {
discipline = 0 ;
parameterCategory = 20 ;
parameterNumber = 2 ;
aerosolType = 62003 ;
typeOfGeneratingProcess = 20 ;
is_aerosol = 1 ;
}
#Biogenic secondary organic aerosol mass mixing ratio increment #Biogenic secondary organic aerosol mass mixing ratio increment
'kg kg**-1' = { 'kg kg**-1' = {
discipline = 0 ; discipline = 0 ;
@ -3366,15 +3301,6 @@
scaledValueOfFirstFixedSurface = 200 ; scaledValueOfFirstFixedSurface = 200 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#100 metre wind speed
'm s**-1' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 1 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#Urban cover #Urban cover
'(0 - 1)' = { '(0 - 1)' = {
discipline = 2 ; discipline = 2 ;
@ -3438,9 +3364,6 @@
#C4 grass cover #C4 grass cover
'(0 - 1)' = { '(0 - 1)' = {
discipline = 2 ; discipline = 2 ;
parameterCategory = 0 ;
parameterNumber = 49 ;
}
#Accumulated freezing rain water equivalent #Accumulated freezing rain water equivalent
'kg m**-2' = { 'kg m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -3791,13 +3714,6 @@
parameterNumber = 34 ; parameterNumber = 34 ;
typeOfFirstFixedSurface = 16 ; typeOfFirstFixedSurface = 16 ;
} }
#Geometric height of atmospheric isothermal level above ground
'm' = {
discipline = 0 ;
parameterCategory = 3 ;
parameterNumber = 34 ;
typeOfFirstFixedSurface = 20 ;
}
#Roof temperature #Roof temperature
'K' = { 'K' = {
discipline = 0 ; discipline = 0 ;
@ -4660,14 +4576,6 @@
parameterNumber = 42 ; parameterNumber = 42 ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Mean top net short-wave radiation flux, clear sky
'W m**-2' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 11 ;
typeOfFirstFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Mean top net long-wave radiation flux, clear sky #Mean top net long-wave radiation flux, clear sky
'W m**-2' = { 'W m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -5932,9 +5840,6 @@
#Total water precipitation #Total water precipitation
'kg m**-2' = { 'kg m**-2' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 49 ;
}
#Total snow precipitation #Total snow precipitation
'kg m**-2' = { 'kg m**-2' = {
discipline = 0 ; discipline = 0 ;
@ -5956,12 +5861,6 @@
parameterNumber = 52 ; parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ; typeOfFirstFixedSurface = 1 ;
} }
#Total snowfall rate water equivalent
'kg m**-2 s**-1' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 53 ;
}
#Large scale precipitation rate #Large scale precipitation rate
'kg m**-2 s**-1' = { 'kg m**-2 s**-1' = {
discipline = 0 ; discipline = 0 ;
@ -6498,12 +6397,6 @@
parameterCategory = 19 ; parameterCategory = 19 ;
parameterNumber = 4 ; parameterNumber = 4 ;
} }
#Icing top
'm' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 5 ;
}
#Icing base #Icing base
'm' = { 'm' = {
discipline = 0 ; discipline = 0 ;
@ -8687,15 +8580,6 @@
#Wind stress at sea surface #Wind stress at sea surface
'N m**-2' = { 'N m**-2' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
}
#Wind speed at 10m above sea surface #Wind speed at 10m above sea surface
'm s**-1' = { 'm s**-1' = {
discipline = 0 ; discipline = 0 ;
@ -9833,16 +9717,6 @@
#Time-mean wind stress at sea surface #Time-mean wind stress at sea surface
'N m**-2' = { 'N m**-2' = {
discipline = 0 ; discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 49 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ;
}
#Time-mean wind speed at 10m above sea surface #Time-mean wind speed at 10m above sea surface
'm s**-1' = { 'm s**-1' = {
discipline = 0 ; discipline = 0 ;
@ -9947,45 +9821,6 @@
scaleFactorOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 0 ; typeOfStatisticalProcessing = 0 ;
} }
#Time-accumulated net short wave radiation at sea surface
'J m**-2' = {
discipline = 0 ;
parameterCategory = 4 ;
parameterNumber = 9 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated total precipitation at sea surface
'kg m**-2' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Time-accumulated snow precipitation at sea surface
'kg m**-2' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 66 ;
typeOfFirstFixedSurface = 160 ;
typeOfSecondFixedSurface = 255 ;
scaledValueOfFirstFixedSurface = 0 ;
scaleFactorOfFirstFixedSurface = 0 ;
scaledValueOfSecondFixedSurface = missing() ;
scaleFactorOfSecondFixedSurface = missing() ;
typeOfStatisticalProcessing = 1 ;
}
#Virtual temperature #Virtual temperature
'K' = { 'K' = {
discipline = 0 ; discipline = 0 ;
@ -10871,15 +10706,6 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 39 ; parameterNumber = 39 ;
} }
#10 metre wind direction
'degrees' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 41 ;
typeOfFirstFixedSurface = 102 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
}
#2D wave spectra (single) #2D wave spectra (single)
'm**2 s radian**-1' = { 'm**2 s radian**-1' = {
discipline = 10 ; discipline = 10 ;
@ -11096,14 +10922,6 @@
parameterNumber = 40 ; parameterNumber = 40 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Time-mean surface net radiation flux (SW and LW)
'W m**-2' = {
discipline = 0 ;
parameterCategory = 19 ;
parameterNumber = 46 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 0 ;
}
#Surface runoff #Surface runoff
'kg m**-2' = { 'kg m**-2' = {
discipline = 2 ; discipline = 2 ;
@ -11421,3 +11239,76 @@
scaledValueOfFirstFixedSurface = 100 ; scaledValueOfFirstFixedSurface = 100 ;
scaleFactorOfFirstFixedSurface = 0 ; scaleFactorOfFirstFixedSurface = 0 ;
} }
#Time-mean total lightning flash density
'km**-2 day**-1' = {
discipline = 0 ;
parameterCategory = 17 ;
parameterNumber = 4 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 0 ;
}
#Time-maximum convective available potential energy
'J kg**-1' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 6 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 2 metre temperature
'K' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum 10 metre wind gust
'm s**-1' = {
discipline = 0 ;
parameterCategory = 2 ;
parameterNumber = 22 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 10 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum convective available potential energy shear
'm**2 s**-2' = {
discipline = 0 ;
parameterCategory = 7 ;
parameterNumber = 19 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 8 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-maximum total precipitation rate
'kg m**-2 s**-1' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 2 ;
}
#Time-minimum 2 metre temperature
'K' = {
discipline = 0 ;
parameterCategory = 0 ;
parameterNumber = 0 ;
typeOfFirstFixedSurface = 103 ;
scaledValueOfFirstFixedSurface = 2 ;
scaleFactorOfFirstFixedSurface = 0 ;
typeOfStatisticalProcessing = 3 ;
}
#Time-minimum total precipitation rate
'kg m**-2 s**-1' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 3 ;
}

View File

@ -23,6 +23,8 @@
#define ECCODES_DEFINITION_PATH "@ECCODES_DEFINITION_PATH@" #define ECCODES_DEFINITION_PATH "@ECCODES_DEFINITION_PATH@"
#cmakedefine ECCODES_HAVE_C_INLINE
#ifdef ECCODES_HAVE_C_INLINE #ifdef ECCODES_HAVE_C_INLINE
#define GRIB_INLINE inline #define GRIB_INLINE inline
#endif #endif

View File

@ -12,7 +12,6 @@ list( APPEND eccodes_src_files
accessor/grib_accessor.cc accessor/grib_accessor.cc
accessor/grib_accessors_list.cc accessor/grib_accessors_list.cc
grib_accessor_class.cc grib_accessor_class.cc
shared_functions.cc
step_unit.cc step_unit.cc
step.cc step.cc
step_utilities.cc step_utilities.cc

View File

@ -1,4 +1,3 @@
/* /*
* (C) Copyright 2005- ECMWF. * (C) Copyright 2005- ECMWF.
* *
@ -56,7 +55,7 @@ static int is_bitmap_start_defined(grib_accessor_bufr_data_array_t* self)
return self->bitmapStart == -1 ? 0 : 1; return self->bitmapStart == -1 ? 0 : 1;
} }
size_t get_length(grib_accessor* a) static size_t get_length(grib_accessor* a)
{ {
grib_accessor_bufr_data_array_t* self = (grib_accessor_bufr_data_array_t*)a; grib_accessor_bufr_data_array_t* self = (grib_accessor_bufr_data_array_t*)a;
size_t len = 0; size_t len = 0;
@ -101,7 +100,7 @@ static int tableB_override_get_ref_val(grib_accessor_bufr_data_array_t* self, in
} }
/* Operator 203YYY: Clear and free linked list */ /* Operator 203YYY: Clear and free linked list */
void tableB_override_clear(grib_context* c, grib_accessor_bufr_data_array_t* self) static void tableB_override_clear(grib_context* c, grib_accessor_bufr_data_array_t* self)
{ {
bufr_tableb_override* tb = self->tableb_override; bufr_tableb_override* tb = self->tableb_override;
while (tb) { while (tb) {
@ -113,7 +112,7 @@ void tableB_override_clear(grib_context* c, grib_accessor_bufr_data_array_t* sel
} }
/* Operator 203YYY: Copy contents of linked list to the transient array key */ /* Operator 203YYY: Copy contents of linked list to the transient array key */
int tableB_override_set_key(grib_handle* h, grib_accessor_bufr_data_array_t* self) static int tableB_override_set_key(grib_handle* h, grib_accessor_bufr_data_array_t* self)
{ {
int err = GRIB_SUCCESS; int err = GRIB_SUCCESS;
size_t size = 0; size_t size = 0;
@ -2202,7 +2201,7 @@ static grib_accessor* accessor_or_attribute_with_same_name(grib_accessor* a, con
// return *r; // return *r;
// } // }
int grib_data_accessors_trie_push(grib_trie_with_rank* accessorsTrie, grib_accessor* a) static int grib_data_accessors_trie_push(grib_trie_with_rank* accessorsTrie, grib_accessor* a)
{ {
return grib_trie_with_rank_insert(accessorsTrie, a->name, a); return grib_trie_with_rank_insert(accessorsTrie, a->name, a);
} }

View File

@ -1,4 +1,3 @@
/* /*
* (C) Copyright 2005- ECMWF. * (C) Copyright 2005- ECMWF.
* *
@ -16,7 +15,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
static void thread_init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -28,7 +27,7 @@ static void thread_init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex1; static omp_nest_lock_t mutex1;
void thread_init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_accessor_class_bufr_elements_table_c) GRIB_OMP_CRITICAL(lock_grib_accessor_class_bufr_elements_table_c)
{ {
@ -90,7 +89,7 @@ static grib_trie* load_bufr_elements_table(grib_accessor* a, int* err)
if (self->localDir != NULL) if (self->localDir != NULL)
grib_get_string(h, self->localDir, localDir, &len); grib_get_string(h, self->localDir, localDir, &len);
GRIB_MUTEX_INIT_ONCE(&once, &thread_init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
if (*masterDir != 0) { if (*masterDir != 0) {
@ -213,14 +212,14 @@ static int convert_type(const char* stype)
return ret; return ret;
} }
long atol_fast(const char* input) static long atol_fast(const char* input)
{ {
if (strcmp(input, "0") == 0) if (strcmp(input, "0") == 0)
return 0; return 0;
return atol(input); return atol(input);
} }
int bufr_get_from_table(grib_accessor* a, bufr_descriptor* v) static int bufr_get_from_table(grib_accessor* a, bufr_descriptor* v)
{ {
int ret = 0; int ret = 0;
char** list = 0; char** list = 0;

View File

@ -20,7 +20,7 @@ grib_accessor_class* grib_accessor_class_codetable = &_grib_accessor_class_codet
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
void thread_init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -32,7 +32,7 @@ void thread_init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex1; static omp_nest_lock_t mutex1;
void thread_init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_accessor_class_codetable_c) GRIB_OMP_CRITICAL(lock_grib_accessor_class_codetable_c)
{ {
@ -205,7 +205,7 @@ static grib_codetable* load_table(grib_accessor* a)
localFilename = grib_context_full_defs_path(c, localRecomposed); localFilename = grib_context_full_defs_path(c, localRecomposed);
} }
GRIB_MUTEX_INIT_ONCE(&once, &thread_init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); /* GRIB-930 */ GRIB_MUTEX_LOCK(&mutex1); /* GRIB-930 */
/*printf("DBG %s: Look in cache: f=%s lf=%s (recomposed=%s)\n", self->att.name, filename, localFilename,recomposed);*/ /*printf("DBG %s: Look in cache: f=%s lf=%s (recomposed=%s)\n", self->att.name, filename, localFilename,recomposed);*/

View File

@ -10,7 +10,6 @@
*/ */
#include "grib_accessor_class_g1bitmap.h" #include "grib_accessor_class_g1bitmap.h"
#include "shared_functions.h"
grib_accessor_class_g1bitmap_t _grib_accessor_class_g1bitmap{"g1bitmap"}; grib_accessor_class_g1bitmap_t _grib_accessor_class_g1bitmap{"g1bitmap"};
grib_accessor_class* grib_accessor_class_g1bitmap = &_grib_accessor_class_g1bitmap; grib_accessor_class* grib_accessor_class_g1bitmap = &_grib_accessor_class_g1bitmap;

View File

@ -1,4 +1,3 @@
/* /*
* (C) Copyright 2005- ECMWF. * (C) Copyright 2005- ECMWF.
* *
@ -106,7 +105,7 @@ static int unpack_long_edition2(grib_accessor* a, long* val, size_t* len)
return GRIB_SUCCESS; return GRIB_SUCCESS;
} }
int unpack_long_edition1(grib_accessor* a, long* val, size_t* len) static int unpack_long_edition1(grib_accessor* a, long* val, size_t* len)
{ {
int err = 0; int err = 0;
grib_accessor_g1forecastmonth_t* self = (grib_accessor_g1forecastmonth_t*)a; grib_accessor_g1forecastmonth_t* self = (grib_accessor_g1forecastmonth_t*)a;

View File

@ -10,7 +10,6 @@
*/ */
#include "grib_accessor_class_g2bitmap.h" #include "grib_accessor_class_g2bitmap.h"
#include "shared_functions.h"
grib_accessor_class_g2bitmap_t _grib_accessor_class_g2bitmap{ "g2bitmap" }; grib_accessor_class_g2bitmap_t _grib_accessor_class_g2bitmap{ "g2bitmap" };
grib_accessor_class* grib_accessor_class_g2bitmap = &_grib_accessor_class_g2bitmap; grib_accessor_class* grib_accessor_class_g2bitmap = &_grib_accessor_class_g2bitmap;
@ -24,6 +23,14 @@ void grib_accessor_class_g2bitmap_t::init(grib_accessor* a, const long len, grib
self->numberOfValues = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 4); self->numberOfValues = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 4);
} }
// For speed use a local static function
static GRIB_INLINE void set_bit_on(unsigned char* p, long* bitp)
{
p += *bitp / 8;
*p |= (1u << (7 - ((*bitp) % 8)));
(*bitp)++;
}
int grib_accessor_class_g2bitmap_t::pack_double(grib_accessor* a, const double* val, size_t* len) int grib_accessor_class_g2bitmap_t::pack_double(grib_accessor* a, const double* val, size_t* len)
{ {
grib_accessor_g2bitmap_t* self = (grib_accessor_g2bitmap_t*)a; grib_accessor_g2bitmap_t* self = (grib_accessor_g2bitmap_t*)a;
@ -48,7 +55,7 @@ int grib_accessor_class_g2bitmap_t::pack_double(grib_accessor* a, const double*
pos++; pos++;
else { else {
// bmaplen++; // bmaplen++;
grib_set_bit_on(buf, &pos); set_bit_on(buf, &pos);
} }
} }

View File

@ -112,8 +112,8 @@ static int get_number_of_data_values(grib_handle* h, size_t* numDataValues)
return err; return err;
} }
int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* len); static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* len);
int unpack_long_new(grib_accessor* a, long* val, size_t* len); static int unpack_long_new(grib_accessor* a, long* val, size_t* len);
int grib_accessor_class_number_of_points_gaussian_t::unpack_long(grib_accessor* a, long* val, size_t* len) int grib_accessor_class_number_of_points_gaussian_t::unpack_long(grib_accessor* a, long* val, size_t* len)
{ {
@ -132,7 +132,7 @@ int grib_accessor_class_number_of_points_gaussian_t::unpack_long(grib_accessor*
} }
/* New algorithm */ /* New algorithm */
int unpack_long_new(grib_accessor* a, long* val, size_t* len) static int unpack_long_new(grib_accessor* a, long* val, size_t* len)
{ {
int err = GRIB_SUCCESS; int err = GRIB_SUCCESS;
int is_global = 0; int is_global = 0;
@ -241,7 +241,7 @@ int unpack_long_new(grib_accessor* a, long* val, size_t* len)
} }
/* With Legacy support */ /* With Legacy support */
int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* len) static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* len)
{ {
int err = GRIB_SUCCESS; int err = GRIB_SUCCESS;
int is_global = 0; int is_global = 0;

View File

@ -18,7 +18,7 @@ grib_accessor_class* grib_accessor_class_smart_table = &_grib_accessor_class_sma
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void thread_init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -30,7 +30,7 @@ static void thread_init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
void thread_init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_accessor_class_smart_table_c) GRIB_OMP_CRITICAL(lock_grib_accessor_class_smart_table_c)
{ {
@ -183,7 +183,7 @@ static int grib_load_smart_table(grib_context* c, const char* filename,
t->recomposed_name[0] = grib_context_strdup_persistent(c, recomposed_name); t->recomposed_name[0] = grib_context_strdup_persistent(c, recomposed_name);
t->next = c->smart_table; t->next = c->smart_table;
t->numberOfEntries = size; t->numberOfEntries = size;
GRIB_MUTEX_INIT_ONCE(&once, &thread_init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
c->smart_table = t; c->smart_table = t;
GRIB_MUTEX_UNLOCK(&mutex); GRIB_MUTEX_UNLOCK(&mutex);

View File

@ -10,7 +10,6 @@
*/ */
#include "grib_accessor_class_validity_date.h" #include "grib_accessor_class_validity_date.h"
#include "shared_functions.h"
grib_accessor_class_validity_date_t _grib_accessor_class_validity_date{ "validity_date" }; grib_accessor_class_validity_date_t _grib_accessor_class_validity_date{ "validity_date" };
grib_accessor_class* grib_accessor_class_validity_date = &_grib_accessor_class_validity_date; grib_accessor_class* grib_accessor_class_validity_date = &_grib_accessor_class_validity_date;

View File

@ -10,7 +10,6 @@
*/ */
#include "grib_accessor_class_validity_time.h" #include "grib_accessor_class_validity_time.h"
#include "shared_functions.h"
grib_accessor_class_validity_time_t _grib_accessor_class_validity_time{ "validity_time" }; grib_accessor_class_validity_time_t _grib_accessor_class_validity_time{ "validity_time" };
grib_accessor_class* grib_accessor_class_validity_time = &_grib_accessor_class_validity_time; grib_accessor_class* grib_accessor_class_validity_time = &_grib_accessor_class_validity_time;

View File

@ -95,7 +95,7 @@ static void init_class(grib_action_class* c)
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -107,7 +107,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_action_class_concept_c) GRIB_OMP_CRITICAL(lock_action_class_concept_c)
{ {
@ -306,7 +306,7 @@ static grib_concept_value* get_concept_impl(grib_handle* h, grib_action_concept*
static grib_concept_value* get_concept(grib_handle* h, grib_action_concept* self) static grib_concept_value* get_concept(grib_handle* h, grib_action_concept* self)
{ {
grib_concept_value* result = NULL; grib_concept_value* result = NULL;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
result = get_concept_impl(h, self); result = get_concept_impl(h, self);

View File

@ -98,7 +98,7 @@ static void init_class(grib_action_class* c)
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -110,7 +110,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_action_class_hash_array_c) GRIB_OMP_CRITICAL(lock_action_class_hash_array_c)
{ {
@ -325,7 +325,7 @@ static grib_hash_array_value* get_hash_array_impl(grib_handle* h, grib_action* a
grib_hash_array_value* get_hash_array(grib_handle* h, grib_action* a) grib_hash_array_value* get_hash_array(grib_handle* h, grib_action* a)
{ {
grib_hash_array_value* result = NULL; grib_hash_array_value* result = NULL;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
result = get_hash_array_impl(h, a); result = get_hash_array_impl(h, a);

View File

@ -244,6 +244,41 @@ int is_time_valid(long number)
return 1; return 1;
} }
/* Table of multipliers to convert step units to minutes */
static const double u2m[] = {
1, /* index 0: minutes */
60, /* index 1: hour */
24 * 60, /* index 2: day */
24 * 60 * 30, /* index 3: month */
-1, /* index 4: year */
-1, /* index 5: decade */
-1, /* index 6: 30 years */
-1, /* index 7: century */
-1, /* index 8: RESERVED */
-1, /* index 9: RESERVED */
3 * 60, /* index 10: 3 hours */
6 * 60, /* index 11: 6 hours */
12 * 60, /* index 12: 12 hours */
1 / 60.0, /* index 13: seconds */
15, /* index 14: 15 mins */
30 /* index 15: 30 mins */
};
long convert_to_minutes(long step, long stepUnits)
{
double result = 0;
if (stepUnits == 0)
return step; /* unit=minutes so no change */
if (stepUnits == 1)
return step * 60; /* unit=hours */
if (stepUnits == 13)
return step / 60; /* unit=seconds */
/* Assert( stepUnits < sizeof(u2m)/sizeof(u2m[0]) ); */
result = step * u2m[stepUnits];
return (long)result;
}
static float float_epsilon(void) static float float_epsilon(void)
{ {
float floatEps = 1.0; float floatEps = 1.0;

View File

@ -308,6 +308,7 @@ int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_
unsigned long grib_decode_unsigned_byte_long(const unsigned char* p, long o, int l); unsigned long grib_decode_unsigned_byte_long(const unsigned char* p, long o, int l);
long grib_decode_signed_long(const unsigned char* p, long o, int l); long grib_decode_signed_long(const unsigned char* p, long o, int l);
int grib_encode_signed_long(unsigned char* p, long val, long o, int l); int grib_encode_signed_long(unsigned char* p, long val, long o, int l);
void grib_set_bit_on(unsigned char*, long*);
void grib_set_bits_on(unsigned char* p, long* bitp, long nbits); void grib_set_bits_on(unsigned char* p, long* bitp, long nbits);
int grib_get_bit(const unsigned char* p, long bitp); int grib_get_bit(const unsigned char* p, long bitp);
void grib_set_bit(unsigned char* p, long bitp, int val); void grib_set_bit(unsigned char* p, long bitp, int val);
@ -853,6 +854,7 @@ int codes_check_grib_ieee_packing_value(int value);
int codes_flush_sync_close_file(FILE* f); int codes_flush_sync_close_file(FILE* f);
int is_date_valid(long year, long month, long day, long hour, long minute, double second); int is_date_valid(long year, long month, long day, long hour, long minute, double second);
int is_time_valid(long number); // number is HHMM int is_time_valid(long number); // number is HHMM
long convert_to_minutes(long step, long stepUnits);
int compute_scaled_value_and_scale_factor(double input, int64_t scaled_value_max, int64_t scale_factor_max, int64_t* ret_value, int64_t* ret_factor); int compute_scaled_value_and_scale_factor(double input, int64_t scaled_value_max, int64_t scale_factor_max, int64_t* ret_value, int64_t* ret_factor);
/* grib_util.cc */ /* grib_util.cc */

View File

@ -22,7 +22,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -34,7 +34,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex1; static omp_nest_lock_t mutex1;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_accessor_class_c) GRIB_OMP_CRITICAL(lock_grib_accessor_class_c)
{ {
@ -77,7 +77,7 @@ grib_section* grib_create_root_section(const grib_context* context, grib_handle*
char* fpath = 0; char* fpath = 0;
grib_section* s = (grib_section*)grib_context_malloc_clear(context, sizeof(grib_section)); grib_section* s = (grib_section*)grib_context_malloc_clear(context, sizeof(grib_section));
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
if (h->context->grib_reader == NULL) { if (h->context->grib_reader == NULL) {
if ((fpath = grib_context_full_defs_path(h->context, "boot.def")) == NULL) { if ((fpath = grib_context_full_defs_path(h->context, "boot.def")) == NULL) {

View File

@ -117,7 +117,7 @@ int grib_encode_signed_long(unsigned char* p, long val, long o, int l)
return GRIB_SUCCESS; return GRIB_SUCCESS;
} }
static void grib_set_bit_on(unsigned char* p, long* bitp) void grib_set_bit_on(unsigned char* p, long* bitp)
{ {
p += *bitp / 8; p += *bitp / 8;
*p |= (1u << (7 - ((*bitp) % 8))); *p |= (1u << (7 - ((*bitp) % 8)));

View File

@ -22,7 +22,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -34,7 +34,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_bits_any_endian_c) GRIB_OMP_CRITICAL(lock_grib_bits_any_endian_c)
{ {
@ -77,7 +77,7 @@ static void init_bits_all_one()
static void init_bits_all_one_if_needed() static void init_bits_all_one_if_needed()
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (!bits_all_one.inited) if (!bits_all_one.inited)
init_bits_all_one(); init_bits_all_one();

View File

@ -41,7 +41,7 @@ static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex_mem = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex_mem = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t mutex_c = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex_c = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -55,7 +55,7 @@ static int once = 0;
static omp_nest_lock_t mutex_mem; static omp_nest_lock_t mutex_mem;
static omp_nest_lock_t mutex_c; static omp_nest_lock_t mutex_c;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_context_c) GRIB_OMP_CRITICAL(lock_grib_context_c)
{ {
@ -374,7 +374,7 @@ static grib_context default_grib_context = {
grib_context* grib_context_get_default() grib_context* grib_context_get_default()
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
if (!default_grib_context.inited) { if (!default_grib_context.inited) {
@ -569,7 +569,7 @@ grib_context* grib_context_get_default()
// if (!parent) parent=grib_context_get_default(); // if (!parent) parent=grib_context_get_default();
// GRIB_MUTEX_INIT_ONCE(&once,&init); // GRIB_MUTEX_INIT_ONCE(&once,&init_mutex);
// GRIB_MUTEX_LOCK(&(parent->mutex)); // GRIB_MUTEX_LOCK(&(parent->mutex));
// c = (grib_context*)grib_context_malloc_clear_persistent(&default_grib_context,sizeof(grib_context)); // c = (grib_context*)grib_context_malloc_clear_persistent(&default_grib_context,sizeof(grib_context));
@ -646,7 +646,7 @@ static int init_definition_files_dir(grib_context* c)
strncpy(path, c->grib_definition_files_path, ECC_PATH_MAXLEN-1); strncpy(path, c->grib_definition_files_path, ECC_PATH_MAXLEN-1);
path[ ECC_PATH_MAXLEN - 1 ] = '\0'; path[ ECC_PATH_MAXLEN - 1 ] = '\0';
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
p = path; p = path;
@ -692,7 +692,7 @@ char* grib_context_full_defs_path(grib_context* c, const char* basename)
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
if (*basename == '/' || *basename == '.') { if (*basename == '/' || *basename == '.') {
return (char*)basename; return (char*)basename;
@ -880,7 +880,7 @@ void grib_context_set_definitions_path(grib_context* c, const char* path)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->grib_definition_files_path = strdup(path); c->grib_definition_files_path = strdup(path);
@ -892,7 +892,7 @@ void grib_context_set_samples_path(grib_context* c, const char* path)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->grib_samples_path = strdup(path); c->grib_samples_path = strdup(path);
@ -1095,7 +1095,7 @@ int grib_context_get_handle_file_count(grib_context* c)
int r = 0; int r = 0;
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
r = c->handle_file_count; r = c->handle_file_count;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1106,7 +1106,7 @@ int grib_context_get_handle_total_count(grib_context* c)
int r = 0; int r = 0;
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
r = c->handle_total_count; r = c->handle_total_count;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1117,7 +1117,7 @@ void grib_context_set_handle_file_count(grib_context* c, int new_count)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->handle_file_count = new_count; c->handle_file_count = new_count;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1126,7 +1126,7 @@ void grib_context_set_handle_total_count(grib_context* c, int new_count)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->handle_total_count = new_count; c->handle_total_count = new_count;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1136,7 +1136,7 @@ void grib_context_increment_handle_file_count(grib_context* c)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->handle_file_count++; c->handle_file_count++;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1145,7 +1145,7 @@ void grib_context_increment_handle_total_count(grib_context* c)
{ {
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
c->handle_total_count++; c->handle_total_count++;
GRIB_MUTEX_UNLOCK(&mutex_c); GRIB_MUTEX_UNLOCK(&mutex_c);
@ -1160,7 +1160,7 @@ bufr_descriptors_array* grib_context_expanded_descriptors_list_get(grib_context*
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
if (!c->expanded_descriptors) { if (!c->expanded_descriptors) {
@ -1200,7 +1200,7 @@ void grib_context_expanded_descriptors_list_push(grib_context* c,
if (!c) if (!c)
c = grib_context_get_default(); c = grib_context_get_default();
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_c); GRIB_MUTEX_LOCK(&mutex_c);
newdescriptorsList = (bufr_descriptors_map_list*)grib_context_malloc_clear(c, sizeof(bufr_descriptors_map_list)); newdescriptorsList = (bufr_descriptors_map_list*)grib_context_malloc_clear(c, sizeof(bufr_descriptors_map_list));

View File

@ -15,7 +15,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -27,7 +27,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex1; static omp_nest_lock_t mutex1;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_filepool_c) GRIB_OMP_CRITICAL(lock_grib_filepool_c)
{ {
@ -175,7 +175,7 @@ grib_file* grib_file_open(const char* filename, const char* mode, int* err)
grib_file *file = 0, *prev = 0; grib_file *file = 0, *prev = 0;
int same_mode = 0; int same_mode = 0;
int is_new = 0; int is_new = 0;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
if (!file_pool.context) if (!file_pool.context)
file_pool.context = grib_context_get_default(); file_pool.context = grib_context_get_default();
@ -257,7 +257,7 @@ grib_file* grib_file_open(const char* filename, const char* mode, int* err)
void grib_file_pool_delete_file(grib_file* file) void grib_file_pool_delete_file(grib_file* file)
{ {
grib_file* prev = NULL; grib_file* prev = NULL;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
if (file == file_pool.first) { if (file == file_pool.first) {
@ -299,7 +299,7 @@ void grib_file_close(const char* filename, int force, int* err)
if (do_close) { if (do_close) {
/*printf("+++++++++++++ closing file %s (n=%d)\n",filename, file_pool.number_of_opened_files);*/ /*printf("+++++++++++++ closing file %s (n=%d)\n",filename, file_pool.number_of_opened_files);*/
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
file = grib_get_file(filename, err); file = grib_get_file(filename, err);
if (file->handle) { if (file->handle) {
@ -323,7 +323,7 @@ void grib_file_close_all(int* err)
if (!file_pool.first) if (!file_pool.first)
return; return;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
file = file_pool.first; file = file_pool.first;
@ -390,7 +390,7 @@ static grib_file* grib_file_new(grib_context* c, const char* name, int* err)
*err = GRIB_OUT_OF_MEMORY; *err = GRIB_OUT_OF_MEMORY;
return NULL; return NULL;
} }
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
file->name = strdup(name); file->name = strdup(name);
file->id = next_id; file->id = next_id;
@ -412,7 +412,7 @@ void grib_file_delete(grib_file* file)
{ {
if (!file) return; if (!file) return;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
/* GRIB-803: cannot call fclose yet! Causes crash */ /* GRIB-803: cannot call fclose yet! Causes crash */
/* TODO: Set handle to NULL in filepool too */ /* TODO: Set handle to NULL in filepool too */

View File

@ -9743,7 +9743,7 @@ static const int mapping[] = {
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -9755,7 +9755,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_itrie_keys_c) GRIB_OMP_CRITICAL(lock_grib_itrie_keys_c)
{ {
@ -9787,7 +9787,7 @@ grib_itrie* grib_hash_keys_new(grib_context* c, int* count)
void grib_hash_keys_delete(grib_itrie* t) void grib_hash_keys_delete(grib_itrie* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
@ -9808,7 +9808,7 @@ static int grib_hash_keys_insert(grib_itrie* t, const char* key)
grib_itrie* last = t; grib_itrie* last = t;
int* count; int* count;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
Assert(t); Assert(t);
@ -9862,7 +9862,7 @@ int grib_hash_keys_get_id(grib_itrie* t, const char* key)
const char* k = key; const char* k = key;
grib_itrie* last = t; grib_itrie* last = t;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) while (*k && t)

View File

@ -14,7 +14,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -27,7 +27,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex1; static omp_nest_lock_t mutex1;
static omp_nest_lock_t mutex2; static omp_nest_lock_t mutex2;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_io_c) GRIB_OMP_CRITICAL(lock_grib_io_c)
{ {
@ -931,7 +931,7 @@ static int read_any(reader* r, int no_alloc, int grib_ok, int bufr_ok, int hdf5_
* so each thread gets its own message. Otherwise if threads are passed * so each thread gets its own message. Otherwise if threads are passed
* different files, then the lock is not needed * different files, then the lock is not needed
*/ */
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex1); GRIB_MUTEX_LOCK(&mutex1);
#endif #endif

View File

@ -276,7 +276,7 @@ static const int mapping[] = {
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -288,7 +288,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_itrie_c) GRIB_OMP_CRITICAL(lock_grib_itrie_c)
{ {
@ -319,7 +319,7 @@ grib_itrie* grib_itrie_new(grib_context* c, int* count)
void grib_itrie_delete(grib_itrie* t) void grib_itrie_delete(grib_itrie* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
@ -343,7 +343,7 @@ int grib_itrie_get_id(grib_itrie* t, const char* key)
return -1; return -1;
} }
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) while (*k && t)
@ -371,7 +371,7 @@ int grib_itrie_insert(grib_itrie* t, const char* key)
return -1; return -1;
} }
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
count = t->count; count = t->count;

View File

@ -273,7 +273,7 @@ static const int mapping[] = {
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -285,7 +285,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_itrie_keys_c) GRIB_OMP_CRITICAL(lock_grib_itrie_keys_c)
{ {
@ -317,7 +317,7 @@ grib_itrie* grib_hash_keys_new(grib_context* c, int* count)
void grib_hash_keys_delete(grib_itrie* t) void grib_hash_keys_delete(grib_itrie* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
@ -338,7 +338,7 @@ static int grib_hash_keys_insert(grib_itrie* t, const char* key)
grib_itrie* last = t; grib_itrie* last = t;
int* count; int* count;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
Assert(t); Assert(t);
@ -392,7 +392,7 @@ int grib_hash_keys_get_id(grib_itrie* t, const char* key)
const char* k = key; const char* k = key;
grib_itrie* last = t; grib_itrie* last = t;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) while (*k && t)

View File

@ -18,7 +18,7 @@
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
@ -31,7 +31,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_memory_c) GRIB_OMP_CRITICAL(lock_grib_memory_c)
{ {
@ -108,7 +108,7 @@ static void* fast_new(size_t s, mempool* pool)
char* p; char* p;
memblk* m; memblk* m;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
m = (memblk*)pool->priv; m = (memblk*)pool->priv;
@ -167,7 +167,7 @@ static void fast_delete(void* p, mempool* pool)
memblk* m; memblk* m;
memblk* n = NULL; memblk* n = NULL;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
m = (memblk*)pool->priv; m = (memblk*)pool->priv;
@ -271,7 +271,7 @@ void* grib_buffer_malloc(const grib_context* c, size_t s)
{ {
memblk* r; memblk* r;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
s = ((s + WORD - 1) / WORD) * WORD; s = ((s + WORD - 1) / WORD) * WORD;
@ -307,7 +307,7 @@ void grib_buffer_free(const grib_context* c, void* p)
memblk* r; memblk* r;
memblk* s; memblk* s;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
r = (memblk*)(((char*)p) - HEADER_SIZE); r = (memblk*)(((char*)p) - HEADER_SIZE);

View File

@ -35,7 +35,7 @@ static pthread_mutex_t mutex_hash_array = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t mutex_stream = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex_stream = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t mutex_parse = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex_parse = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -57,7 +57,7 @@ static omp_nest_lock_t mutex_hash_array;
static omp_nest_lock_t mutex_stream; static omp_nest_lock_t mutex_stream;
static omp_nest_lock_t mutex_parse; static omp_nest_lock_t mutex_parse;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_parse_utils_c) GRIB_OMP_CRITICAL(lock_grib_parse_utils_c)
{ {
@ -717,7 +717,7 @@ extern int grib_yyparse(void);
static int parse(grib_context* gc, const char* filename) static int parse(grib_context* gc, const char* filename)
{ {
int err = 0; int err = 0;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_parse); GRIB_MUTEX_LOCK(&mutex_parse);
#ifdef YYDEBUG #ifdef YYDEBUG
@ -752,7 +752,7 @@ static int parse(grib_context* gc, const char* filename)
static grib_action* grib_parse_stream(grib_context* gc, const char* filename) static grib_action* grib_parse_stream(grib_context* gc, const char* filename)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_stream); GRIB_MUTEX_LOCK(&mutex_stream);
grib_parser_all_actions = 0; grib_parser_all_actions = 0;
@ -776,7 +776,7 @@ static grib_action* grib_parse_stream(grib_context* gc, const char* filename)
grib_concept_value* grib_parse_concept_file(grib_context* gc, const char* filename) grib_concept_value* grib_parse_concept_file(grib_context* gc, const char* filename)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_file); GRIB_MUTEX_LOCK(&mutex_file);
gc = gc ? gc : grib_context_get_default(); gc = gc ? gc : grib_context_get_default();
@ -794,7 +794,7 @@ grib_concept_value* grib_parse_concept_file(grib_context* gc, const char* filena
grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char* filename) grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char* filename)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_file); GRIB_MUTEX_LOCK(&mutex_file);
gc = gc ? gc : grib_context_get_default(); gc = gc ? gc : grib_context_get_default();
@ -813,7 +813,7 @@ grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char*
// grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename) // grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename)
// { // {
// if (!gc) gc = grib_context_get_default(); // if (!gc) gc = grib_context_get_default();
// GRIB_MUTEX_INIT_ONCE(&once, &init); // GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
// GRIB_MUTEX_LOCK(&mutex_rules); // GRIB_MUTEX_LOCK(&mutex_rules);
// gc = gc ? gc : grib_context_get_default(); // gc = gc ? gc : grib_context_get_default();
// grib_parser_context = gc; // grib_parser_context = gc;
@ -831,7 +831,7 @@ grib_action* grib_parse_file(grib_context* gc, const char* filename)
{ {
grib_action_file* af; grib_action_file* af;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex_file); GRIB_MUTEX_LOCK(&mutex_file);
af = 0; af = 0;

View File

@ -292,7 +292,7 @@ static const size_t NUM_MAPPINGS = sizeof(mapping) / sizeof(mapping[0]);
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -304,7 +304,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_trie_c) GRIB_OMP_CRITICAL(lock_grib_trie_c)
{ {
@ -340,7 +340,7 @@ grib_trie* grib_trie_new(grib_context* c)
void grib_trie_delete_container(grib_trie* t) void grib_trie_delete_container(grib_trie* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
int i; int i;
@ -359,7 +359,7 @@ void grib_trie_delete_container(grib_trie* t)
void grib_trie_delete(grib_trie* t) void grib_trie_delete(grib_trie* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
int i; int i;
@ -399,7 +399,7 @@ void* grib_trie_insert(grib_trie* t, const char* key, void* data)
return NULL; return NULL;
} }
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) { while (*k && t) {
@ -474,7 +474,7 @@ void* grib_trie_insert_no_replace(grib_trie* t, const char* key, void* data)
void* grib_trie_get(grib_trie* t, const char* key) void* grib_trie_get(grib_trie* t, const char* key)
{ {
const char* k = key; const char* k = key;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) { while (*k && t) {

View File

@ -292,7 +292,7 @@ static const size_t NUM_MAPPINGS = sizeof(mapping) / sizeof(mapping[0]);
static pthread_once_t once = PTHREAD_ONCE_INIT; static pthread_once_t once = PTHREAD_ONCE_INIT;
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static void init() static void init_mutex()
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr); pthread_mutexattr_init(&attr);
@ -304,7 +304,7 @@ static void init()
static int once = 0; static int once = 0;
static omp_nest_lock_t mutex; static omp_nest_lock_t mutex;
static void init() static void init_mutex()
{ {
GRIB_OMP_CRITICAL(lock_grib_trie_with_rank_c) GRIB_OMP_CRITICAL(lock_grib_trie_with_rank_c)
{ {
@ -376,7 +376,7 @@ static void _grib_trie_with_rank_delete_container(grib_trie_with_rank* t)
} }
void grib_trie_with_rank_delete_container(grib_trie_with_rank* t) void grib_trie_with_rank_delete_container(grib_trie_with_rank* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
_grib_trie_with_rank_delete_container(t); _grib_trie_with_rank_delete_container(t);
GRIB_MUTEX_UNLOCK(&mutex); GRIB_MUTEX_UNLOCK(&mutex);
@ -397,7 +397,7 @@ static void grib_trie_with_rank_delete_list(grib_context* c,grib_trie_with_rank_
void grib_trie_with_rank_delete(grib_trie_with_rank* t) void grib_trie_with_rank_delete(grib_trie_with_rank* t)
{ {
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
if (t) { if (t) {
int i; int i;
@ -456,7 +456,7 @@ int grib_trie_with_rank_insert(grib_trie_with_rank* t, const char* key, void* da
DEBUG_ASSERT(t); DEBUG_ASSERT(t);
if (!t) return -1; if (!t) return -1;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
GRIB_MUTEX_LOCK(&mutex); GRIB_MUTEX_LOCK(&mutex);
while (*k && t) { while (*k && t) {
@ -506,7 +506,7 @@ void* grib_trie_with_rank_get(grib_trie_with_rank* t, const char* key, int rank)
{ {
const char* k = key; const char* k = key;
void* data; void* data;
GRIB_MUTEX_INIT_ONCE(&once, &init); GRIB_MUTEX_INIT_ONCE(&once, &init_mutex);
if (rank < 0) if (rank < 0)
return NULL; return NULL;

View File

@ -1,47 +0,0 @@
#include "shared_functions.h"
/* Table of multipliers to convert step units to minutes */
static const double u2m[] = {
1, /* index 0: minutes */
60, /* index 1: hour */
24 * 60, /* index 2: day */
24 * 60 * 30, /* index 3: month */
-1, /* index 4: year */
-1, /* index 5: decade */
-1, /* index 6: 30 years */
-1, /* index 7: century */
-1, /* index 8: RESERVED */
-1, /* index 9: RESERVED */
3 * 60, /* index 10: 3 hours */
6 * 60, /* index 11: 6 hours */
12 * 60, /* index 12: 12 hours */
1 / 60.0, /* index 13: seconds */
15, /* index 14: 15 mins */
30 /* index 15: 30 mins */
};
void grib_set_bit_on(unsigned char* p, long* bitp){
unsigned char o = 1;
p += (*bitp >> 3);
o <<= 7 - ((*bitp) % 8);
*p |= o;
(*bitp) += 1;
}
long convert_to_minutes(long step, long stepUnits)
{
double result = 0;
if (stepUnits == 0)
return step; /* unit=minutes so no change */
if (stepUnits == 1)
return step * 60; /* unit=hours */
if (stepUnits == 13)
return step / 60; /* unit=seconds */
/* Assert( stepUnits < sizeof(u2m)/sizeof(u2m[0]) ); */
result = step * u2m[stepUnits];
return (long)result;
}

View File

@ -1,9 +0,0 @@
#ifndef eccodes_shared_functions_h
#define eccodes_shared_functions_h
#include "grib_api_internal.h"
void grib_set_bit_on(unsigned char*, long*);
long convert_to_minutes(long step, long stepUnits);
#endif // eccodes_shared_functions_h