Skip to content

Instantly share code, notes, and snippets.

@nicoguaro
Last active December 21, 2025 18:52
Show Gist options
  • Select an option

  • Save nicoguaro/1fcdd69f26d0ca5d40a66deadb64650f to your computer and use it in GitHub Desktop.

Select an option

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

@FraLaz1971
Copy link

files

exactly

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