Help with Fortran90

From Stellarium Wiki
Revision as of 20:13, 9 May 2007 by Blakbear (Talk | contribs)
Jump to: navigation, search

This page is dedicated to conversation and mutual help on creating Neptunian satellite ephemeris using Le Guyader's and Jerome Berthier's

First approach: f77

In replace FC = xlf with FC = f77 and type 'make'. You will see lots of errors like

isat_d.f: In subroutine `isatd':
   210     format(8x,' Dernier pas:',d23.16)'
Invalid form for FORMAT statement at (^)

In my opinion the reason is that the code is not FORTRAN77 conform. I tried to overcome this problem by fixing the source code, there is an awful lot of wrong format statements. For finding the input files I changed in fs2fd.f:

infile  = trim(dir_s)//trim(fil_s)
outfile = trim(dir_d)//trim(fil_d)


infile  = './data/Nsat-fs.dat'
outfile = './data/Nsat-fd.dat'

Same in ins_d.f:

theofile = './data/Nsat-fd.dat'

Additionally in ins_d.f I had to move the passage


after the COMMON block:


FORTRAN77 seem not to support variable size arrays, so in isat_d.f I had to replace

dimension tp(np),up(np),cp(3,np),aia(4)

in line 183 with

dimension tp(100000),up(100000),cp(3,100000),aia(4)

The same for lines 2455 and 2456. In line 2408 I removed the definition of w(3,np,0:nd). After that the source compiled into an executable called 'ilgs_d', which is ought to be the double precision version. The quad precision version would be called 'ilgs_q'. Anyway, the executable failed with the following output:

          Fichier ./data/Nsat-fd.dat              

open: No such file or directory
apparent state: unit 12 named /DATA/DE403/de403.unx
last format: list io
lately reading direct unformatted external IO

Second approach: f2c

Using f2c gives the same results as using f77. I hoped to get more insight from reading the C-code, but I did not. I had big success for the other IMCCE fortran programs with f2c, it helped me a lot in understanding and getting functional executables. But not this time.


The file ./data/Nsat-fd.dat exists, maybe the error refers to the file /DATA/DE403/de403.unx, which is indeed missing on my system. And I do not know from where to get it. At I found the file for Sparc architecture, for i386 it seems not to be available any more, but it could be created from DE403.BSP.

But before doing further investigation I would like to ask a FORTRAN programmer about this software. My understanding is as follows, please correct me when I am wrong:

1) The software is a numerical integrator for a physical model of the Nepunian system. For as a period as long as the planet positions are provided, the Neptunian satellites position can be computed by numerical integration. Especially dates outside the interval 1800-2050 are no problem, when the DE403 planet positions are replaced by VSOP87 or similar.

2) Therefore it is possible to produce a large table of each satellites position and velocity for a long period, lets say 1500-2500. In fact this is the main goal. When I have this table, I will try frequency analysis techniques in order to create poisson series or similar, that can be included into stellarium.

My problem is that I can speak neigther french nor FORTRAN, so I really do not know what is going on in this software, and I would really appreciate your help. You can contact be by:

- email: johannes (dot) gajdosik (at) gmx (dot) at

- posting into the forum

- writing something in this wiki page

If you do not mind I would prefer to be contacted by email, please write the words "stellarium" and "fortran" into the subject line.


Johannes 14:38, 1 May 2007 (PDT)

Hi! I'm a french programmer, but unfortunately not a fortran programmer, and I'd like to help if I can . I've started to read fortran tutorial and I plan to test lf95 trial as fortran compiler since it's the one used in the linux provided in neptuno package but I don't have much free time these days. I'll let know if I succeed in any way, let me know if you have questions. Blakbear.

Hello Blackbear, thank you very much for offering help! I first did not see your writing into the wiki, because the "watch" function seems not to work for me. If you get any insight into the code, or if you can give any answers to 1) or 2) please send me an email, this will be the easiest way of communication. Johannes

Hi, Johannes. I could build "ilgs3_d" by g77 and execute without error. But I could not investigate that result is correct or is not correct. Shall I report my procedure?(in this page? or e-mail?) I write a part of output(little formatted), instead answer your questions.

       (  1)  Date: 0.2378496500000000E+07
       Nombre maximum d"enregistrements = 22829
       Intervalle cherché =                  1
       Temps initial d"intégration =  0.2378496500000000E+07
       Intervalle d"intégration =     0.0000000000000000E+00
       Pas d"intégration =            0.0000000000000000E+00
       Temps final d"intégration =    0.2378496500000000E+07
       (  1)  Date: 0.2378496500000000E+07
       v0(1,1,0) =-0.2019388268736855E-04
       v0(2,1,0) = 0.1722904160856275E-02
       v0(3,1,0) = 0.1629414715885055E-02
       v0(1,1,1) = 0.2533936570868142E-02
       v0(2,1,1) =-0.4058902541155617E-04
       v0(3,1,1) = 0.7430677191550270E-04

By the way, when create de403.unx, why did not you convert from unxpXXXX.403 or ascpXXXX.403?--Sigma 06:10, 9 May 2007 (PDT)

Same here, I've succeeded in compiling ilgs3_d with lf95 but I can't get a result yet, so Sigma seems more advanced. So far I can't validate my email so I can't use it for the time being, but feel free to ask if you need french to english translation. Blakbear.

Personal tools
in this wiki
other languages