1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
!----------------------------------------------------------------------
!----------------------------------------------------------------------
! tim : A test problem for timing AUTO
!----------------------------------------------------------------------
!----------------------------------------------------------------------
SUBROUTINE FUNC(NDIM,U,ICP,PAR,IJAC,F,DFDU,DFDP)
! ---------- ----
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, ICP(*), IJAC
DOUBLE PRECISION, INTENT(IN) :: U(NDIM), PAR(*)
DOUBLE PRECISION, INTENT(OUT) :: F(NDIM)
DOUBLE PRECISION, INTENT(INOUT) :: DFDU(NDIM,NDIM), DFDP(NDIM,*)
INTEGER NDIM2,I,I1,I2
DOUBLE PRECISION E
DOUBLE PRECISION, EXTERNAL :: FEXP
NDIM2=NDIM/2
DO I=1,NDIM2
I1=2*(I-1)+1
I2=I1+1
E=FEXP(U(I1))
F(I1)=U(I2)
F(I2)=-PAR(1)*E
ENDDO
END SUBROUTINE FUNC
!----------------------------------------------------------------------
DOUBLE PRECISION FUNCTION FEXP(U)
! ------ --------- -------- ----
DOUBLE PRECISION, INTENT(IN) :: U
INTEGER NTERMS,K
DOUBLE PRECISION TRM
NTERMS=25
FEXP=1.d0
TRM=FEXP
DO K=1,NTERMS
TRM=TRM*U/K
FEXP=FEXP + TRM
ENDDO
END FUNCTION FEXP
!----------------------------------------------------------------------
SUBROUTINE STPNT(NDIM,U,PAR,T)
! ---------- -----
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM
DOUBLE PRECISION, INTENT(INOUT) :: U(NDIM),PAR(*)
DOUBLE PRECISION, INTENT(IN) :: T
INTEGER I
DO I=1,NDIM
U(I)=0.0
ENDDO
END SUBROUTINE STPNT
!----------------------------------------------------------------------
SUBROUTINE BCND(NDIM,PAR,ICP,NBC,U0,U1,FB,IJAC,DBC)
! ---------- ----
IMPLICIT NONE
INTEGER, INTENT(IN) :: NDIM, ICP(*), NBC, IJAC
DOUBLE PRECISION, INTENT(IN) :: PAR(*), U0(NDIM), U1(NDIM)
DOUBLE PRECISION, INTENT(OUT) :: FB(NBC)
DOUBLE PRECISION, INTENT(INOUT) :: DBC(NBC,*)
INTEGER NDIM2,I,I1,I2
NDIM2=NDIM/2
DO I=1,NDIM2
I1=2*(I-1)+1
I2=I1+1
FB(I1)=U0(I1)
FB(I2)=U1(I1)
ENDDO
END SUBROUTINE BCND
!----------------------------------------------------------------------
SUBROUTINE ICND
END SUBROUTINE ICND
SUBROUTINE FOPT
END SUBROUTINE FOPT
SUBROUTINE PVLS
END SUBROUTINE PVLS
!----------------------------------------------------------------------
|