Rumekintun
New member
Hi all,
I am trying to use ECMWF data to make WRF boundary conditions. After "fixing" some problems, such as
1) ec_rec_len = 26214508 in the ungrib segment of namelist.wps
2) using skt instead of sstk
3) ...
I have come across a problem that apparently has no solution,.. it is the reading of the LSM variable, as it always throws an error of the type:
---
End-of-record mark (7777) not found 0
Sec0(1) = 26214508 0
1 172 LSM 1 0 0 2024-11-10_00:00 + 00
*** stopping in findgrib in gribcode ***\n
\tI could not find the GRIB string in the input file
\tafter testing the first 100,000 bytes.
\tThe file may be corrupt or it is not a GRIB file.
\tPerhaps a gzipped GRIB file or netcdf?\n
STOP findgrib
---
When I use g1 print.exe (the ecmwf compatible version), I get some more information about this error.
g1print_ecmwf.exe -v ec.oper.an.sfc.128_172_lsm.regn1280sc.20241110.grb
..
..
GRIB SECTION 4:
Length of BDS : 16
0/1: grid-point or sph. harm. data : 0
0/1: simple or complex packing : 0
0/1: floating or integer : 0
0/1: No addl flags or addl flags : 0
Unused bits : 8
Binary Scale Factor : -23
Reference Value : 0.00000000
Number of bits for packing : 24
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
--------------------------------------
then I converted, using ECMWF utilities, from grib to netcdf (grib_to_netcdf), I saw the field and everything seems fine..
then I converted back to grib with the cdo command:
cdo -b 16 -f grb copy ec.oper.an.sfc.128_172_lsm.regn1280sc.nc ec.oper.an.sfc.128_172_lsm.regn1280sc.grib
(I reduced the output bits to 16)
When repeating the g1print.exe command, this time there is no segmentation fault, but there is an error (End-of-record mark (7777) not found)
well ..
2 questions
1) Can the lsm variable be fixed somehow so that it can be read by ungrib.exe command?
2) I really need the variable lsm when running ungrib.exe?, I ask this because while testing, I got ungrib.exe outputs without error messages simply by excluding the variable LSM. According to the manual this is a necessary variable.
thanks in advance ..
I am trying to use ECMWF data to make WRF boundary conditions. After "fixing" some problems, such as
1) ec_rec_len = 26214508 in the ungrib segment of namelist.wps
2) using skt instead of sstk
3) ...
I have come across a problem that apparently has no solution,.. it is the reading of the LSM variable, as it always throws an error of the type:
---
End-of-record mark (7777) not found 0
Sec0(1) = 26214508 0
1 172 LSM 1 0 0 2024-11-10_00:00 + 00
*** stopping in findgrib in gribcode ***\n
\tI could not find the GRIB string in the input file
\tafter testing the first 100,000 bytes.
\tThe file may be corrupt or it is not a GRIB file.
\tPerhaps a gzipped GRIB file or netcdf?\n
STOP findgrib
---
When I use g1 print.exe (the ecmwf compatible version), I get some more information about this error.
g1print_ecmwf.exe -v ec.oper.an.sfc.128_172_lsm.regn1280sc.20241110.grb
..
..
GRIB SECTION 4:
Length of BDS : 16
0/1: grid-point or sph. harm. data : 0
0/1: simple or complex packing : 0
0/1: floating or integer : 0
0/1: No addl flags or addl flags : 0
Unused bits : 8
Binary Scale Factor : -23
Reference Value : 0.00000000
Number of bits for packing : 24
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
--------------------------------------
then I converted, using ECMWF utilities, from grib to netcdf (grib_to_netcdf), I saw the field and everything seems fine..
then I converted back to grib with the cdo command:
cdo -b 16 -f grb copy ec.oper.an.sfc.128_172_lsm.regn1280sc.nc ec.oper.an.sfc.128_172_lsm.regn1280sc.grib
(I reduced the output bits to 16)
When repeating the g1print.exe command, this time there is no segmentation fault, but there is an error (End-of-record mark (7777) not found)
well ..
2 questions
1) Can the lsm variable be fixed somehow so that it can be read by ungrib.exe command?
2) I really need the variable lsm when running ungrib.exe?, I ask this because while testing, I got ungrib.exe outputs without error messages simply by excluding the variable LSM. According to the manual this is a necessary variable.
thanks in advance ..