mirror of https://github.com/ecmwf/eccodes.git
Merge remote-tracking branch 'origin/develop' into feature/ECC-1691-DestineClimateDT
This commit is contained in:
commit
4d54dc8a75
|
@ -589,32 +589,32 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'surface_downward_eastward_stress' = {
|
'surface_downward_eastward_stress' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'surface_downward_eastward_stress' = {
|
'surface_downward_eastward_stress' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'surface_downward_eastward_stress' = {
|
'surface_downward_eastward_stress' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'surface_downward_northward_stress' = {
|
'surface_downward_northward_stress' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'surface_downward_northward_stress' = {
|
'surface_downward_northward_stress' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'surface_downward_northward_stress' = {
|
'surface_downward_northward_stress' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
|
@ -959,7 +959,7 @@
|
||||||
table2Version = 174 ;
|
table2Version = 174 ;
|
||||||
indicatorOfParameter = 98 ;
|
indicatorOfParameter = 98 ;
|
||||||
}
|
}
|
||||||
#Carbon Dioxide
|
#Carbon dioxide mass mixing ratio
|
||||||
'mass_fraction_of_carbon_dioxide_in_air' = {
|
'mass_fraction_of_carbon_dioxide_in_air' = {
|
||||||
table2Version = 210 ;
|
table2Version = 210 ;
|
||||||
indicatorOfParameter = 61 ;
|
indicatorOfParameter = 61 ;
|
||||||
|
|
|
@ -1459,32 +1459,32 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
|
|
|
@ -1459,33 +1459,33 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'Eastward turbulent surface stress' = {
|
'Time-integrated eastward turbulent surface stress' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'Eastward turbulent surface stress' = {
|
'Time-integrated eastward turbulent surface stress' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'Eastward turbulent surface stress' = {
|
'Time-integrated eastward turbulent surface stress' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'Northward turbulent surface stress' = {
|
'Time-integrated northward turbulent surface stress' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'Northward turbulent surface stress' = {
|
'Time-integrated northward turbulent surface stress' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'Northward turbulent surface stress' = {
|
'Time-integrated northward turbulent surface stress' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1459,32 +1459,32 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'180' = {
|
'180' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'180' = {
|
'180' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'180' = {
|
'180' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'181' = {
|
'181' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'181' = {
|
'181' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'181' = {
|
'181' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
|
|
|
@ -1459,32 +1459,32 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
|
|
|
@ -1459,32 +1459,32 @@
|
||||||
table2Version = 190 ;
|
table2Version = 190 ;
|
||||||
indicatorOfParameter = 179 ;
|
indicatorOfParameter = 179 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 180 ;
|
indicatorOfParameter = 180 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 128 ;
|
table2Version = 128 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 170 ;
|
table2Version = 170 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
table2Version = 180 ;
|
table2Version = 180 ;
|
||||||
indicatorOfParameter = 181 ;
|
indicatorOfParameter = 181 ;
|
||||||
|
|
|
@ -45,19 +45,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'surface_downward_eastward_stress' = {
|
'surface_downward_eastward_stress' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'surface_downward_northward_stress' = {
|
'surface_downward_northward_stress' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,19 +382,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
@ -724,6 +724,20 @@
|
||||||
parameterCategory = 0 ;
|
parameterCategory = 0 ;
|
||||||
parameterNumber = 89 ;
|
parameterNumber = 89 ;
|
||||||
}
|
}
|
||||||
|
#U-component of atmospheric surface momentum flux
|
||||||
|
'utaua' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
|
#V-component of atmospheric surface momentum flux
|
||||||
|
'vtaua' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
#U-component of surface momentum flux into ocean
|
#U-component of surface momentum flux into ocean
|
||||||
'utauo' = {
|
'utauo' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
@ -3745,6 +3759,22 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 0 ;
|
typeOfStatisticalProcessing = 0 ;
|
||||||
}
|
}
|
||||||
|
#Mean eastward turbulent surface stress
|
||||||
|
'metss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 62 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
|
#Mean northward turbulent surface stress
|
||||||
|
'mntss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 63 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
#Mean evaporation rate
|
#Mean evaporation rate
|
||||||
'mer' = {
|
'mer' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
@ -4735,6 +4765,38 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 255 ;
|
typeOfSecondFixedSurface = 255 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to orographic form drag
|
||||||
|
'etssofd' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 64 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to orographic form drag
|
||||||
|
'ntssofd' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 65 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to surface roughness
|
||||||
|
'etsssr' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 66 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to surface roughness
|
||||||
|
'ntsssr' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 67 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Universal thermal climate index
|
#Universal thermal climate index
|
||||||
'utci' = {
|
'utci' = {
|
||||||
discipline = 20 ;
|
discipline = 20 ;
|
||||||
|
@ -8715,18 +8777,6 @@
|
||||||
parameterCategory = 1 ;
|
parameterCategory = 1 ;
|
||||||
parameterNumber = 68 ;
|
parameterNumber = 68 ;
|
||||||
}
|
}
|
||||||
#Momentum flux, u component
|
|
||||||
'uflx' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 17 ;
|
|
||||||
}
|
|
||||||
#Momentum flux, v component
|
|
||||||
'vflx' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 18 ;
|
|
||||||
}
|
|
||||||
#Maximum wind speed
|
#Maximum wind speed
|
||||||
'maxgust' = {
|
'maxgust' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
'V' = { numberOfGridInReference = 3; }
|
'V' = { numberOfGridInReference = 3; }
|
||||||
'W' = { numberOfGridInReference = 4; }
|
'W' = { numberOfGridInReference = 4; }
|
||||||
'F' = { numberOfGridInReference = 5; }
|
'F' = { numberOfGridInReference = 5; }
|
||||||
'E' = { numberOfGridInReference = 6; }
|
'C' = { numberOfGridInReference = 6; }
|
||||||
'N' = { numberOfGridInReference = 7; }
|
'N' = { numberOfGridInReference = 7; }
|
||||||
|
|
|
@ -6,6 +6,22 @@
|
||||||
parameterNumber = 0 ;
|
parameterNumber = 0 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'surface_downward_eastward_stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'surface_downward_northward_stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Sea surface practical salinity
|
#Sea surface practical salinity
|
||||||
'sea_surface_salinity' = {
|
'sea_surface_salinity' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
scaledValueOfFirstFixedSurface = 15 ;
|
scaledValueOfFirstFixedSurface = 15 ;
|
||||||
scaleFactorOfFirstFixedSurface = 1 ;
|
scaleFactorOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'ewss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'nsss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Mean sea water potential temperature in the upper 300 m
|
#Mean sea water potential temperature in the upper 300 m
|
||||||
'mswpt300m' = {
|
'mswpt300m' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
scaledValueOfFirstFixedSurface = 15 ;
|
scaledValueOfFirstFixedSurface = 15 ;
|
||||||
scaleFactorOfFirstFixedSurface = 1 ;
|
scaleFactorOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'Time-integrated eastward turbulent surface stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'Time-integrated northward turbulent surface stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Mean sea water potential temperature in the upper 300 m
|
#Mean sea water potential temperature in the upper 300 m
|
||||||
'Mean sea water potential temperature in the upper 300 m' = {
|
'Mean sea water potential temperature in the upper 300 m' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
scaledValueOfFirstFixedSurface = 15 ;
|
scaledValueOfFirstFixedSurface = 15 ;
|
||||||
scaleFactorOfFirstFixedSurface = 1 ;
|
scaleFactorOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'180' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'181' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Mean sea water potential temperature in the upper 300 m
|
#Mean sea water potential temperature in the upper 300 m
|
||||||
'151126' = {
|
'151126' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
scaledValueOfFirstFixedSurface = 15 ;
|
scaledValueOfFirstFixedSurface = 15 ;
|
||||||
scaleFactorOfFirstFixedSurface = 1 ;
|
scaleFactorOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'ewss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'nsss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Mean sea water potential temperature in the upper 300 m
|
#Mean sea water potential temperature in the upper 300 m
|
||||||
'mswpt300m' = {
|
'mswpt300m' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
scaledValueOfFirstFixedSurface = 15 ;
|
scaledValueOfFirstFixedSurface = 15 ;
|
||||||
scaleFactorOfFirstFixedSurface = 1 ;
|
scaleFactorOfFirstFixedSurface = 1 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 38 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 37 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Mean sea water potential temperature in the upper 300 m
|
#Mean sea water potential temperature in the upper 300 m
|
||||||
'K' = {
|
'K' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
|
|
@ -148,6 +148,18 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 8 ;
|
typeOfSecondFixedSurface = 8 ;
|
||||||
}
|
}
|
||||||
|
#Momentum flux, u component
|
||||||
|
'uflx' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
}
|
||||||
|
#Momentum flux, v component
|
||||||
|
'vflx' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
}
|
||||||
#Standard deviation of sub-grid scale orography
|
#Standard deviation of sub-grid scale orography
|
||||||
'sdsgso' = {
|
'sdsgso' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -148,6 +148,18 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 8 ;
|
typeOfSecondFixedSurface = 8 ;
|
||||||
}
|
}
|
||||||
|
#Momentum flux, u component
|
||||||
|
'Momentum flux, u component' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
}
|
||||||
|
#Momentum flux, v component
|
||||||
|
'Momentum flux, v component' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
}
|
||||||
#Standard deviation of sub-grid scale orography
|
#Standard deviation of sub-grid scale orography
|
||||||
'Standard deviation of sub-grid scale orography' = {
|
'Standard deviation of sub-grid scale orography' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -148,6 +148,18 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 8 ;
|
typeOfSecondFixedSurface = 8 ;
|
||||||
}
|
}
|
||||||
|
#Momentum flux, u component
|
||||||
|
'260062' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
}
|
||||||
|
#Momentum flux, v component
|
||||||
|
'260063' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
}
|
||||||
#Standard deviation of sub-grid scale orography
|
#Standard deviation of sub-grid scale orography
|
||||||
'260085' = {
|
'260085' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -148,6 +148,18 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 8 ;
|
typeOfSecondFixedSurface = 8 ;
|
||||||
}
|
}
|
||||||
|
#Momentum flux, u component
|
||||||
|
'uflx' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
}
|
||||||
|
#Momentum flux, v component
|
||||||
|
'vflx' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
}
|
||||||
#Standard deviation of sub-grid scale orography
|
#Standard deviation of sub-grid scale orography
|
||||||
'sdsgso' = {
|
'sdsgso' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -148,6 +148,18 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 8 ;
|
typeOfSecondFixedSurface = 8 ;
|
||||||
}
|
}
|
||||||
|
#Momentum flux, u component
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
}
|
||||||
|
#Momentum flux, v component
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
}
|
||||||
#Standard deviation of sub-grid scale orography
|
#Standard deviation of sub-grid scale orography
|
||||||
'm' = {
|
'm' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -382,19 +382,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'Eastward turbulent surface stress' = {
|
'Time-integrated eastward turbulent surface stress' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'Northward turbulent surface stress' = {
|
'Time-integrated northward turbulent surface stress' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
@ -724,6 +724,20 @@
|
||||||
parameterCategory = 0 ;
|
parameterCategory = 0 ;
|
||||||
parameterNumber = 89 ;
|
parameterNumber = 89 ;
|
||||||
}
|
}
|
||||||
|
#U-component of atmospheric surface momentum flux
|
||||||
|
'U-component of atmospheric surface momentum flux' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
|
#V-component of atmospheric surface momentum flux
|
||||||
|
'V-component of atmospheric surface momentum flux' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
#U-component of surface momentum flux into ocean
|
#U-component of surface momentum flux into ocean
|
||||||
'U-component of surface momentum flux into ocean' = {
|
'U-component of surface momentum flux into ocean' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
@ -3745,6 +3759,22 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 0 ;
|
typeOfStatisticalProcessing = 0 ;
|
||||||
}
|
}
|
||||||
|
#Mean eastward turbulent surface stress
|
||||||
|
'Mean eastward turbulent surface stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 62 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
|
#Mean northward turbulent surface stress
|
||||||
|
'Mean northward turbulent surface stress' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 63 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
#Mean evaporation rate
|
#Mean evaporation rate
|
||||||
'Mean evaporation rate' = {
|
'Mean evaporation rate' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
@ -4735,6 +4765,38 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 255 ;
|
typeOfSecondFixedSurface = 255 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to orographic form drag
|
||||||
|
'Time-integrated eastward turbulent surface stress due to orographic form drag' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 64 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to orographic form drag
|
||||||
|
'Time-integrated northward turbulent surface stress due to orographic form drag' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 65 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to surface roughness
|
||||||
|
'Time-integrated eastward turbulent surface stress due to surface roughness' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 66 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to surface roughness
|
||||||
|
'Time-integrated northward turbulent surface stress due to surface roughness' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 67 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Universal thermal climate index
|
#Universal thermal climate index
|
||||||
'Universal thermal climate index' = {
|
'Universal thermal climate index' = {
|
||||||
discipline = 20 ;
|
discipline = 20 ;
|
||||||
|
@ -8715,18 +8777,6 @@
|
||||||
parameterCategory = 1 ;
|
parameterCategory = 1 ;
|
||||||
parameterNumber = 68 ;
|
parameterNumber = 68 ;
|
||||||
}
|
}
|
||||||
#Momentum flux, u component
|
|
||||||
'Momentum flux, u component' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 17 ;
|
|
||||||
}
|
|
||||||
#Momentum flux, v component
|
|
||||||
'Momentum flux, v component' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 18 ;
|
|
||||||
}
|
|
||||||
#Maximum wind speed
|
#Maximum wind speed
|
||||||
'Maximum wind speed' = {
|
'Maximum wind speed' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -382,19 +382,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'180' = {
|
'180' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'181' = {
|
'181' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
@ -724,6 +724,20 @@
|
||||||
parameterCategory = 0 ;
|
parameterCategory = 0 ;
|
||||||
parameterNumber = 89 ;
|
parameterNumber = 89 ;
|
||||||
}
|
}
|
||||||
|
#U-component of atmospheric surface momentum flux
|
||||||
|
'140101' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
|
#V-component of atmospheric surface momentum flux
|
||||||
|
'140102' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
#U-component of surface momentum flux into ocean
|
#U-component of surface momentum flux into ocean
|
||||||
'140103' = {
|
'140103' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
@ -3745,6 +3759,22 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 0 ;
|
typeOfStatisticalProcessing = 0 ;
|
||||||
}
|
}
|
||||||
|
#Mean eastward turbulent surface stress
|
||||||
|
'235041' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 62 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
|
#Mean northward turbulent surface stress
|
||||||
|
'235042' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 63 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
#Mean evaporation rate
|
#Mean evaporation rate
|
||||||
'235043' = {
|
'235043' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
@ -4735,6 +4765,38 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 255 ;
|
typeOfSecondFixedSurface = 255 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to orographic form drag
|
||||||
|
'260652' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 64 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to orographic form drag
|
||||||
|
'260653' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 65 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to surface roughness
|
||||||
|
'260654' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 66 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to surface roughness
|
||||||
|
'260655' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 67 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Universal thermal climate index
|
#Universal thermal climate index
|
||||||
'261001' = {
|
'261001' = {
|
||||||
discipline = 20 ;
|
discipline = 20 ;
|
||||||
|
@ -8715,18 +8777,6 @@
|
||||||
parameterCategory = 1 ;
|
parameterCategory = 1 ;
|
||||||
parameterNumber = 68 ;
|
parameterNumber = 68 ;
|
||||||
}
|
}
|
||||||
#Momentum flux, u component
|
|
||||||
'260062' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 17 ;
|
|
||||||
}
|
|
||||||
#Momentum flux, v component
|
|
||||||
'260063' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 18 ;
|
|
||||||
}
|
|
||||||
#Maximum wind speed
|
#Maximum wind speed
|
||||||
'260064' = {
|
'260064' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -382,19 +382,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'ewss' = {
|
'ewss' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'nsss' = {
|
'nsss' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
@ -724,6 +724,20 @@
|
||||||
parameterCategory = 0 ;
|
parameterCategory = 0 ;
|
||||||
parameterNumber = 89 ;
|
parameterNumber = 89 ;
|
||||||
}
|
}
|
||||||
|
#U-component of atmospheric surface momentum flux
|
||||||
|
'utaua' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
|
#V-component of atmospheric surface momentum flux
|
||||||
|
'vtaua' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
#U-component of surface momentum flux into ocean
|
#U-component of surface momentum flux into ocean
|
||||||
'utauo' = {
|
'utauo' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
@ -3745,6 +3759,22 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 0 ;
|
typeOfStatisticalProcessing = 0 ;
|
||||||
}
|
}
|
||||||
|
#Mean eastward turbulent surface stress
|
||||||
|
'metss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 62 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
|
#Mean northward turbulent surface stress
|
||||||
|
'mntss' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 63 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
#Mean evaporation rate
|
#Mean evaporation rate
|
||||||
'mer' = {
|
'mer' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
@ -4735,6 +4765,38 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 255 ;
|
typeOfSecondFixedSurface = 255 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to orographic form drag
|
||||||
|
'etssofd' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 64 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to orographic form drag
|
||||||
|
'ntssofd' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 65 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to surface roughness
|
||||||
|
'etsssr' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 66 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to surface roughness
|
||||||
|
'ntsssr' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 67 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Universal thermal climate index
|
#Universal thermal climate index
|
||||||
'utci' = {
|
'utci' = {
|
||||||
discipline = 20 ;
|
discipline = 20 ;
|
||||||
|
@ -8715,18 +8777,6 @@
|
||||||
parameterCategory = 1 ;
|
parameterCategory = 1 ;
|
||||||
parameterNumber = 68 ;
|
parameterNumber = 68 ;
|
||||||
}
|
}
|
||||||
#Momentum flux, u component
|
|
||||||
'uflx' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 17 ;
|
|
||||||
}
|
|
||||||
#Momentum flux, v component
|
|
||||||
'vflx' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 18 ;
|
|
||||||
}
|
|
||||||
#Maximum wind speed
|
#Maximum wind speed
|
||||||
'maxgust' = {
|
'maxgust' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -382,19 +382,19 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Eastward turbulent surface stress
|
#Time-integrated eastward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 38 ;
|
parameterNumber = 62 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
#Northward turbulent surface stress
|
#Time-integrated northward turbulent surface stress
|
||||||
'N m**-2 s' = {
|
'N m**-2 s' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
parameterCategory = 2 ;
|
parameterCategory = 2 ;
|
||||||
parameterNumber = 37 ;
|
parameterNumber = 63 ;
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfStatisticalProcessing = 1 ;
|
typeOfStatisticalProcessing = 1 ;
|
||||||
}
|
}
|
||||||
|
@ -724,6 +724,20 @@
|
||||||
parameterCategory = 0 ;
|
parameterCategory = 0 ;
|
||||||
parameterNumber = 89 ;
|
parameterNumber = 89 ;
|
||||||
}
|
}
|
||||||
|
#U-component of atmospheric surface momentum flux
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 17 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
|
#V-component of atmospheric surface momentum flux
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 18 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
}
|
||||||
#U-component of surface momentum flux into ocean
|
#U-component of surface momentum flux into ocean
|
||||||
'N m**-2' = {
|
'N m**-2' = {
|
||||||
discipline = 10 ;
|
discipline = 10 ;
|
||||||
|
@ -3745,6 +3759,22 @@
|
||||||
typeOfFirstFixedSurface = 8 ;
|
typeOfFirstFixedSurface = 8 ;
|
||||||
typeOfStatisticalProcessing = 0 ;
|
typeOfStatisticalProcessing = 0 ;
|
||||||
}
|
}
|
||||||
|
#Mean eastward turbulent surface stress
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 62 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
|
#Mean northward turbulent surface stress
|
||||||
|
'N m**-2' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 63 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 0 ;
|
||||||
|
}
|
||||||
#Mean evaporation rate
|
#Mean evaporation rate
|
||||||
'kg m**-2 s**-1' = {
|
'kg m**-2 s**-1' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
@ -4735,6 +4765,38 @@
|
||||||
typeOfFirstFixedSurface = 1 ;
|
typeOfFirstFixedSurface = 1 ;
|
||||||
typeOfSecondFixedSurface = 255 ;
|
typeOfSecondFixedSurface = 255 ;
|
||||||
}
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to orographic form drag
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 64 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to orographic form drag
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 65 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated eastward turbulent surface stress due to surface roughness
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 66 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
|
#Time-integrated northward turbulent surface stress due to surface roughness
|
||||||
|
'N m**-2 s' = {
|
||||||
|
discipline = 0 ;
|
||||||
|
parameterCategory = 2 ;
|
||||||
|
parameterNumber = 67 ;
|
||||||
|
typeOfFirstFixedSurface = 1 ;
|
||||||
|
typeOfStatisticalProcessing = 1 ;
|
||||||
|
}
|
||||||
#Universal thermal climate index
|
#Universal thermal climate index
|
||||||
'K' = {
|
'K' = {
|
||||||
discipline = 20 ;
|
discipline = 20 ;
|
||||||
|
@ -8715,18 +8777,6 @@
|
||||||
parameterCategory = 1 ;
|
parameterCategory = 1 ;
|
||||||
parameterNumber = 68 ;
|
parameterNumber = 68 ;
|
||||||
}
|
}
|
||||||
#Momentum flux, u component
|
|
||||||
'N m**-2' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 17 ;
|
|
||||||
}
|
|
||||||
#Momentum flux, v component
|
|
||||||
'N m**-2' = {
|
|
||||||
discipline = 0 ;
|
|
||||||
parameterCategory = 2 ;
|
|
||||||
parameterNumber = 18 ;
|
|
||||||
}
|
|
||||||
#Maximum wind speed
|
#Maximum wind speed
|
||||||
'm s**-1' = {
|
'm s**-1' = {
|
||||||
discipline = 0 ;
|
discipline = 0 ;
|
||||||
|
|
|
@ -98,22 +98,21 @@ static void grib_dump(grib_action* a, FILE* f, int l)
|
||||||
DEBUG_ASSERT(0);
|
DEBUG_ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void grib_xref(grib_action* a, FILE* f, const char* path)
|
// void grib_xref(grib_action* a, FILE* f, const char* path)
|
||||||
{
|
// {
|
||||||
grib_action_class* c = a->cclass;
|
// grib_action_class* c = a->cclass;
|
||||||
init(c);
|
// init(c);
|
||||||
|
|
||||||
while (c) {
|
|
||||||
if (c->xref) {
|
|
||||||
c->xref(a, f, path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
c = c->super ? *(c->super) : NULL;
|
|
||||||
}
|
|
||||||
printf("xref not implemented for %s\n", a->cclass->name);
|
|
||||||
DEBUG_ASSERT(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// while (c) {
|
||||||
|
// if (c->xref) {
|
||||||
|
// c->xref(a, f, path);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// c = c->super ? *(c->super) : NULL;
|
||||||
|
// }
|
||||||
|
// printf("xref not implemented for %s\n", a->cclass->name);
|
||||||
|
// DEBUG_ASSERT(0);
|
||||||
|
// }
|
||||||
|
|
||||||
void grib_action_delete(grib_context* context, grib_action* a)
|
void grib_action_delete(grib_context* context, grib_action* a)
|
||||||
{
|
{
|
||||||
|
@ -214,10 +213,10 @@ void grib_dump_action_tree(grib_context* ctx, FILE* out)
|
||||||
grib_dump_action_branch(out, ctx->grib_reader->first->root, 0);
|
grib_dump_action_branch(out, ctx->grib_reader->first->root, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void grib_xref_action_branch(FILE* out, grib_action* a, const char* path)
|
// void grib_xref_action_branch(FILE* out, grib_action* a, const char* path)
|
||||||
{
|
// {
|
||||||
while (a) {
|
// while (a) {
|
||||||
grib_xref(a, out, path);
|
// grib_xref(a, out, path);
|
||||||
a = a->next;
|
// a = a->next;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy
|
IMPLEMENTS = destroy
|
||||||
MEMBERS = char* target
|
MEMBERS = char* target
|
||||||
END_CLASS_DEF
|
END_CLASS_DEF
|
||||||
|
@ -38,7 +38,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
|
|
||||||
|
@ -60,7 +59,7 @@ static grib_action_class _grib_action_class_alias = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -268,23 +267,6 @@ static void dump(grib_action* act, FILE* f, int lvl)
|
||||||
grib_context_print(act->context, f, " unalias %s \n", act->name);
|
grib_context_print(act->context, f, " unalias %s \n", act->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* act, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
Assert(!"xref is disabled");
|
|
||||||
|
|
||||||
// grib_action_alias* a = (grib_action_alias*)act;
|
|
||||||
// if (a->target) {
|
|
||||||
// fprintf(f, "bless({name=>'%s', target=>'%s', path=>'%s'},'xref::alias'),\n", act->name, a->target, path);
|
|
||||||
// if (act->name_space)
|
|
||||||
// fprintf(f, "bless({name=>'%s.%s', target=>'%s', path=>'%s'},'xref::alias'),\n", act->name_space, act->name, a->target, path);
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// fprintf(f, "bless({name=>'%s', path=>'%s'},'xref::unalias'),\n", act->name, path);
|
|
||||||
// if (act->name_space)
|
|
||||||
// fprintf(f, "bless({name=>'%s.%s', path=>'%s'},'xref::unalias'),\n", act->name_space, act->name, path);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
static void destroy(grib_context* context, grib_action* act)
|
static void destroy(grib_context* context, grib_action* act)
|
||||||
{
|
{
|
||||||
grib_action_alias* a = (grib_action_alias*)act;
|
grib_action_alias* a = (grib_action_alias*)act;
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy
|
IMPLEMENTS = destroy
|
||||||
IMPLEMENTS = notify_change
|
IMPLEMENTS = notify_change
|
||||||
MEMBERS = long len
|
MEMBERS = long len
|
||||||
|
@ -40,7 +40,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
||||||
|
@ -64,7 +63,7 @@ static grib_action_class _grib_action_class_gen = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -130,11 +129,6 @@ static void dump(grib_action* act, FILE* f, int lvl)
|
||||||
// For xref implementation see
|
// For xref implementation see
|
||||||
// src/deprecated/action_class_gen.cc
|
// src/deprecated/action_class_gen.cc
|
||||||
|
|
||||||
static void xref(grib_action* act, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
Assert(!"xref is disabled");
|
|
||||||
}
|
|
||||||
|
|
||||||
static int create_accessor(grib_section* p, grib_action* act, grib_loader* loader)
|
static int create_accessor(grib_section* p, grib_action* act, grib_loader* loader)
|
||||||
{
|
{
|
||||||
grib_action_gen* a = (grib_action_gen*)act;
|
grib_action_gen* a = (grib_action_gen*)act;
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy
|
IMPLEMENTS = destroy
|
||||||
IMPLEMENTS = xref
|
|
||||||
IMPLEMENTS = reparse;execute
|
IMPLEMENTS = reparse;execute
|
||||||
MEMBERS = grib_expression *expression
|
MEMBERS = grib_expression *expression
|
||||||
MEMBERS = grib_action *block_true
|
MEMBERS = grib_action *block_true
|
||||||
|
@ -44,7 +43,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit);
|
static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit);
|
||||||
|
@ -73,7 +71,7 @@ static grib_action_class _grib_action_class_if = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -86,6 +84,7 @@ grib_action_class* grib_action_class_if = &_grib_action_class_if;
|
||||||
|
|
||||||
static void init_class(grib_action_class* c)
|
static void init_class(grib_action_class* c)
|
||||||
{
|
{
|
||||||
|
c->xref = (*(c->super))->xref;
|
||||||
c->notify_change = (*(c->super))->notify_change;
|
c->notify_change = (*(c->super))->notify_change;
|
||||||
}
|
}
|
||||||
/* END_CLASS_IMP */
|
/* END_CLASS_IMP */
|
||||||
|
@ -272,7 +271,7 @@ static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit)
|
||||||
|
|
||||||
if ((ret = grib_expression_evaluate_long(grib_handle_of_accessor(acc), self->expression, &lres)) != GRIB_SUCCESS)
|
if ((ret = grib_expression_evaluate_long(grib_handle_of_accessor(acc), self->expression, &lres)) != GRIB_SUCCESS)
|
||||||
grib_context_log(acc->context,
|
grib_context_log(acc->context,
|
||||||
GRIB_LOG_ERROR, "if reparse grib_expression_evaluate_long %s",
|
GRIB_LOG_ERROR, "action_class_if::reparse: grib_expression_evaluate_long failed: %s",
|
||||||
grib_get_error_message(ret));
|
grib_get_error_message(ret));
|
||||||
|
|
||||||
if (lres)
|
if (lres)
|
||||||
|
@ -306,6 +305,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = destroy
|
IMPLEMENTS = destroy
|
||||||
MEMBERS = long flags
|
MEMBERS = long flags
|
||||||
|
@ -38,7 +38,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
|
|
||||||
|
@ -61,7 +60,7 @@ static grib_action_class _grib_action_class_modify = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -128,6 +127,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = dump;destroy;xref;execute
|
IMPLEMENTS = dump;destroy;execute
|
||||||
END_CLASS_DEF
|
END_CLASS_DEF
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -34,7 +34,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -55,7 +54,7 @@ static grib_action_class _grib_action_class_noop = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -101,10 +100,6 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static int execute(grib_action* act, grib_handle* h)
|
static int execute(grib_action* act, grib_handle* h)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy; xref
|
IMPLEMENTS = destroy
|
||||||
MEMBERS = grib_arguments* args
|
MEMBERS = grib_arguments* args
|
||||||
END_CLASS_DEF
|
END_CLASS_DEF
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
|
|
||||||
|
@ -59,7 +58,7 @@ static grib_action_class _grib_action_class_remove = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -153,6 +152,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy; xref
|
IMPLEMENTS = destroy
|
||||||
MEMBERS = char* the_old
|
MEMBERS = char* the_old
|
||||||
MEMBERS = char* the_new
|
MEMBERS = char* the_new
|
||||||
END_CLASS_DEF
|
END_CLASS_DEF
|
||||||
|
@ -38,7 +38,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
|
|
||||||
|
@ -61,7 +60,7 @@ static grib_action_class _grib_action_class_rename = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -148,7 +147,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Jean Baptiste Filippi - 01.11.2005 *
|
* Jean Baptiste Filippi - 01.11.2005 *
|
||||||
* Enrico Fucile *
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
|
|
||||||
|
@ -20,8 +19,6 @@
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = notify_change
|
IMPLEMENTS = notify_change
|
||||||
IMPLEMENTS = reparse
|
|
||||||
IMPLEMENTS = xref
|
|
||||||
END_CLASS_DEF
|
END_CLASS_DEF
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -37,9 +34,7 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
||||||
static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit);
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct grib_action_section {
|
typedef struct grib_action_section {
|
||||||
|
@ -58,12 +53,12 @@ static grib_action_class _grib_action_class_section = {
|
||||||
0, /* destroy */
|
0, /* destroy */
|
||||||
|
|
||||||
0, /* dump */
|
0, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
¬ify_change, /* notify_change */
|
¬ify_change, /* notify_change */
|
||||||
&reparse, /* reparse */
|
0, /* reparse */
|
||||||
0, /* execute */
|
0, /* execute */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -232,16 +227,3 @@ static int notify_change(grib_action* act, grib_accessor* notified,
|
||||||
|
|
||||||
return GRIB_SUCCESS;
|
return GRIB_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit)
|
|
||||||
{
|
|
||||||
/* Should be inherited */
|
|
||||||
printf("reparse should be inherited: %s\n", a->name);
|
|
||||||
|
|
||||||
Assert(1 == 0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,16 +8,13 @@
|
||||||
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Enrico Fucile *
|
|
||||||
***************************************************************************/
|
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
/*
|
/*
|
||||||
This is used by make_class.pl
|
This is used by make_class.pl
|
||||||
|
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy;execute
|
IMPLEMENTS = destroy;execute
|
||||||
MEMBERS = grib_expression *expression
|
MEMBERS = grib_expression *expression
|
||||||
MEMBERS = char *name
|
MEMBERS = char *name
|
||||||
|
@ -38,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -62,7 +58,7 @@ static grib_action_class _grib_action_class_set = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -135,7 +131,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy;execute
|
IMPLEMENTS = destroy;execute
|
||||||
MEMBERS = grib_darray *darray
|
MEMBERS = grib_darray *darray
|
||||||
MEMBERS = char *name
|
MEMBERS = char *name
|
||||||
|
@ -34,7 +34,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -57,7 +56,7 @@ static grib_action_class _grib_action_class_set_darray = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -123,7 +122,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,16 +8,13 @@
|
||||||
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Enrico Fucile *
|
|
||||||
***************************************************************************/
|
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
/*
|
/*
|
||||||
This is used by make_class.pl
|
This is used by make_class.pl
|
||||||
|
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy;execute
|
IMPLEMENTS = destroy;execute
|
||||||
MEMBERS = grib_sarray *sarray
|
MEMBERS = grib_sarray *sarray
|
||||||
MEMBERS = char *name
|
MEMBERS = char *name
|
||||||
|
@ -37,7 +34,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -60,7 +56,7 @@ static grib_action_class _grib_action_class_set_sarray = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -127,7 +123,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Enrico Fucile *
|
|
||||||
***************************************************************************/
|
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
/*
|
/*
|
||||||
This is used by make_class.pl
|
This is used by make_class.pl
|
||||||
|
@ -19,7 +16,6 @@
|
||||||
CLASS = action
|
CLASS = action
|
||||||
SUPER = action_class_section
|
SUPER = action_class_section
|
||||||
IMPLEMENTS = destroy
|
IMPLEMENTS = destroy
|
||||||
IMPLEMENTS = xref
|
|
||||||
IMPLEMENTS = execute
|
IMPLEMENTS = execute
|
||||||
MEMBERS = grib_arguments* args
|
MEMBERS = grib_arguments* args
|
||||||
MEMBERS = grib_case *Case
|
MEMBERS = grib_case *Case
|
||||||
|
@ -39,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -65,7 +60,7 @@ static grib_action_class _grib_action_class_switch = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
0, /* dump */
|
0, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -79,6 +74,7 @@ grib_action_class* grib_action_class_switch = &_grib_action_class_switch;
|
||||||
static void init_class(grib_action_class* c)
|
static void init_class(grib_action_class* c)
|
||||||
{
|
{
|
||||||
c->dump = (*(c->super))->dump;
|
c->dump = (*(c->super))->dump;
|
||||||
|
c->xref = (*(c->super))->xref;
|
||||||
c->create_accessor = (*(c->super))->create_accessor;
|
c->create_accessor = (*(c->super))->create_accessor;
|
||||||
c->notify_change = (*(c->super))->notify_change;
|
c->notify_change = (*(c->super))->notify_change;
|
||||||
c->reparse = (*(c->super))->reparse;
|
c->reparse = (*(c->super))->reparse;
|
||||||
|
@ -240,7 +236,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Enrico Fucile *
|
|
||||||
***************************************************************************/
|
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
/*
|
/*
|
||||||
This is used by make_class.pl
|
This is used by make_class.pl
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
SUPER = action_class_gen
|
SUPER = action_class_gen
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy;execute
|
IMPLEMENTS = destroy;execute
|
||||||
MEMBERS = grib_darray *darray
|
MEMBERS = grib_darray *darray
|
||||||
MEMBERS = char *name
|
MEMBERS = char *name
|
||||||
|
@ -38,7 +35,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int execute(grib_action* a,grib_handle* h);
|
static int execute(grib_action* a,grib_handle* h);
|
||||||
|
|
||||||
|
@ -65,7 +61,7 @@ static grib_action_class _grib_action_class_transient_darray = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
0, /* create_accessor*/
|
0, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -78,6 +74,7 @@ grib_action_class* grib_action_class_transient_darray = &_grib_action_class_tran
|
||||||
|
|
||||||
static void init_class(grib_action_class* c)
|
static void init_class(grib_action_class* c)
|
||||||
{
|
{
|
||||||
|
c->xref = (*(c->super))->xref;
|
||||||
c->create_accessor = (*(c->super))->create_accessor;
|
c->create_accessor = (*(c->super))->create_accessor;
|
||||||
c->notify_change = (*(c->super))->notify_change;
|
c->notify_change = (*(c->super))->notify_change;
|
||||||
c->reparse = (*(c->super))->reparse;
|
c->reparse = (*(c->super))->reparse;
|
||||||
|
@ -140,7 +137,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, a->name);
|
grib_context_free_persistent(context, a->name);
|
||||||
grib_darray_delete(context, a->darray);
|
grib_darray_delete(context, a->darray);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
START_CLASS_DEF
|
START_CLASS_DEF
|
||||||
CLASS = action
|
CLASS = action
|
||||||
IMPLEMENTS = create_accessor
|
IMPLEMENTS = create_accessor
|
||||||
IMPLEMENTS = dump;xref
|
IMPLEMENTS = dump
|
||||||
IMPLEMENTS = destroy;notify_change
|
IMPLEMENTS = destroy;notify_change
|
||||||
MEMBERS = grib_expression *expression
|
MEMBERS = grib_expression *expression
|
||||||
MEMBERS = grib_action *block_true
|
MEMBERS = grib_action *block_true
|
||||||
|
@ -40,7 +40,6 @@ or edit "action.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
static void init_class (grib_action_class*);
|
static void init_class (grib_action_class*);
|
||||||
static void dump (grib_action* d, FILE*,int);
|
static void dump (grib_action* d, FILE*,int);
|
||||||
static void xref (grib_action* d, FILE* f,const char* path);
|
|
||||||
static void destroy (grib_context*,grib_action*);
|
static void destroy (grib_context*,grib_action*);
|
||||||
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
static int create_accessor(grib_section*,grib_action*,grib_loader*);
|
||||||
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
static int notify_change(grib_action* a, grib_accessor* observer,grib_accessor* observed);
|
||||||
|
@ -66,7 +65,7 @@ static grib_action_class _grib_action_class_when = {
|
||||||
&destroy, /* destroy */
|
&destroy, /* destroy */
|
||||||
|
|
||||||
&dump, /* dump */
|
&dump, /* dump */
|
||||||
&xref, /* xref */
|
0, /* xref */
|
||||||
|
|
||||||
&create_accessor, /* create_accessor*/
|
&create_accessor, /* create_accessor*/
|
||||||
|
|
||||||
|
@ -232,7 +231,3 @@ static void destroy(grib_context* context, grib_action* act)
|
||||||
grib_context_free_persistent(context, act->name);
|
grib_context_free_persistent(context, act->name);
|
||||||
grib_context_free_persistent(context, act->op);
|
grib_context_free_persistent(context, act->op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xref(grib_action* d, FILE* f, const char* path)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* action.cc */
|
/* action.cc */
|
||||||
void grib_xref(grib_action* a, FILE* f, const char* path);
|
|
||||||
void grib_action_delete(grib_context* context, grib_action* a);
|
void grib_action_delete(grib_context* context, grib_action* a);
|
||||||
int grib_create_accessor(grib_section* p, grib_action* a, grib_loader* h);
|
int grib_create_accessor(grib_section* p, grib_action* a, grib_loader* h);
|
||||||
int grib_action_notify_change(grib_action* a, grib_accessor* observer, grib_accessor* observed);
|
int grib_action_notify_change(grib_action* a, grib_accessor* observer, grib_accessor* observed);
|
||||||
|
@ -13,7 +12,6 @@ grib_action* grib_action_reparse(grib_action* a, grib_accessor* acc, int* doit);
|
||||||
int grib_action_execute(grib_action* a, grib_handle* h);
|
int grib_action_execute(grib_action* a, grib_handle* h);
|
||||||
void grib_dump_action_branch(FILE* out, grib_action* a, int decay);
|
void grib_dump_action_branch(FILE* out, grib_action* a, int decay);
|
||||||
void grib_dump_action_tree(grib_context* ctx, FILE* out);
|
void grib_dump_action_tree(grib_context* ctx, FILE* out);
|
||||||
void grib_xref_action_branch(FILE* out, grib_action* a, const char* path);
|
|
||||||
|
|
||||||
/* action_class_alias.cc */
|
/* action_class_alias.cc */
|
||||||
grib_action* grib_action_create_alias(grib_context* context, const char* name, const char* arg1, const char* name_space, int flags);
|
grib_action* grib_action_create_alias(grib_context* context, const char* name, const char* arg1, const char* name_space, int flags);
|
||||||
|
@ -792,7 +790,6 @@ void grib_buffer_free(const grib_context* c, void* p);
|
||||||
void* grib_buffer_realloc(const grib_context* c, void* p, size_t s);
|
void* grib_buffer_realloc(const grib_context* c, void* p, size_t s);
|
||||||
|
|
||||||
/* grib_buffer.cc*/
|
/* grib_buffer.cc*/
|
||||||
void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b);
|
|
||||||
grib_buffer* grib_create_growable_buffer(const grib_context* c);
|
grib_buffer* grib_create_growable_buffer(const grib_context* c);
|
||||||
grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, size_t buflen);
|
grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, size_t buflen);
|
||||||
void grib_buffer_delete(const grib_context* c, grib_buffer* b);
|
void grib_buffer_delete(const grib_context* c, grib_buffer* b);
|
||||||
|
|
|
@ -161,7 +161,7 @@ static int proj_space_view(grib_handle* h, char* result)
|
||||||
{
|
{
|
||||||
return GRIB_NOT_IMPLEMENTED;
|
return GRIB_NOT_IMPLEMENTED;
|
||||||
// int err = 0;
|
// int err = 0;
|
||||||
// char shape[64] = {0,};
|
// char shape[128] = {0,};
|
||||||
// double latOfSubSatellitePointInDegrees, lonOfSubSatellitePointInDegrees;
|
// double latOfSubSatellitePointInDegrees, lonOfSubSatellitePointInDegrees;
|
||||||
// if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
// if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
||||||
// return err;
|
// return err;
|
||||||
|
@ -190,7 +190,7 @@ static int proj_equatorial_azimuthal_equidistant(grib_handle* h, char* result)
|
||||||
static int proj_lambert_conformal(grib_handle* h, char* result)
|
static int proj_lambert_conformal(grib_handle* h, char* result)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
char shape[64] = {0,};
|
char shape[128] = {0,};
|
||||||
double LoVInDegrees = 0, LaDInDegrees = 0, Latin1InDegrees = 0, Latin2InDegrees = 0;
|
double LoVInDegrees = 0, LaDInDegrees = 0, Latin1InDegrees = 0, Latin2InDegrees = 0;
|
||||||
|
|
||||||
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
||||||
|
@ -211,7 +211,7 @@ static int proj_lambert_conformal(grib_handle* h, char* result)
|
||||||
static int proj_lambert_azimuthal_equal_area(grib_handle* h, char* result)
|
static int proj_lambert_azimuthal_equal_area(grib_handle* h, char* result)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
char shape[64] = {0,};
|
char shape[128] = {0,};
|
||||||
double standardParallel = 0, centralLongitude = 0;
|
double standardParallel = 0, centralLongitude = 0;
|
||||||
|
|
||||||
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
||||||
|
@ -231,7 +231,7 @@ static int proj_polar_stereographic(grib_handle* h, char* result)
|
||||||
double centralLongitude = 0, centralLatitude = 0;
|
double centralLongitude = 0, centralLatitude = 0;
|
||||||
int has_northPole = 0;
|
int has_northPole = 0;
|
||||||
long projectionCentreFlag = 0;
|
long projectionCentreFlag = 0;
|
||||||
char shape[64] = {0,};
|
char shape[128] = {0,};
|
||||||
|
|
||||||
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS)
|
||||||
return err;
|
return err;
|
||||||
|
@ -252,7 +252,7 @@ static int proj_polar_stereographic(grib_handle* h, char* result)
|
||||||
static int proj_unprojected(grib_handle* h, char* result)
|
static int proj_unprojected(grib_handle* h, char* result)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
//char shape[64] = {0,};
|
//char shape[128] = {0,};
|
||||||
//if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS) return err;
|
//if ((err = get_earth_shape(h, shape)) != GRIB_SUCCESS) return err;
|
||||||
//snprintf(result, 1024, "+proj=longlat %s", shape);
|
//snprintf(result, 1024, "+proj=longlat %s", shape);
|
||||||
snprintf(result, 1024, "+proj=longlat +datum=WGS84 +no_defs +type=crs");
|
snprintf(result, 1024, "+proj=longlat +datum=WGS84 +no_defs +type=crs");
|
||||||
|
@ -264,7 +264,7 @@ static int proj_mercator(grib_handle* h, char* result)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
double LaDInDegrees = 0;
|
double LaDInDegrees = 0;
|
||||||
char shape[64] = {0,};
|
char shape[128] = {0,};
|
||||||
|
|
||||||
if ((err = grib_get_double_internal(h, "LaDInDegrees", &LaDInDegrees)) != GRIB_SUCCESS)
|
if ((err = grib_get_double_internal(h, "LaDInDegrees", &LaDInDegrees)) != GRIB_SUCCESS)
|
||||||
return err;
|
return err;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
#include "grib_api_internal.h"
|
#include "grib_api_internal.h"
|
||||||
|
|
||||||
void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b)
|
static void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b)
|
||||||
{
|
{
|
||||||
unsigned char* newdata;
|
unsigned char* newdata;
|
||||||
if (b->property == CODES_MY_BUFFER)
|
if (b->property == CODES_MY_BUFFER)
|
||||||
|
@ -137,23 +137,19 @@ static void update_offsets_after(grib_accessor* a, long len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /* new GCC compiler v4.5.0 complains function is defined but not used*/
|
|
||||||
// void grib_recompute_sections_lengths(grib_section* s)
|
// void grib_recompute_sections_lengths(grib_section* s)
|
||||||
// {
|
// {
|
||||||
// if(s)
|
// if(s)
|
||||||
// {
|
// {
|
||||||
// long plen = 0;
|
// long plen = 0;
|
||||||
// size_t len = 1;
|
// size_t len = 1;
|
||||||
|
|
||||||
// grib_accessor* a = s->block->first;
|
// grib_accessor* a = s->block->first;
|
||||||
|
|
||||||
// while(a)
|
// while(a)
|
||||||
// {
|
// {
|
||||||
// /* grib_recompute_sections_lengths(grib_get_sub_section(a)); */
|
// /* grib_recompute_sections_lengths(grib_get_sub_section(a)); */
|
||||||
// grib_recompute_sections_lengths(a->sub_section);
|
// grib_recompute_sections_lengths(a->sub_section);
|
||||||
// a = a->next;
|
// a = a->next;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// if(s->aclength)
|
// if(s->aclength)
|
||||||
// {
|
// {
|
||||||
// int ret;
|
// int ret;
|
||||||
|
@ -161,10 +157,8 @@ static void update_offsets_after(grib_accessor* a, long len)
|
||||||
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
|
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
|
||||||
// else
|
// else
|
||||||
// plen = grib_get_next_position_offset(s->block->last);
|
// plen = grib_get_next_position_offset(s->block->last);
|
||||||
|
|
||||||
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
|
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
|
||||||
// ;
|
// ;
|
||||||
|
|
||||||
//
|
//
|
||||||
// if(s->h->context->debug)
|
// if(s->h->context->debug)
|
||||||
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
|
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
|
||||||
|
@ -177,7 +171,6 @@ static void update_offsets_after(grib_accessor* a, long len)
|
||||||
// {
|
// {
|
||||||
// long plen = 0;
|
// long plen = 0;
|
||||||
// size_t len = 1;
|
// size_t len = 1;
|
||||||
|
|
||||||
// if(!s) return;
|
// if(!s) return;
|
||||||
// if(s->aclength)
|
// if(s->aclength)
|
||||||
// {
|
// {
|
||||||
|
@ -186,14 +179,11 @@ static void update_offsets_after(grib_accessor* a, long len)
|
||||||
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
|
// plen = grib_get_next_position_offset(s->block->last) - s->owner->offset;
|
||||||
// else
|
// else
|
||||||
// plen = grib_get_next_position_offset(s->block->last);
|
// plen = grib_get_next_position_offset(s->block->last);
|
||||||
|
|
||||||
// /* if(s->owner) */
|
// /* if(s->owner) */
|
||||||
// /* s->owner->length = plen; */
|
// /* s->owner->length = plen; */
|
||||||
|
|
||||||
// /* if(s->aclength) */
|
// /* if(s->aclength) */
|
||||||
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
|
// if((ret = grib_pack_long(s->aclength, &plen, &len)) != GRIB_SUCCESS)
|
||||||
// ;
|
// ;
|
||||||
|
|
||||||
// if(s->h->context->debug)
|
// if(s->h->context->debug)
|
||||||
// {
|
// {
|
||||||
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
|
// printf("SECTION updating length %ld .. %s\n",plen,s->owner->name);
|
||||||
|
|
|
@ -73,8 +73,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
|
||||||
set->columns[id].long_values = (long*)grib_context_malloc_clear(c, sizeof(long) * GRIB_START_ARRAY_SIZE);
|
set->columns[id].long_values = (long*)grib_context_malloc_clear(c, sizeof(long) * GRIB_START_ARRAY_SIZE);
|
||||||
if (!set->columns[id].long_values) {
|
if (!set->columns[id].long_values) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_new_column: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, sizeof(long) * GRIB_START_ARRAY_SIZE);
|
||||||
sizeof(long) * GRIB_START_ARRAY_SIZE);
|
|
||||||
err = GRIB_OUT_OF_MEMORY;
|
err = GRIB_OUT_OF_MEMORY;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -83,8 +82,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
|
||||||
set->columns[id].double_values = (double*)grib_context_malloc_clear(c, sizeof(double) * GRIB_START_ARRAY_SIZE);
|
set->columns[id].double_values = (double*)grib_context_malloc_clear(c, sizeof(double) * GRIB_START_ARRAY_SIZE);
|
||||||
if (!set->columns[id].double_values) {
|
if (!set->columns[id].double_values) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_new_column: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, sizeof(double) * GRIB_START_ARRAY_SIZE);
|
||||||
sizeof(double) * GRIB_START_ARRAY_SIZE);
|
|
||||||
err = GRIB_OUT_OF_MEMORY;
|
err = GRIB_OUT_OF_MEMORY;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -93,8 +91,7 @@ int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type)
|
||||||
set->columns[id].string_values = (char**)grib_context_malloc_clear(c, sizeof(char*) * GRIB_START_ARRAY_SIZE);
|
set->columns[id].string_values = (char**)grib_context_malloc_clear(c, sizeof(char*) * GRIB_START_ARRAY_SIZE);
|
||||||
if (!set->columns[id].string_values) {
|
if (!set->columns[id].string_values) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_new_column: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, sizeof(char*) * GRIB_START_ARRAY_SIZE);
|
||||||
sizeof(char*) * GRIB_START_ARRAY_SIZE);
|
|
||||||
err = GRIB_OUT_OF_MEMORY;
|
err = GRIB_OUT_OF_MEMORY;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -171,8 +168,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
|
||||||
newsize * sizeof(long));
|
newsize * sizeof(long));
|
||||||
if (!newlongs) {
|
if (!newlongs) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_columns_resize: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
|
||||||
newsize - set->columns[i].values_array_size);
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -183,8 +179,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
|
||||||
newsize * sizeof(double));
|
newsize * sizeof(double));
|
||||||
if (!newdoubles) {
|
if (!newdoubles) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_columns_resize: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
|
||||||
newsize - set->columns[i].values_array_size);
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -195,8 +190,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
|
||||||
newsize * sizeof(char*));
|
newsize * sizeof(char*));
|
||||||
if (!newstrings) {
|
if (!newstrings) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_columns_resize: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize - set->columns[i].values_array_size);
|
||||||
newsize - set->columns[i].values_array_size);
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -206,8 +200,7 @@ static int grib_fieldset_columns_resize(grib_fieldset* set, size_t newsize)
|
||||||
newerrors = (int*)grib_context_realloc(c, set->columns[i].errors, newsize * sizeof(int));
|
newerrors = (int*)grib_context_realloc(c, set->columns[i].errors, newsize * sizeof(int));
|
||||||
if (!newerrors) {
|
if (!newerrors) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_columns_resize: Cannot malloc %ld bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize * sizeof(int));
|
||||||
newsize * sizeof(int));
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -332,8 +325,7 @@ static grib_fieldset* grib_fieldset_create_from_keys(grib_context* c, const char
|
||||||
msize = sizeof(grib_fieldset);
|
msize = sizeof(grib_fieldset);
|
||||||
set = (grib_fieldset*)grib_context_malloc_clear(c, msize);
|
set = (grib_fieldset*)grib_context_malloc_clear(c, msize);
|
||||||
if (!set) {
|
if (!set) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR,
|
grib_context_log(c, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", __func__, msize);
|
||||||
"grib_fieldset_create_from_keys: Cannot malloc %lu bytes", msize);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +349,7 @@ static grib_fieldset* grib_fieldset_create_from_keys(grib_context* c, const char
|
||||||
|
|
||||||
set->columns = (grib_column*)grib_context_malloc_clear(c, sizeof(grib_column) * nkeys);
|
set->columns = (grib_column*)grib_context_malloc_clear(c, sizeof(grib_column) * nkeys);
|
||||||
if (!set->columns) {
|
if (!set->columns) {
|
||||||
grib_context_log(c, GRIB_LOG_ERROR, "grib_fieldset_create_from_keys: memory allocation error");
|
grib_context_log(c, GRIB_LOG_ERROR, "%s: memory allocation error", __func__);
|
||||||
*err = GRIB_OUT_OF_MEMORY;
|
*err = GRIB_OUT_OF_MEMORY;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -417,7 +409,6 @@ int grib_fieldset_apply_where(grib_fieldset* set, const char* where_string)
|
||||||
// grib_math* m = NULL;
|
// grib_math* m = NULL;
|
||||||
// m = grib_math_new(set->context, where_string, &err);
|
// m = grib_math_new(set->context, where_string, &err);
|
||||||
// if (err || !m) return err;
|
// if (err || !m) return err;
|
||||||
|
|
||||||
// print_math(m);
|
// print_math(m);
|
||||||
// printf("\n");
|
// printf("\n");
|
||||||
// grib_math_delete(set->context, m);
|
// grib_math_delete(set->context, m);
|
||||||
|
@ -816,8 +807,7 @@ static int grib_fieldset_resize_int_array(grib_int_array* a, size_t newsize)
|
||||||
el = (int*)grib_context_realloc(a->context, a->el, newsize);
|
el = (int*)grib_context_realloc(a->context, a->el, newsize);
|
||||||
if (!el) {
|
if (!el) {
|
||||||
grib_context_log(a->context, GRIB_LOG_ERROR,
|
grib_context_log(a->context, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_resize_int_array: Cannot malloc %lu bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize);
|
||||||
newsize);
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -860,8 +850,7 @@ static int grib_fieldset_resize_fields(grib_fieldset* set, size_t newsize)
|
||||||
fields = (grib_field**)grib_context_realloc(set->context, set->fields, newsize * sizeof(grib_field*));
|
fields = (grib_field**)grib_context_realloc(set->context, set->fields, newsize * sizeof(grib_field*));
|
||||||
if (!fields) {
|
if (!fields) {
|
||||||
grib_context_log(set->context, GRIB_LOG_ERROR,
|
grib_context_log(set->context, GRIB_LOG_ERROR,
|
||||||
"grib_fieldset_resize_fields: Cannot malloc %lu bytes",
|
"%s: Error allocating %zu bytes", __func__, newsize * sizeof(grib_field*));
|
||||||
newsize * sizeof(grib_field*));
|
|
||||||
return GRIB_OUT_OF_MEMORY;
|
return GRIB_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -383,9 +383,20 @@ cat >$tempFilt <<EOF
|
||||||
print "[scaleFactorOfSecondFixedSurface:s]";
|
print "[scaleFactorOfSecondFixedSurface:s]";
|
||||||
EOF
|
EOF
|
||||||
${tools_dir}/grib_filter $tempFilt $ECCODES_SAMPLES_PATH/GRIB2.tmpl > $tempOut
|
${tools_dir}/grib_filter $tempFilt $ECCODES_SAMPLES_PATH/GRIB2.tmpl > $tempOut
|
||||||
cat $tempOut
|
|
||||||
grep "MISSING" $tempOut
|
grep "MISSING" $tempOut
|
||||||
|
|
||||||
|
# Test string_compare
|
||||||
|
cat >$tempFilt <<EOF
|
||||||
|
if (rubbish is "ppp") { print "yes"; } else { print "rubbish must fail"; }
|
||||||
|
if ("ppp" is garbage) { print "yes"; } else { print "garbage must fail"; }
|
||||||
|
EOF
|
||||||
|
${tools_dir}/grib_filter $tempFilt $ECCODES_SAMPLES_PATH/GRIB2.tmpl > $tempOut 2>&1
|
||||||
|
cat $tempOut
|
||||||
|
grep "rubbish must fail" $tempOut
|
||||||
|
grep "garbage must fail" $tempOut
|
||||||
|
grep "unable to get rubbish as string" $tempOut
|
||||||
|
grep "unable to get garbage as string" $tempOut
|
||||||
|
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
rm -f $tempGrib $tempFilt $tempOut $tempRef
|
rm -f $tempGrib $tempFilt $tempOut $tempRef
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
label="grib_indexing_test"
|
label="grib_indexing_test"
|
||||||
temp=temp.$label.index.out
|
temp=temp.$label.index.out
|
||||||
infile=${data_dir}/index.grib
|
infile=${data_dir}/index.grib
|
||||||
|
sample1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl
|
||||||
|
|
||||||
# Writes to "out.gribidx"
|
# Writes to "out.gribidx"
|
||||||
$EXEC ${test_dir}/grib_indexing ${infile} > $temp
|
$EXEC ${test_dir}/grib_indexing ${infile} > $temp
|
||||||
|
@ -109,9 +110,48 @@ ${tools_dir}/grib_index_build -N -o $tempIndex2 $tempGribFile2
|
||||||
${tools_dir}/grib_compare -v $tempIndex1 $tempIndex2
|
${tools_dir}/grib_compare -v $tempIndex1 $tempIndex2
|
||||||
rm -f $tempIndex1 $tempIndex2 $tempGribFile1 $tempGribFile2
|
rm -f $tempIndex1 $tempIndex2 $tempGribFile1 $tempGribFile2
|
||||||
|
|
||||||
|
# Indexes containing different keys
|
||||||
|
${tools_dir}/grib_index_build -k date,time -N -o $tempIndex1 $sample1
|
||||||
|
${tools_dir}/grib_index_build -k level -N -o $tempIndex2 $sample1
|
||||||
|
set +e
|
||||||
|
${tools_dir}/grib_compare -v $tempIndex1 $tempIndex2 2>$tempOut
|
||||||
|
status=$?
|
||||||
|
set -e
|
||||||
|
[ $status -ne 0 ]
|
||||||
|
cat $tempOut
|
||||||
|
grep -q "Indexes contained in the input files have different keys" $tempOut
|
||||||
|
rm -f $tempIndex1 $tempIndex2 $tempOut
|
||||||
|
|
||||||
|
|
||||||
|
${tools_dir}/grib_index_build -k date,time -N -o $tempIndex1 $sample1
|
||||||
|
${tools_dir}/grib_index_build -k date,time,level -N -o $tempIndex2 $sample1
|
||||||
|
set +e
|
||||||
|
${tools_dir}/grib_compare -v $tempIndex2 $tempIndex1 2>$tempOut
|
||||||
|
status=$?
|
||||||
|
set -e
|
||||||
|
[ $status -ne 0 ]
|
||||||
|
cat $tempOut
|
||||||
|
grep -q "Indexes contained in the input files have different keys" $tempOut
|
||||||
|
rm -f $tempIndex1 $tempIndex2 $tempOut
|
||||||
|
|
||||||
|
# Indexing with directory traversal
|
||||||
|
# ----------------------------------
|
||||||
|
temp_dir_A=tempdir.$label
|
||||||
|
temp_dir_B=tempdir.$label/subdir.$label
|
||||||
|
rm -rf $temp_dir_A
|
||||||
|
mkdir $temp_dir_A
|
||||||
|
mkdir $temp_dir_B
|
||||||
|
cp ${data_dir}/tigge/tigge_rjtd_pl_*grib $temp_dir_A
|
||||||
|
cp ${data_dir}/tigge/tigge_rjtd_sfc_*grib $temp_dir_B
|
||||||
|
|
||||||
|
${tools_dir}/grib_index_build -o $tempIndex1 $temp_dir_A
|
||||||
|
${tools_dir}/grib_dump $tempIndex1
|
||||||
|
|
||||||
|
rm -rf $temp_dir_A
|
||||||
|
|
||||||
|
|
||||||
# ECC-1516
|
# ECC-1516
|
||||||
# ---------
|
# ---------
|
||||||
sample1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl
|
|
||||||
${tools_dir}/grib_index_build -N -o $tempIndex1 $sample1 > /dev/null
|
${tools_dir}/grib_index_build -N -o $tempIndex1 $sample1 > /dev/null
|
||||||
${tools_dir}/grib_dump $tempIndex1 >/dev/null
|
${tools_dir}/grib_dump $tempIndex1 >/dev/null
|
||||||
|
|
||||||
|
|
|
@ -206,6 +206,21 @@ result=$(${tools_dir}/grib_get -w count=1 -p step -s stepUnits=D $input)
|
||||||
result=$(${tools_dir}/grib_get -w count=1 -p step -s stepUnits=m $input)
|
result=$(${tools_dir}/grib_get -w count=1 -p step -s stepUnits=m $input)
|
||||||
[ $result = 5760 ]
|
[ $result = 5760 ]
|
||||||
|
|
||||||
|
# GRIB1 stepRange and timeRangeIndicator=10
|
||||||
|
# -----------------------------------------
|
||||||
|
input=${data_dir}/reduced_latlon_surface.grib1
|
||||||
|
grib_check_key_equals $input timeRangeIndicator,P1,P2 '10 0 0'
|
||||||
|
ECCODES_GRIBEX_MODE_ON=1 ${tools_dir}/grib_set -s stepRange=11-12 $input $temp
|
||||||
|
grib_check_key_equals $temp P1,P2 '0 11'
|
||||||
|
|
||||||
|
set +e
|
||||||
|
${tools_dir}/grib_set -s stepRange=11-12 $input $temp 2>$templog
|
||||||
|
status=$?
|
||||||
|
set -e
|
||||||
|
[ $status -ne 0 ]
|
||||||
|
grep -q "Unable to set stepRange" $templog
|
||||||
|
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
rm -f $temp $templog
|
rm -f $temp $templog
|
||||||
rm -f $grib2File.p8tmp ${grib2File}.tmp x.grib
|
rm -f $grib2File.p8tmp ${grib2File}.tmp x.grib
|
||||||
|
|
|
@ -511,17 +511,17 @@ static int grib_tool_index(grib_runtime_options* options)
|
||||||
k2 = k2->next;
|
k2 = k2->next;
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
printf("Indexes contained in the input files have different keys\n");
|
fprintf(stderr, "Indexes contained in the input files have different keys!\n");
|
||||||
printf("keys in file %s:\n", f1);
|
fprintf(stderr, "keys in file %s:\n", f1);
|
||||||
k1 = options->index1->keys;
|
k1 = options->index1->keys;
|
||||||
while (k1) {
|
while (k1) {
|
||||||
printf("\t%s\n", k1->name);
|
fprintf(stderr, "\t%s\n", k1->name);
|
||||||
k1 = k1->next;
|
k1 = k1->next;
|
||||||
}
|
}
|
||||||
printf("keys in file %s:\n", f2);
|
fprintf(stderr, "keys in file %s:\n", f2);
|
||||||
k2 = options->index2->keys;
|
k2 = options->index2->keys;
|
||||||
while (k2) {
|
while (k2) {
|
||||||
printf("\t%s\n", k2->name);
|
fprintf(stderr, "\t%s\n", k2->name);
|
||||||
k2 = k2->next;
|
k2 = k2->next;
|
||||||
}
|
}
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -543,17 +543,17 @@ static int grib_tool_index(grib_runtime_options* options)
|
||||||
k1 = k1->next;
|
k1 = k1->next;
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
printf("Indexes contained in the input files have different keys\n");
|
fprintf(stderr,"Indexes contained in the input files have different keys!\n");
|
||||||
printf("keys in file %s:\n", f2);
|
fprintf(stderr, "keys in file %s:\n", f2);
|
||||||
k2 = options->index2->keys;
|
k2 = options->index2->keys;
|
||||||
while (k2) {
|
while (k2) {
|
||||||
printf("\t%s\n", k2->name);
|
fprintf(stderr, "\t%s\n", k2->name);
|
||||||
k2 = k2->next;
|
k2 = k2->next;
|
||||||
}
|
}
|
||||||
printf("keys in file %s:\n", f1);
|
fprintf(stderr, "keys in file %s:\n", f1);
|
||||||
k1 = options->index1->keys;
|
k1 = options->index1->keys;
|
||||||
while (k1) {
|
while (k1) {
|
||||||
printf("\t%s\n", k1->name);
|
fprintf(stderr, "\t%s\n", k1->name);
|
||||||
k1 = k1->next;
|
k1 = k1->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue