From 6f152d24703070ac45fca18f9c07f4da0ef3fb83 Mon Sep 17 00:00:00 2001
From: Olivier Delaigue <olivier.delaigue@irstea.fr>
Date: Thu, 14 Apr 2016 16:02:43 +0200
Subject: [PATCH] Retrait de subroutine FORTRAN inutiles

---
 src/utils_D.f | 190 ++++--------------------------------------------
 src/utils_H.f | 197 ++++----------------------------------------------
 2 files changed, 30 insertions(+), 357 deletions(-)

diff --git a/src/utils_D.f b/src/utils_D.f
index 2028bc71..953a6495 100644
--- a/src/utils_D.f
+++ b/src/utils_D.f
@@ -1,153 +1,50 @@
-
-
 C**********************************************************************
-      SUBROUTINE HU1(XV,C,D)
-C Computation of ordinates of GR unit hydrograph HU1 using successives differences on the S curve SS1
+      SUBROUTINE UH1(OrdUH1,C,D)
+C Computation of ordinates of GR unit hydrograph UH1 using successive differences on the S curve SS1
 C Inputs:
 C    C: time constant
 C    D: exponent
 C Outputs:
-C    XV(3*NPX+1) to XV(3*NPX+NH): NH ordinates of discrete hydrograph
+C    OrdUH1: NH ordinates of discrete hydrograph
 C**********************************************************************
       Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
+      INTEGER NH
+      PARAMETER (NH=20)
+      DOUBLEPRECISION OrdUH1(NH)
       DOUBLEPRECISION C,D,SS1
       INTEGER I
 
       DO I=1,NH
-      XV(3*NPX+I)=SS1(I,C,D)-SS1(I-1,C,D)
+      OrdUH1(I)=SS1(I,C,D)-SS1(I-1,C,D)
       ENDDO
       ENDSUBROUTINE
 
 
 C**********************************************************************
-      SUBROUTINE HU2(XV,C,D)
-C Computation of ordinates of GR unit hydrograph HU2 using successives differences on the S curve SS2
+      SUBROUTINE UH2(OrdUH2,C,D)
+C Computation of ordinates of GR unit hydrograph HU2 using successive differences on the S curve SS2
 C Inputs:
 C    C: time constant
 C    D: exponent
 C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
+C    OrdUH2: 2*NH ordinates of discrete hydrograph
 C**********************************************************************
       Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
+      INTEGER NH
+      PARAMETER (NH=20)
+      DOUBLEPRECISION OrdUH2(2*NH)
       DOUBLEPRECISION C,D,SS2
       INTEGER I
 
       DO I =1,2*NH
-      XV(3*NPX+NH+I)=SS2(I,C,D)-SS2(I-1,C,D)
+      OrdUH2(I)=SS2(I,C,D)-SS2(I-1,C,D)
       ENDDO
       ENDSUBROUTINE
 
 
-
-C**********************************************************************
-      SUBROUTINE HU4(XV,ALPHA,BETA)
-C Computation of ordinates of MOHYSE unit hydrograph
-C Inputs:
-C    Alpha: parameter
-C    Beta:  parameter
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH),U(3*NH)
-      DOUBLEPRECISION ALPHA,BETA,SU
-      INTEGER K
-
-      SU=0.
-c      IF(ALPHA.LT.1.)THEN  
-c      WRITE(*,*)' Pb ALPHA'
-c      STOP                 
-c      ENDIF                
-      IF(ALPHA.EQ.1.)THEN
-      U(1)=1.
-      SU=1.
-      DO 1 K=2,3*NH
-      U(K)=0.
-    1 CONTINUE
-      ELSE
-      DO 11 K=1,3*NH
-      U(K)=FLOAT(K)*(ALPHA-1.)*EXP(-FLOAT(K)/BETA)
-      SU=SU+U(K)
-   11 CONTINUE
-      ENDIF
-
-c      IF(SU.LT.0.0000000001)THEN       
-c      WRITE(*,*)' Pb HU4',ALPHA, BETA  
-c      STOP                             
-c      ENDIF                            
-      DO 2 K=1,3*NH
-      XV(3*NPX+K)=U(K)/SU
-    2 CONTINUE
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      SUBROUTINE HU(XV,C)
-C Computation of ordinates of GRP unit hydrograph
-C Inputs:
-C    C: time constant
-C    Alpha: parameter
-C    Beta:  parameter
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C
-      DOUBLEPRECISION SH
-      INTEGER I
-      DO 10 I=1,2*NH
-      XV(3*NPX+NH+I)=SH(I,C)-SH(I-1,C)
-   10 CONTINUE
-      RETURN
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      FUNCTION SH(I,C)
-C Values of the S curve (cumulative HU curve) of GRP unit hydrograph HU
-C Inputs:
-C    C: time constant
-C    I: time-step
-C Outputs:
-C    SH: Values of the S curve for I
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION C
-      DOUBLEPRECISION SH,FI
-      INTEGER I
-      
-      FI=I
-      IF(FI.LE.0.)THEN
-      SH=0.
-      RETURN
-      ENDIF
-      IF(FI.GE.C)THEN
-      SH=1.
-      RETURN
-      ENDIF
-      SH=FI**2.5/(FI**2.5+(C-FI)**2.5)
-      RETURN
-      ENDFUNCTION
-
-
 C**********************************************************************
       FUNCTION SS1(I,C,D)
