Re: ERA52ARL code compilation error
Posted: June 24th, 2021, 10:06 am
Hi Alice,
Thank you! The input files (ERA5_2000.Jan01.3dpl.grib, ERA5_2000.Jan01.2dpl.all.grib) for era52arl executable are created using your python code from Github. Below are answers to your questions. Looking forward to hear from you.
1. Can you just run the executable for era52arl with no inputs?
- ------------------
(base) seethalachellappan@Seethalas-Air-2 exec % ./era52arl
Usage: era52arl [-options]
One pressure level file and at least one surface file must be input.
The surface file(s) should have all the time periods that
pressure level files have do but they can have extra time periods.
A default era52arl.cfg will be created if none exists or
alternate name is not specified with the -d option.
This file specifies variables and pressure levels to be written.
to the ARL file.
-d[decoding configuration file {name | create era52arl.cfg}]
-i[input grib1 file with pressure level fields name {DATA.GRIB}]
-a[input grib1 surface fields name {SFC.GRIB}]
-f[input grib1 surface fields name {SFC2.GRIB}]
-o[output data file name {DATA.ARL}]
-p[ensemble data. Number of ensemble to extract]
-t[{1} integer. Extract every ith time period in the grib file]
e.g. 1 extract all time periods. 2 extract every other time
period.
-v[verbose mode {False}]
(base) seethalachellappan@Seethalas-Air-2 exec %
3. can you remove the era52arl.cfg file and try running without it. (era52arl will generate a default if it is not present).
--------------------
(base) seethalachellappan@Seethalas-Air-2 exec % ./era52arl -i../python/ERA5_2000.Jan01.3dpl.grib -a../python/ERA5_2000.Jan01.2dpl.all.grib -t1 -oera5data.arl
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
era52arl 0000000104A1F144 for__signal_handl Unknown Unknown
libsystem_platfor 00007FFF20366D7D _sigtramp Unknown Unknown
era52arl 00000001049450A1 grib_accessor_fac Unknown Unknown
era52arl 00000001049256C1 create_accessor Unknown Unknown
era52arl 000000010492886E create_accessor Unknown Unknown
era52arl 000000010492886E create_accessor Unknown Unknown
era52arl 0000000104925BBE create_accessor Unknown Unknown
era52arl 00000001049BDAFE grib_handle_creat Unknown Unknown
era52arl 00000001049BD768 grib_handle_new_f Unknown Unknown
era52arl 00000001049BE7DE grib_new_from_fil Unknown Unknown
era52arl 00000001049C3335 grib_count_in_fil Unknown Unknown
era52arl 000000010491BF50 grib_api_mp_grib_ Unknown Unknown
era52arl 00000001048FFB51 MAIN__ Unknown Unknown
era52arl 00000001048FD52E main Unknown Unknown
(base) seethalachellappan@Seethalas-Air-2 exec %
2. Is an ERA52ARL.MESSAGE file being created? If so can you include the contents?
------------------------
- for executing era52arl without any input no ERA52ARL.MESSAGE was generated. Below is the content of ERA52ARL.MESSAGE file created for the run with inputs.
numsfc= 14
numatm= 6
numlev= 37
levels= 1000 975 950 925 900 875
850 825 800 775 750 700
650 600 550 500 450 400
350 300 250 225 200 175
150 125 100 70 50 30
20 10 7 5 3 2
1
grib_name=
../python/ERA5_2000.Jan01.2dpl.all.grib
~
4. check your grib files with the eccodes grib_dump utility or other.
------------ see below for both 2d and 3d data.
(base) seethalachellappan@Seethalas-Air-2 python % grib_dump ERA5_2000.Jan01.2dpl.all.grib | more
***** FILE: ERA5_2000.Jan01.2dpl.all.grib
#============== MESSAGE 1 ( length=2076588 ) ==============
GRIB {
editionNumber = 1;
table2Version = 128;
# European Centre for Medium-Range Weather Forecasts (common/c-1.table)
centre = 98;
generatingProcessIdentifier = 145;
# 2 metre temperature (K) (grib1/2.98.128.table)
indicatorOfParameter = 167;
# Surface (of the Earth, which includes sea surface) (grib1/local/ecmf/3.table , grib1/3.table)
indicatorOfTypeOfLevel = 1;
level = 0;
# Forecast product valid at reference time + P1 (P1>0) (grib1/local/ecmf/5.table , grib1/5.table)
timeRangeIndicator = 0;
# Unknown code table entry (grib1/0.ecmf.table)
subCentre = 0;
paramId = 167;
#-READ ONLY- cfNameECMF = unknown;
#-READ ONLY- cfName = unknown;
#-READ ONLY- cfVarNameECMF = t2m;
#-READ ONLY- cfVarName = t2m;
#-READ ONLY- units = K;
#-READ ONLY- nameECMF = 2 metre temperature;
#-READ ONLY- name = 2 metre temperature;
decimalScaleFactor = 0;
dataDate = 20000101;
dataTime = 0;
# Hour (stepUnits.table)
stepUnits = 1;
stepRange = 0;
startStep = 0;
endStep = 0;
#-READ ONLY- marsParam = 167.128;
# MARS labelling or ensemble forecast data (grib1/localDefinitionNumber.98.table)
localDefinitionNumber = 1;
# ERA5 (mars/class.table)
marsClass = 23;
# Analysis (mars/type.table)
marsType = 2;
# Atmospheric model (mars/stream.table)
marsStream = 1025;
experimentVersionNumber = 0001;
perturbationNumber = 0;
numberOfForecastsInEnsemble = 0;
shortName = 2t;
GDSPresent = 1;
bitmapPresent = 0;
numberOfVerticalCoordinateValues = 0;
Ni = 1440;
Nj = 721;
latitudeOfFirstGridPointInDegrees = 90;
longitudeOfFirstGridPointInDegrees = -180;
earthIsOblate = 0;
uvRelativeToGrid = 0;
latitudeOfLastGridPointInDegrees = -90;
longitudeOfLastGridPointInDegrees = 179.75;
iScansNegatively = 0;
jScansPositively = 0;
jPointsAreConsecutive = 0;
#-READ ONLY- alternativeRowScanning = 0;
jDirectionIncrementInDegrees = 0.25;
iDirectionIncrementInDegrees = 0.25;
#-READ ONLY- numberOfDataPoints = 1038240;
#-READ ONLY- numberOfValues = 1038240;
missingValue = 9999;
#-READ ONLY- binaryScaleFactor = -9;
#-READ ONLY- referenceValue = 222.132;
sphericalHarmonics = 0;
complexPacking = 0;
integerPointValues = 0;
additionalFlagPresent = 0;
packingType = grid_simple;
bitsPerValue = 16;
values(1038240) = {
264.692, 264.692, 264.692, 264.692, 264.692,
(base) seethalachellappan@Seethalas-Air-2 python % grib_dump ERA5_2000.Jan01.3dpl.grib | more
***** FILE: ERA5_2000.Jan01.3dpl.grib
#============== MESSAGE 1 ( length=2076588 ) ==============
GRIB {
editionNumber = 1;
table2Version = 128;
# European Centre for Medium-Range Weather Forecasts (common/c-1.table)
centre = 98;
generatingProcessIdentifier = 145;
# Temperature (K) (grib1/2.98.128.table)
indicatorOfParameter = 130;
# Isobaric level pressure in hectoPascals (hPa) (2 octets) (grib1/local/ecmf/3.table , grib1/3.table)
indicatorOfTypeOfLevel = 100;
level = 1000;
# Forecast product valid at reference time + P1 (P1>0) (grib1/local/ecmf/5.table , grib1/5.table)
timeRangeIndicator = 0;
# Unknown code table entry (grib1/0.ecmf.table)
subCentre = 0;
paramId = 130;
#-READ ONLY- cfNameECMF = air_temperature;
#-READ ONLY- cfName = air_temperature;
#-READ ONLY- cfVarNameECMF = t;
#-READ ONLY- cfVarName = t;
#-READ ONLY- units = K;
#-READ ONLY- nameECMF = Temperature;
#-READ ONLY- name = Temperature;
decimalScaleFactor = 0;
dataDate = 20000101;
dataTime = 0;
# Hour (stepUnits.table)
stepUnits = 1;
stepRange = 0;
startStep = 0;
endStep = 0;
#-READ ONLY- marsParam = 130.128;
# MARS labelling or ensemble forecast data (grib1/localDefinitionNumber.98.table)
localDefinitionNumber = 1;
# ERA5 (mars/class.table)
marsClass = 23;
# Analysis (mars/type.table)
marsType = 2;
# Atmospheric model (mars/stream.table)
marsStream = 1025;
experimentVersionNumber = 0001;
perturbationNumber = 0;
numberOfForecastsInEnsemble = 0;
shortName = t;
GDSPresent = 1;
bitmapPresent = 0;
numberOfVerticalCoordinateValues = 0;
Ni = 1440;
Nj = 721;
latitudeOfFirstGridPointInDegrees = 90;
longitudeOfFirstGridPointInDegrees = -180;
earthIsOblate = 0;
uvRelativeToGrid = 0;
latitudeOfLastGridPointInDegrees = -90;
longitudeOfLastGridPointInDegrees = 179.75;
iScansNegatively = 0;
jScansPositively = 0;
jPointsAreConsecutive = 0;
#-READ ONLY- alternativeRowScanning = 0;
jDirectionIncrementInDegrees = 0.25;
iDirectionIncrementInDegrees = 0.25;
#-READ ONLY- numberOfDataPoints = 1038240;
#-READ ONLY- numberOfValues = 1038240;
missingValue = 9999;
#-READ ONLY- binaryScaleFactor = -9;
#-READ ONLY- referenceValue = 225.53;
sphericalHarmonics = 0;
complexPacking = 0;
integerPointValues = 0;
additionalFlagPresent = 0;
packingType = grid_simple;
bitsPerValue = 16;
values(1038240) = {
264.614, 264.614, 264.614, 264.614, 264.614,
264.614, 264.614, 264.614, 264.614, 264.614,
264.614, 264.614, 264.614, 264.614, 264.614,
Thank you! The input files (ERA5_2000.Jan01.3dpl.grib, ERA5_2000.Jan01.2dpl.all.grib) for era52arl executable are created using your python code from Github. Below are answers to your questions. Looking forward to hear from you.
1. Can you just run the executable for era52arl with no inputs?
- ------------------
(base) seethalachellappan@Seethalas-Air-2 exec % ./era52arl
Usage: era52arl [-options]
One pressure level file and at least one surface file must be input.
The surface file(s) should have all the time periods that
pressure level files have do but they can have extra time periods.
A default era52arl.cfg will be created if none exists or
alternate name is not specified with the -d option.
This file specifies variables and pressure levels to be written.
to the ARL file.
-d[decoding configuration file {name | create era52arl.cfg}]
-i[input grib1 file with pressure level fields name {DATA.GRIB}]
-a[input grib1 surface fields name {SFC.GRIB}]
-f[input grib1 surface fields name {SFC2.GRIB}]
-o[output data file name {DATA.ARL}]
-p[ensemble data. Number of ensemble to extract]
-t[{1} integer. Extract every ith time period in the grib file]
e.g. 1 extract all time periods. 2 extract every other time
period.
-v[verbose mode {False}]
(base) seethalachellappan@Seethalas-Air-2 exec %
3. can you remove the era52arl.cfg file and try running without it. (era52arl will generate a default if it is not present).
--------------------
(base) seethalachellappan@Seethalas-Air-2 exec % ./era52arl -i../python/ERA5_2000.Jan01.3dpl.grib -a../python/ERA5_2000.Jan01.2dpl.all.grib -t1 -oera5data.arl
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
era52arl 0000000104A1F144 for__signal_handl Unknown Unknown
libsystem_platfor 00007FFF20366D7D _sigtramp Unknown Unknown
era52arl 00000001049450A1 grib_accessor_fac Unknown Unknown
era52arl 00000001049256C1 create_accessor Unknown Unknown
era52arl 000000010492886E create_accessor Unknown Unknown
era52arl 000000010492886E create_accessor Unknown Unknown
era52arl 0000000104925BBE create_accessor Unknown Unknown
era52arl 00000001049BDAFE grib_handle_creat Unknown Unknown
era52arl 00000001049BD768 grib_handle_new_f Unknown Unknown
era52arl 00000001049BE7DE grib_new_from_fil Unknown Unknown
era52arl 00000001049C3335 grib_count_in_fil Unknown Unknown
era52arl 000000010491BF50 grib_api_mp_grib_ Unknown Unknown
era52arl 00000001048FFB51 MAIN__ Unknown Unknown
era52arl 00000001048FD52E main Unknown Unknown
(base) seethalachellappan@Seethalas-Air-2 exec %
2. Is an ERA52ARL.MESSAGE file being created? If so can you include the contents?
------------------------
- for executing era52arl without any input no ERA52ARL.MESSAGE was generated. Below is the content of ERA52ARL.MESSAGE file created for the run with inputs.
numsfc= 14
numatm= 6
numlev= 37
levels= 1000 975 950 925 900 875
850 825 800 775 750 700
650 600 550 500 450 400
350 300 250 225 200 175
150 125 100 70 50 30
20 10 7 5 3 2
1
grib_name=
../python/ERA5_2000.Jan01.2dpl.all.grib
~
4. check your grib files with the eccodes grib_dump utility or other.
------------ see below for both 2d and 3d data.
(base) seethalachellappan@Seethalas-Air-2 python % grib_dump ERA5_2000.Jan01.2dpl.all.grib | more
***** FILE: ERA5_2000.Jan01.2dpl.all.grib
#============== MESSAGE 1 ( length=2076588 ) ==============
GRIB {
editionNumber = 1;
table2Version = 128;
# European Centre for Medium-Range Weather Forecasts (common/c-1.table)
centre = 98;
generatingProcessIdentifier = 145;
# 2 metre temperature (K) (grib1/2.98.128.table)
indicatorOfParameter = 167;
# Surface (of the Earth, which includes sea surface) (grib1/local/ecmf/3.table , grib1/3.table)
indicatorOfTypeOfLevel = 1;
level = 0;
# Forecast product valid at reference time + P1 (P1>0) (grib1/local/ecmf/5.table , grib1/5.table)
timeRangeIndicator = 0;
# Unknown code table entry (grib1/0.ecmf.table)
subCentre = 0;
paramId = 167;
#-READ ONLY- cfNameECMF = unknown;
#-READ ONLY- cfName = unknown;
#-READ ONLY- cfVarNameECMF = t2m;
#-READ ONLY- cfVarName = t2m;
#-READ ONLY- units = K;
#-READ ONLY- nameECMF = 2 metre temperature;
#-READ ONLY- name = 2 metre temperature;
decimalScaleFactor = 0;
dataDate = 20000101;
dataTime = 0;
# Hour (stepUnits.table)
stepUnits = 1;
stepRange = 0;
startStep = 0;
endStep = 0;
#-READ ONLY- marsParam = 167.128;
# MARS labelling or ensemble forecast data (grib1/localDefinitionNumber.98.table)
localDefinitionNumber = 1;
# ERA5 (mars/class.table)
marsClass = 23;
# Analysis (mars/type.table)
marsType = 2;
# Atmospheric model (mars/stream.table)
marsStream = 1025;
experimentVersionNumber = 0001;
perturbationNumber = 0;
numberOfForecastsInEnsemble = 0;
shortName = 2t;
GDSPresent = 1;
bitmapPresent = 0;
numberOfVerticalCoordinateValues = 0;
Ni = 1440;
Nj = 721;
latitudeOfFirstGridPointInDegrees = 90;
longitudeOfFirstGridPointInDegrees = -180;
earthIsOblate = 0;
uvRelativeToGrid = 0;
latitudeOfLastGridPointInDegrees = -90;
longitudeOfLastGridPointInDegrees = 179.75;
iScansNegatively = 0;
jScansPositively = 0;
jPointsAreConsecutive = 0;
#-READ ONLY- alternativeRowScanning = 0;
jDirectionIncrementInDegrees = 0.25;
iDirectionIncrementInDegrees = 0.25;
#-READ ONLY- numberOfDataPoints = 1038240;
#-READ ONLY- numberOfValues = 1038240;
missingValue = 9999;
#-READ ONLY- binaryScaleFactor = -9;
#-READ ONLY- referenceValue = 222.132;
sphericalHarmonics = 0;
complexPacking = 0;
integerPointValues = 0;
additionalFlagPresent = 0;
packingType = grid_simple;
bitsPerValue = 16;
values(1038240) = {
264.692, 264.692, 264.692, 264.692, 264.692,
(base) seethalachellappan@Seethalas-Air-2 python % grib_dump ERA5_2000.Jan01.3dpl.grib | more
***** FILE: ERA5_2000.Jan01.3dpl.grib
#============== MESSAGE 1 ( length=2076588 ) ==============
GRIB {
editionNumber = 1;
table2Version = 128;
# European Centre for Medium-Range Weather Forecasts (common/c-1.table)
centre = 98;
generatingProcessIdentifier = 145;
# Temperature (K) (grib1/2.98.128.table)
indicatorOfParameter = 130;
# Isobaric level pressure in hectoPascals (hPa) (2 octets) (grib1/local/ecmf/3.table , grib1/3.table)
indicatorOfTypeOfLevel = 100;
level = 1000;
# Forecast product valid at reference time + P1 (P1>0) (grib1/local/ecmf/5.table , grib1/5.table)
timeRangeIndicator = 0;
# Unknown code table entry (grib1/0.ecmf.table)
subCentre = 0;
paramId = 130;
#-READ ONLY- cfNameECMF = air_temperature;
#-READ ONLY- cfName = air_temperature;
#-READ ONLY- cfVarNameECMF = t;
#-READ ONLY- cfVarName = t;
#-READ ONLY- units = K;
#-READ ONLY- nameECMF = Temperature;
#-READ ONLY- name = Temperature;
decimalScaleFactor = 0;
dataDate = 20000101;
dataTime = 0;
# Hour (stepUnits.table)
stepUnits = 1;
stepRange = 0;
startStep = 0;
endStep = 0;
#-READ ONLY- marsParam = 130.128;
# MARS labelling or ensemble forecast data (grib1/localDefinitionNumber.98.table)
localDefinitionNumber = 1;
# ERA5 (mars/class.table)
marsClass = 23;
# Analysis (mars/type.table)
marsType = 2;
# Atmospheric model (mars/stream.table)
marsStream = 1025;
experimentVersionNumber = 0001;
perturbationNumber = 0;
numberOfForecastsInEnsemble = 0;
shortName = t;
GDSPresent = 1;
bitmapPresent = 0;
numberOfVerticalCoordinateValues = 0;
Ni = 1440;
Nj = 721;
latitudeOfFirstGridPointInDegrees = 90;
longitudeOfFirstGridPointInDegrees = -180;
earthIsOblate = 0;
uvRelativeToGrid = 0;
latitudeOfLastGridPointInDegrees = -90;
longitudeOfLastGridPointInDegrees = 179.75;
iScansNegatively = 0;
jScansPositively = 0;
jPointsAreConsecutive = 0;
#-READ ONLY- alternativeRowScanning = 0;
jDirectionIncrementInDegrees = 0.25;
iDirectionIncrementInDegrees = 0.25;
#-READ ONLY- numberOfDataPoints = 1038240;
#-READ ONLY- numberOfValues = 1038240;
missingValue = 9999;
#-READ ONLY- binaryScaleFactor = -9;
#-READ ONLY- referenceValue = 225.53;
sphericalHarmonics = 0;
complexPacking = 0;
integerPointValues = 0;
additionalFlagPresent = 0;
packingType = grid_simple;
bitsPerValue = 16;
values(1038240) = {
264.614, 264.614, 264.614, 264.614, 264.614,
264.614, 264.614, 264.614, 264.614, 264.614,
264.614, 264.614, 264.614, 264.614, 264.614,