Fortran question (beginner)

  • #1
Hello!
I'm trying to use a subprogram from the Starlink Project - Lucy in the library KAPPA - that is already installed and compiled. The idea is to be able to call it from my fortran routine.

Something like this:
Code:
PROGRAM ex
 
INTEGER i
REAL in(10),psf(10),out(10)
 
DO i =1,10
  in(i) = rand()
  psf(i) = rand()
ENDDO

lucy in psf out

WRITE(*,*)out

END
Is that possible?
If so, how should I compile the file (using gfortran)?

After downloading and unpacking the Starlink package you write in the terminal:

$ export STARLINK_DIR=$HOME/Astronomy/Software/star-2015A
$ source $STARLINK_DIR/etc/profile

After that you can run the subprograms by typing:
$ kappa
$ lucy

The compiled lucy file can be found here: $HOME/Astronomy/Software/star-2015A/bin/kappa/lucy

The source file lucy.f can be found here: https://github.com/Starlink/starlink/blob/master/applications/kappa/libkappa/lucy.f

Many thanks in advance!
 

Answers and Replies

  • #2
DrClaude
Mentor
7,428
3,702
You would have to use
Fortran:
call lucy (status)
But the subroutine lucy doesn't take in any other argument than that status, so I don't see how you can pass data to and from your own program.

After a quick look at the source code, it doesn't appear that the subroutine was intended to be used on its own. I think it would take quite some work to disentangle it from the main program.
 

Related Threads on Fortran question (beginner)

Replies
2
Views
3K
  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
4
Views
3K
Replies
7
Views
2K
Replies
3
Views
2K
Replies
2
Views
1K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
11
Views
3K
  • Last Post
Replies
17
Views
213
  • Last Post
Replies
10
Views
2K
Top