-C Values of the S curve (cumulative HU curve) of GR unit hydrograph HU1
+C Values of the S curve (cumulative HU curve) of GR unit hydrograph UH1
 C Inputs:
 C    C: time constant
 C    D: exponent
@@ -174,7 +71,7 @@ C**********************************************************************
 
 C**********************************************************************
       FUNCTION SS2(I,C,D)
-C Values of the S curve (cumulative HU curve) of GR unit hydrograph HU2
+C Values of the S curve (cumulative HU curve) of GR unit hydrograph UH2
 C Inputs:
 C    C: time constant
 C    D: exponent
@@ -203,61 +100,6 @@ C**********************************************************************
       ENDFUNCTION
 
 
-
-C**********************************************************************
-      SUBROUTINE DEL(XV,C)
-C Computation of HU ordinates corresponding to a time lag of a given number (possibly non-integer) of time-steps
-C (all ordinates are nul except 2 at max)
-C Inputs:
-C    C: time constant
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C,F
-      INTEGER I,K
-      I=INT(C)
-      F=C-INT(C)
-      DO 1 K=3*NPX+1,3*NPX+3*NH
-      XV(K)=0.
-    1 CONTINUE
-      XV(3*NPX+I)=1.-F
-      XV(3*NPX+I+1)=F
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      SUBROUTINE DEL2(XV,C)
-C Computation of HU ordinates corresponding to a time lag of a given number (possibly non-integer) of time-steps
-C (all ordinates are nul except 2 at max)
-C Inputs:
-C    C: time constant
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=20)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C,F
-      INTEGER K,I
-      
-      IF(C.GT.FLOAT(NH)) C=FLOAT(NH)
-      I=INT(C)
-      F=C-INT(C)
-      DO 1 K=3*NPX+1,3*NPX+NH
-      XV(K)=0.
-    1 CONTINUE
-      XV(3*NPX+I)=1.-F
-      XV(3*NPX+I+1)=F
-      ENDSUBROUTINE
-
-
-
 C**********************************************************************
       FUNCTION tanHyp(Val)
 C Computation of hyperbolic tangent
diff --git a/src/utils_H.f b/src/utils_H.f
index 56ba8e99..6de1123f 100644
--- a/src/utils_H.f
+++ b/src/utils_H.f
@@ -1,150 +1,49 @@
 
 
 C**********************************************************************
-      SUBROUTINE HU1_H(XV,C,D)
-C Computation of ordinates of GR unit hydrograph HU1 using successives differences on the S curve SS1
+      SUBROUTINE UH1_H(OrdUH1,C,D)
+C Computation of ordinates of GR unit hydrograph UH2 using successive differences on the S curve SS1
 C Inputs:
 C    C: time constant
 C    D: exponent
 C Outputs:
-C    XV(3*NPX+1) to XV(3*NPX+NH): NH ordinates of discrete hydrograph
+C    OrdUH1: NH ordinates of discrete hydrograph
 C**********************************************************************
       Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
+      INTEGER NH
+      PARAMETER (NH=480)
+      DOUBLEPRECISION OrdUH1(NH)
       DOUBLEPRECISION C,D,SS1_H
       INTEGER I
 
       DO I=1,NH
-      XV(3*NPX+I)=SS1_H(I,C,D)-SS1_H(I-1,C,D)
+      OrdUH1(I)=SS1_H(I,C,D)-SS1_H(I-1,C,D)
       ENDDO
       ENDSUBROUTINE
 
 
 C**********************************************************************
-      SUBROUTINE HU2_H(XV,C,D)
-C Computation of ordinates of GR unit hydrograph HU2 using successives differences on the S curve SS2
+      SUBROUTINE UH2_H(OrdUH2,C,D)
+C Computation of ordinates of GR unit hydrograph UH2 using successive differences on the S curve SS2
 C Inputs:
 C    C: time constant
 C    D: exponent
 C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
+C    OrdUH2: 2*NH ordinates of discrete hydrograph
 C**********************************************************************
       Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
+      INTEGER NH
+      PARAMETER (NH=480)
+      DOUBLEPRECISION OrdUH2(2*NH)
       DOUBLEPRECISION C,D,SS2_H
       INTEGER I
 
       DO I =1,2*NH
-      XV(3*NPX+NH+I)=SS2_H(I,C,D)-SS2_H(I-1,C,D)
+      OrdUH2(I)=SS2_H(I,C,D)-SS2_H(I-1,C,D)
       ENDDO
       ENDSUBROUTINE
 
 
