$PROBLEM PSMValidation
$INPUT ID HOUR EVID DV CMT AMT MDV SDE TIME
$DATA NONMEMinputdata.csvSDE  IGNORE "
$SUBROUTINE ADVAN6 TOL 6 DP
$MODEL
COMP=(CENTRAL)
COMP=(PERIPH)
       COMP = (P1)
       COMP = (P2)
       COMP = (P3)

$THETA (0 9.01 ) FIX    ; W
$THETA (0 4.97 50) FIX ; V1
$THETA (0 )        FIX ; SGW2

$OMEGA 0.5     ; V1

$SIGMA 1 FIX

$PK
M1 = 0.005
M2 = 0.005
M3 = 0.002  
V1 = THETA(2) * EXP(ETA(1))
SGW2 = THETA(3)

IF(NEWIND.NE.2) THEN
  AHT1 = 0
  AHT2 = 0
  PHT1 = 0
  PHT2 = 0
  PHT3 = 0
ENDIF

IF(EVID.NE.3) THEN
  A1 = A(1)
  A2 = A(2)
  A3 = A(3)
  A4 = A(4)
  A5 = A(5)
ELSE
  A1 = A1
  A2 = A2
  A3 = A3
  A4 = A4
  A5 = A5
ENDIF

IF(EVID.EQ.0) OBS = DV

IF(EVID.GT.2.AND.SDE.EQ.2) THEN
  RVAR = A3/(V1**2)+THETA(1)**2
  K1   = A3*(1/V1)/RVAR
  K2   = A4*(1/V1)/RVAR
  AHT1 = A1 + K1*(OBS -(A1/V1))
  AHT2 = A2 + K2*(OBS -(A1/V1))
  PHT1 = A3 - K1*RVAR*K1
  PHT2 = A4 - K1*RVAR*K2
  PHT3 = A5 - K2*RVAR*K2
ENDIF

IF(EVID.GT.2.AND.SDE.EQ.3) THEN
  AHT1 = A1
  AHT2 = A2
  PHT1 = 0
  PHT2 = 0
  PHT3 = 0
ENDIF

IF(EVID.GT.2.AND.SDE.EQ.4) THEN
  AHT1 = 0
  AHT2 = 0
  PHT1 = A3
  PHT2 = A4
  PHT3 = A5
ENDIF

IF(A_0FLG.EQ.1) THEN
  A_0(1) = AHT1
  A_0(2) = AHT2
  A_0(3) = PHT1
  A_0(4) = PHT2
  A_0(5) = PHT3
ENDIF

$DES
DADT(1)= -(M1+M3)*A(1) + M2*A(2)
DADT(2)= M1*A(1)-M2*A(2) + 0
DADT(3) = (-(M1+M3))*(A(3))+(M2)*(A(4))+(-(M1+M3))*(A(3))+(M2)*(A(4))
DADT(4) = (-(M1+M3))*(A(4))+(M2)*(A(5))+(M1)*(A(3))+(-M2)*(A(4))
DADT(5) = (M1)*(A(4))+(-M2)*(A(5))+(M1)*(A(4))+(-M2)*(A(5))+SGW2*SGW2

$ERROR
IPRED=A(1)/V1
IRES=DV-IPRED
W=SQRT(A(3)/(V1**2)+THETA(1)**2)
IWRES=IRES/W
Y=IPRED+W*EPS(1)
$ESTIMATION MAXEVALS=9999 METHOD=1 INTERACTION NOABORT SIGDIGITS=3 PRINT=5
$COVARIANCE
$TABLE ID TIME EVID IPRED IRES IWRES W ETA(1)
       NOPRINT ONEHEADER FILE=TABLE.PAR
