Skip to content

Instantly share code, notes, and snippets.

@nicoguaro
Last active May 17, 2025 08:46
Show Gist options
  • Save nicoguaro/1fcdd69f26d0ca5d40a66deadb64650f to your computer and use it in GitHub Desktop.
Save nicoguaro/1fcdd69f26d0ca5d40a66deadb64650f to your computer and use it in GitHub Desktop.
Usage example of SLATEC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C Compute the values for the Bessel function of the first kind C
C and order 0 in the interval [XA,XB] with N points. C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C AUTHOR: NICOLAS GUARIN Z. C
C GRUPO DE MECANICA APLICADA- UNIVERSIDAD EAFIT C
C LAST MOD: 25 JULY 2012 C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C23456789012345678901234567890123456789012345678901234567890123456789012
PROGRAM BESFUN
IMPLICIT REAL*8(A-H,O-Z)
ALLOCATABLE X(:), Y(:)
OPEN(UNIT=7,FILE ="BESFUN.txt",STATUS="UNKNOWN")
WRITE(*,*) "Number of points in x-axis: "
READ(*,*) N
WRITE(*,*) "Initial X - Final X: "
READ(*,*) XA, XB
ALLOCATE(X(N),Y(N))
DO I=1,N
X(I) = XA + (I-1)*(XB-XA)/(N-1)
Y(I) = BESJ0(X(I))
WRITE(7,*) X(I),Y(I)
END DO
END PROGRAM BESFUN
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C Compute the eigenvalues for a symmetric matrix stored in a C
C given file using SLATEC libray. C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C AUTHOR: NICOLAS GUARIN Z. C
C GRUPO DE MECANICA APLICADA- UNIVERSIDAD EAFIT C
C LAST MOD: 25 JULY 2012 C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C23456789012345678901234567890123456789012345678901234567890123456789012
PROGRAM EIGSOL
IMPLICIT REAL(A-H,O-Z)
ALLOCATABLE AMAT(:,:), EVALS(:), EVECS(:,:), FV1(:), FV2(:),
1 EX_EVALS(:)
OPEN(UNIT=7,FILE ="EIGSOL.mat",STATUS="UNKNOWN")
OPEN(UNIT=8,FILE ="EIGSOL.evals",STATUS="UNKNOWN")
READ(7,*) N
ALLOCATE(AMAT(N,N),EVALS(N),EVECS(N,N),FV1(N),FV2(N),
1 EX_EVALS(N))
DO I=1,N
READ(7,*) (AMAT(I,J),J=1,N)
READ(8,*) EX_EVALS(I)
END DO
CALL RS(N,N,AMAT,EVALS,0,EVECS,FV1,FV2,IERR)
WRITE(*,*) "Analytical Eigenvalues: ", EX_EVALS
WRITE(*,*) "Computed Eigenvalues: ", EVALS
END PROGRAM EIGSOL
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C Compute the eigenvalues for a symmetric matrix stored in a C
C given file using SLATEC libray. C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C C
C AUTHOR: NICOLAS GUARIN Z. C
C GRUPO DE MECANICA APLICADA- UNIVERSIDAD EAFIT C
C LAST MOD: 25 JULY 2012 C
C C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C23456789012345678901234567890123456789012345678901234567890123456789012
PROGRAM LINSOL
IMPLICIT REAL*8(A-H,O-Z)
ALLOCATABLE AMAT(:,:), RHS(:), EX_SOL(:), WORK(:), IWORK(:)
OPEN(UNIT=7,FILE ="LINSOL.mat",STATUS="UNKNOWN")
OPEN(UNIT=8,FILE ="LINSOL.sol",STATUS="UNKNOWN")
READ(7,*) N
ALLOCATE(AMAT(N,N),RHS(N),EX_SOL(N),WORK(N),IWORK(N))
DO I=1,N
READ(7,*) (AMAT(I,J),J=1,N)
READ(8,*) EX_SOL(I)
END DO
DO I=1,N
READ(7,*) RHS(I)
END DO
IND = 7
CALL DGEFS(AMAT,N,N,RHS,1,IND,WORK,IWORK)
WRITE(*,*) "Analytical Solution: ", EX_SOL
WRITE(*,*) "Computed Solution: ", RHS
END PROGRAM LINSOL
#!/bin/bash
# BESFUN.FOR
echo -e "\n=== Bessel Function Computation ===\n"
gfortran -o BESFUN.o BESFUN.FOR -lslatec
./BESFUN.o
#LINSOL.FOR
echo -e "\n=== Linear System Solution ===\n"
gfortran -o LINSOL.o LINSOL.FOR -lslatec
./LINSOL.o
# EIGSOL.FOR
echo -e "\n=== Eigenproblem Solution ===\n"
gfortran -o EIGSOL.o EIGSOL.FOR -lslatec
./EIGSOL.o
@JBILLY5
Copy link

JBILLY5 commented May 17, 2025

Please supply contents of EIGSOL.mat and LINSOL.mat data files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment