diff options
| author | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
|---|---|---|
| committer | stainer_t <thomas.stainer@oecd-nea.org> | 2025-09-08 13:48:49 +0200 |
| commit | 7dfcc480ba1e19bd3232349fc733caef94034292 (patch) | |
| tree | 03ee104eb8846d5cc1a981d267687a729185d3f3 /Donjon/src/DETSPLI.f | |
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Donjon/src/DETSPLI.f')
| -rw-r--r-- | Donjon/src/DETSPLI.f | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Donjon/src/DETSPLI.f b/Donjon/src/DETSPLI.f new file mode 100644 index 0000000..93eaa70 --- /dev/null +++ b/Donjon/src/DETSPLI.f @@ -0,0 +1,40 @@ +*DECK DETSPLI + SUBROUTINE DETSPLI(X,Y,N,YP1,YPN,Y2) +* +*Parameters: +* X +* Y +* N +* YP1 +* YPN +* Y2 +* + PARAMETER (NMAX=100) + DIMENSION X(N),Y(N),Y2(N),U(NMAX) + IF (YP1.GT..99E30) THEN + Y2(1)=0. + U(1)=0. + ELSE + Y2(1)=-0.5 + U(1)=(3./(X(2)-X(1)))*((Y(2)-Y(1))/(X(2)-X(1))-YP1) + ENDIF + DO 11 I=2,N-1 + SIG=(X(I)-X(I-1))/(X(I+1)-X(I-1)) + P=SIG*Y2(I-1)+2. + Y2(I)=(SIG-1.)/P + U(I)=(6.*((Y(I+1)-Y(I))/(X(I+1)-X(I))-(Y(I)-Y(I-1)) + * /(X(I)-X(I-1)))/(X(I+1)-X(I-1))-SIG*U(I-1))/P +11 CONTINUE + IF (YPN.GT..99E30) THEN + QN=0. + UN=0. + ELSE + QN=0.5 + UN=(3./(X(N)-X(N-1)))*(YPN-(Y(N)-Y(N-1))/(X(N)-X(N-1))) + ENDIF + Y2(N)=(UN-QN*U(N-1))/(QN*Y2(N-1)+1.) + DO 12 K=N-1,1,-1 + Y2(K)=Y2(K)*Y2(K+1)+U(K) +12 CONTINUE + RETURN + END |