-
-C**********************************************************************
-      SUBROUTINE HU4_H(XV,ALPHA,BETA)
-C Computation of ordinates of MOHYSE unit hydrograph
-C Inputs:
-C    Alpha: parameter
-C    Beta:  parameter
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH),U(3*NH)
-      DOUBLEPRECISION ALPHA,BETA,SU
-      INTEGER K
-
-      SU=0.
-c      IF(ALPHA.LT.1.)THEN  
-c      WRITE(*,*)' Pb ALPHA'
-c      STOP                 
-c      ENDIF                
-      IF(ALPHA.EQ.1.)THEN
-      U(1)=1.
-      SU=1.
-      DO 1 K=2,3*NH
-      U(K)=0.
-    1 CONTINUE
-      ELSE
-      DO 11 K=1,3*NH
-      U(K)=FLOAT(K)*(ALPHA-1.)*EXP(-FLOAT(K)/BETA)
-      SU=SU+U(K)
-   11 CONTINUE
-      ENDIF
-
-c      IF(SU.LT.0.0000000001)THEN       
-c      WRITE(*,*)' Pb HU4',ALPHA, BETA  
-c      STOP                             
-c      ENDIF                            
-      DO 2 K=1,3*NH
-      XV(3*NPX+K)=U(K)/SU
-    2 CONTINUE
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      SUBROUTINE HU_H(XV,C)
-C Computation of ordinates of GRP unit hydrograph
-C Inputs:
-C    C: time constant
-C    Alpha: parameter
-C    Beta:  parameter
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C
-      DOUBLEPRECISION SH_H
-      INTEGER I
-      DO 10 I=1,2*NH
-      XV(3*NPX+NH+I)=SH_H(I,C)-SH_H(I-1,C)
-   10 CONTINUE
-      RETURN
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      FUNCTION SH_H(I,C)
-C Values of the S curve (cumulative HU curve) of GRP unit hydrograph HU
-C Inputs:
-C    C: time constant
-C    I: time-step
-C Outputs:
-C    SH: Values of the S curve for I
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION C
-      DOUBLEPRECISION SH_H,FI
-      INTEGER I
-      
-      FI=I
-      IF(FI.LE.0.)THEN
-      SH_H=0.
-      RETURN
-      ENDIF
-      IF(FI.GE.C)THEN
-      SH_H=1.
-      RETURN
-      ENDIF
-      SH_H=FI**2.5/(FI**2.5+(C-FI)**2.5)
-      RETURN
-      ENDFUNCTION
-
-
 C**********************************************************************
       FUNCTION SS1_H(I,C,D)
 C Values of the S curve (cumulative HU curve) of GR unit hydrograph HU1
@@ -202,71 +101,3 @@ C**********************************************************************
       SS2_H=1.
       ENDFUNCTION
 
-
-
-C**********************************************************************
-      SUBROUTINE DEL_H(XV,C)
-C Computation of HU ordinates corresponding to a time lag of a given number (possibly non-integer) of time-steps
-C (all ordinates are nul except 2 at max)
-C Inputs:
-C    C: time constant
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): 2*NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C,F
-      INTEGER I,K
-      I=INT(C)
-      F=C-INT(C)
-      DO 1 K=3*NPX+1,3*NPX+3*NH
-      XV(K)=0.
-    1 CONTINUE
-      XV(3*NPX+I)=1.-F
-      XV(3*NPX+I+1)=F
-      ENDSUBROUTINE
-
-
-
-C**********************************************************************
-      SUBROUTINE DEL2_H(XV,C)
-C Computation of HU ordinates corresponding to a time lag of a given number (possibly non-integer) of time-steps
-C (all ordinates are nul except 2 at max)
-C Inputs:
-C    C: time constant
-C Outputs:
-C    XV(3*NPX+NH+1) to XV(3*NPX+3*NH): NH ordinates of discrete hydrograph
-C**********************************************************************
-      Implicit None
-      INTEGER NPX,NH
-      PARAMETER (NPX=14,NH=480)
-      DOUBLEPRECISION XV(3*NPX+5*NH)
-      DOUBLEPRECISION C,F
-      INTEGER K,I
-      
-      IF(C.GT.FLOAT(NH)) C=FLOAT(NH)
-      I=INT(C)
-      F=C-INT(C)
-      DO 1 K=3*NPX+1,3*NPX+NH
-      XV(K)=0.
-    1 CONTINUE
-      XV(3*NPX+I)=1.-F
-      XV(3*NPX+I+1)=F
-      ENDSUBROUTINE
-
-
-
-cC**********************************************************************
-c      FUNCTION tanHyp_H(Val)
-cC Computation of hyperbolic tangent
-cC**********************************************************************
-c      Implicit None
-c      DOUBLEPRECISION Val,ValExp,tanHyp_H
-c
-c      ValExp=EXP(Val)
-c      tanHyp_H=(ValExp - 1./ValExp)/(ValExp + 1./ValExp)
-c      RETURN
-c      ENDFUNCTION
-
-- 
GitLab