subroutine True(t, x_True)                  !  True solution x(t)
use work

implicit real(8) (a-h, o-z)
REAL(8) t, x_True(n), k
!    True = (/ 1.0d0/t**2,  1.0d0/SQRT(t) /)

k =param%k
c =param%k1

omega =dsqrt(k)
zeta =c/(2.*omega)
! Am. sub-critica:
oma =omega*dsqrt(1-zeta*zeta)

!*
!print*, 'omega =', omega, ' zeta =', zeta, ' oma =', oma


u0 =x00(1); u10 =x00(2);

	c2 =u0
	c1 =(u10 +zeta*omega*u0)/oma

!c2 =x00(1)
!c1 =(x00(2) +zeta*omega*x00(1))/oma

ufct =dexp(-zeta*omega*t)*( C1*dsin(oma*t) +C2*dcos(oma*t))
!
vfct =-zeta*omega*ufct +dexp(-zeta*omega*t)*( C1*oma*dcos(oma*t) -C2*oma*dsin(oma*t))

x_True(1) =ufct
x_True(2) =vfct

END subroutine True
