Open jlamoure opened 7 years ago
That is... concerning. What system are you running on? My best suggestion for now would be to try to manually compile LBLRTM. Unfortunately the output log doesn't have useful information - it just says compilation failed.
Here is my system info:
$ > uname -a
Linux lucy 4.5.0-2-amd64 #1 SMP Debian 4.5.3-2 (2016-05-08) x86_64 GNU/Linux
In the meantime, your suggestion is a good one as I have successfully compiled LBLRTM in the past.
If you can get it compiled, you should be able to get telfit up an running semi-manually:
The easiest, which I'm not positive will actually work, would be to comment out lines 222 and 223 in the setup.py file (the lines that compile lnfl and lblrtm), and then try to run again. Let me know if that works.
It seems that in my rollback from Debian Stretch to Jessie, this compilation issue has gone away. Here is my current system and compilation output for the record.
$ > uname -a
Linux lucy 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
$ > python setup.py build
running build
running build_py
running build_ext
Un-packing aer_v_3.2.tar.gz
Un-packing aerlnfl_v2.6.tar.gz
Un-packing aerlbl_v12.2.tar.gz
-----------------
lnfl_v2.6_linux_gnu_sgl Makefile
-----------------
This Makefile was designed for the linux platform.
It uses the gfortran compiler, with the following options:
-Wall -frecord-marker=4
The source files used are as follows:
lnfl.f util_gfortran.f
lnfl_v2.6_linux_gnu_sgl make in progress ...
=================
Makefile done
=================
-----------------
lblrtm_v12.2_linux_gnu_sgl Makefile
-----------------
This Makefile was designed for the linux platform.
It uses the gfortran compiler, with the following options:
-frecord-marker=4
The source files used are as follows:
lblrtm.f90 oprop.f90 contnm.f90 xmerge.f90 testmm.f90 lblatm.f90 lbllow.f90 postsub.f90 pltlbl.f90 lbldum.f90 solar.f90 nonlte.f90 fftscn.f90 util_gfortran.f90 phys_consts.f90 planet_earth.f90 lblparams.f90 struct_types.f90
The object files used are as follows:
lblrtm.o oprop.o contnm.o xmerge.o testmm.o lblatm.o lbllow.o postsub.o pltlbl.o lbldum.o solar.o nonlte.o fftscn.o util_gfortran.o phys_consts.o planet_earth.o lblparams.o struct_types.o
The object file path is as follows:
lblrtm_v12.2_linux_gnu_sgl.obj
The executable will be:
../lblrtm_v12.2_linux_gnu_sgl
make in progress ...
../src/oprop.f90:6361.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:6633.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7140.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7308.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7502.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7618.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7734.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7850.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:7940.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8004.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8094.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8158.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8274.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8338.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8428.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8518.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8582.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8672.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8840.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:8956.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9046.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9110.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9226.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9316.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9380.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9470.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9534.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9598.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9662.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9726.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9842.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9906.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:9970.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:10124.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:10188.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:10278.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:10368.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:10034.21:
call AtoB(T,Qt,Tdat,Q,NT)
1
Warning: Actual argument contains too few elements for dummy argument 'a' (119/600) at (1)
../src/oprop.f90:5665.26:
COMMON/Temperatures/tdat !mja, 10-27-2011
1
Warning: Named COMMON block 'temperatures' at (1) shall be of the same size as elsewhere (4 vs 476 bytes)
../src/contnm.f90:1175.12:
& ' CO2: modification from 2000-3200 cm-1 (AERI(ARM), ', &
1
Warning: Initialization string starting at (1) was truncated to fit the variable (51/52)
../src/lblatm.f90:945.38:
CALL CMPALT(2,PTMP,TTMP, WVTMP,ZTMP(1),REF_LAT, &
1
Warning: Actual argument contains too few elements for dummy argument 'pm' (2/6000) at (1)
../src/lblatm.f90:1006.35:
CALL CMPALT(2,PTMP,TTMP, WVTMP,ZTMP(1),REF_LAT, &
1
Warning: Actual argument contains too few elements for dummy argument 'pm' (2/6000) at (1)
../src/lblatm.f90:1065.35:
CALL CMPALT(2,PTMP,TTMP, WVTMP,ZTMP(1),REF_LAT, &
1
Warning: Actual argument contains too few elements for dummy argument 'pm' (2/6000) at (1)
../src/lblatm.f90:6787.35:
CALL CMPALT(2,PTMP,TTMP, WVTMP,ZTMP(1),REF_LAT, &
1
Warning: Actual argument contains too few elements for dummy argument 'pm' (2/6000) at (1)
../src/lbllow.f90:2949.19:
CALL BS (J,T,TEMP,NT,ST)
1
Warning: Actual argument contains too few elements for dummy argument 'b' (3/9) at (1)
../src/postsub.f90:574.21:
common /scanaj/HWHMa,V1a,V2a,JEMITa,JFNa,JVARa, &
1
Warning: Padding of 4 bytes required before 'v1a' in COMMON 'scanaj' at (1); reorder elements or use -fno-align-commons
../src/postsub.f90:806.21:
common /scanaj/HWHM,V1,V2,JEMIT,JFN,JVAR,SAMPL,NNFILE,NPTS
1
Warning: Padding of 4 bytes required before 'v1' in COMMON 'scanaj' at (1); reorder elements or use -fno-align-commons
=================
Makefile done
../lblrtm_v12.2_linux_gnu_sgl created
=================
Making /home/jacob/.TelFit/rundir1
Making /home/jacob/.TelFit/rundir2
Making /home/jacob/.TelFit/rundir3
Making /home/jacob/.TelFit/rundir4
skipping 'src/FittingUtilities.c' Cython extension (up-to-date)
Hello, I'm having the same issue but with OSx High Sierra. I tried commenting the lines, but it doesn't solve anything. It is working in ubuntu though.
I don't know why the original thing occurred so I'm not sure. Did you try compiling LBLRTM on your own and got the same error?
~/.TelFit/lblrtm/build
directorymake -f make_lblrtm linuxGNUsgl
(Actually, whatever the correct compiler for mac is...)If compilation fails, you could try different options in the make
command. But make sure you use single precision since otherwise things will fail when trying to build models.
I tried. I also tried downloading the latest versions of both lblrtm and lnfl from here: http://rtweb.aer.com/lblrtm.html I can compile lnfl, but not lblrtm. Do you think it has something to do with the compiler version? I am also getting this error while trying to build lblrtm in between all the warnings, which I don't know what it means:
Error: Blank required in STOP statement near (1) ../src/lblatm.f90:946:38:
CALL CMPALT(2,PTMP,TTMP, WVTMP,ZTMP(1),REF_LAT, &
1
There might be a compiler version issue. LBLRTM is very finicky... could you try playing with gfortran versions and report back if you get one to work?
That error might be what actually caused the build to fail, but I'm not familiar enough with the LBLRTM code to have any suggestions.
I got exactly the same issue :-( I don't know how to fix this issue with the fortran compiler, I have tried pretty much everything.. waiting for your help !
I'm really not an expert on LBLRTM... this code is a wrapper and assumes that it is possible to compile LBLRTM on your system. If that's not the case I really can't help you. I would suggest raising the issue with the LBLRTM folks and try to get help compiling on your system. If you get it to work, please report back; I may be able to make changes to the installation of TelFit if I know why LBLRTM won't install on recent Mac OS's.
I found a way to fix it. I compiled using gfortran but commenting the FCFLAG. Also a blank space has to be added in file lblrtm.f90 on line 7555:31 "IF (RANGEI .LT. DR) STOP'STOPPED IN FNDPTH'"
Hope this helps Valentina
Valentina,
Great, thanks! I'll try to see if I can get this fixed fairly soon. By commenting the FCFLAG, do you mean you changed the Makefile for LBLRTM?
Yes :-) in the dir ~/.Telfit/lblrtm/build , the file makefile.common where it says (for mac os x). FC=gfortran \
UTIL_FILE=util_gfortran.f90
And also is important to edit the lblrtm.f90 file in the src dir
I finally got a chance to look into this. Frustratingly, it works fine on my mac with High Sierra so this will be hard to debug without some more of your help. Here is my gfortran version; could you post what you get also?
gfortran --version
GNU Fortran (Homebrew gcc 6.1.0) 6.1.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
It also looks like you meant that you had to change lblatm.f90
, not lblrtm.f90
, correct? I made the code change there and uploaded a new version to zenodo. Can you try the issue-15
branch of this repository? Delete your ~/.Telfit
directory, switch to that branch, and try python setup.py build
again. It should pull the new files and try to compile things.
Thanks! Kevin
I ran into the same build issue.
More or less what vdorazi mentioned.
I tried python setup.py install
, and it failed to build lblrtm.
To fix the build, added a space in ~/.TelFit/lblrtm/srclblatm.f90 at line 7555 position 31. It originally was
IF (RANGEI .LT. DR) STOP'STOPPED IN FNDPTH'
and I changed it to IF (RANGEI .LT. DR) STOP 'STOPPED IN FNDPTH'
I did not need to edit makefile.common at all.
Then, to make this fix work using python setup.py install
, I commented out line 211 of setup.py, subprocess.check_call(["tar", "-xzf", '{}{}'.format(TELLURICMODELING, fname), '-C', TELLURICMODELING])
so as to not overwrite the source edit I had made. Then, the install worked fine.
I have gfortran 7.3.0 on OSX High Sierra. I believe this error is only seen on more recent versions of gfortran, c.f. this similar-looking issue.
@kilimanjaro did you try with the issue-15
branch? That pulls the lblrtm code that has the fix you mentioned, so it should work.
Hello Kevin,
I get
GNU Fortran (GCC) 7.3.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
and yes i did not edit lblrtm.f90 but now I need to double check what I have done ;-)
sorry for the delay
Valentina
On 19 Mar 2018, at 02:55, Kevin Gullikson notifications@github.com wrote:
I finally got a chance to look into this. Frustratingly, it works fine on my mac with High Sierra so this will be hard to debug without some more of your help. Here is my gfortran version; could you post what you get also?
gfortran --version
GNU Fortran (Homebrew gcc 6.1.0) 6.1.0 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
It also looks like you meant that you had to change lblatm.f90, not lblrtm.f90, correct? I made the code change there and uploaded a new version to zenodo. Can you try the issue-15 branch of this repository? Delete your ~/.Telfit directory, switch to that branch, and try python setup.py build again. It should pull the new files and try to compile things.
Thanks! Kevin
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
Just want to add that I had this same issue, and that the issue-15 branch does install and build correctly. Could that be merged into master?
On OSX catalina (10.15.4) with gfortran compiler I had this same issue but managed to install by using the issue-15 branch.
I had to edit the makefile.common files in ~/.TelFit/lbrtm/build
and ~/.TelFit/lnfl/build
to add -std=legacy
to the FCFLAG
entry for osxGNUsgl
.
Is anyone encountering these installation woes still? We have just deployed a new version (v1.4.0
) of telfit to PyPI so pip install telfit
now works for Python3 only, and in principle some of these installation frictions could be mitigated with that installation strategy. In practice this path has undergone only two users tests that we are aware of, so we are asking for your help in these specific ways:
1) beginner Attempt to pip install telfit on your system and share your experience here or preferably in Issue #34
2) intermediate Add/expand a "troubleshooting" section to Installation Documentation. The relevant File is docs/Installation.rst
, it can be modified with a regular text editor, and uploaded back to GitHub with a Pull Request.
3) advanced Set up continuous integration to get telfit automatically tested on a range of platforms with a range of configurations.
Please help telfit grow as a sustainable open source project by volunteering some of your time in one of these three specific ways. We appreciate any help you can offer! Thank you! :pray:
To anyone who might see this: I met the same problem, idicating something wrong in calling AtoB(T,Qt,Tdat,Q,NT), while I am compling AER's LBLRTM sources manully. It seems like this:
Error: Actual argument contains too few elements for dummy argument ‘a’ (119/600) at (1)
../src/oprop.f90:7088:18:
7088 | call AtoB(T,Qt,Tdat,Q,NT)
and after a long queue same problems as above, like this:
make[1]: *** [make_lblrtm:56: lblrtm_v12.11_mingw_gnu_sgl.obj/oprop.o] Error 1
I am currently in demand of using LBLRTM, while I don't have any experience on Fortran. I refered to
https://github.com/AER-RC/LBLRTM/issues/2 and found the solution. No need to change the code, just add
-std=legacy
for FCFLAG inmakefile.common
, it will look like this way:(Please note that I am using mingwGNUsgl version)mingwGNUsgl: ${MAKE} -f ${MAKEFILE} all P_TYPE=sgl FC_TYPE=gnu PLTFRM=mingw \ FC=gfortran \ FCFLAG="-frecord-marker=4 -std=legacy" \ UTIL_FILE=util_gfortran.f90
I would be very glad if this would help anyone.
Hi @HyderPang ,
Thank you for reporting this. In #32 fix, i patched this error for Linux and Mac OS but forgot Windows... I made a PR, #43 , to fix this. However, i don't have a Windows machine with me to test if that works. Will be nice if you can check that fix out and report show it goes. Thank you!
I just merged the PR #43
Here is the output of a build attempt. Make of lnfl succeeds, stops at make of lblrtm. Build output points to make_lblrtm, line 63.
make_lblrtm line 62-63:
These needed .mod files and lbllow.f90 seem to exist: