___________________________________________________________________
 |                                                                 |
 |                                CCONTR                           |
 |_________________________________________________________________|

 MEANING: CCONTR subroutine
 CONTEXT: User-supplied subroutine; replaces a NONMEM dummy routine

 This feature is not fully documented.  The interested user may be able  L
 to  obtain  more  information  by studying the appropriate sections of  L
 NONMEM code and previous examples that may be available from  advanced  L
 users.                                                                  L

 USAGE:                                                                  L
 SUBROUTINE CCONTR (ICALL,CNT,P1,P2,IER1,IER2)                           L
 PARAMETER (LVR=30)                                                      L
 INTEGER ICALL,IER1,IER2                                                 L
 DIMENSION P1(*),P2(LVR,*)                                               L
 (If double precision is to be used):                                    L
 DOUBLE PRECISION CNT,P1,P2                                              L
 (If single precision is to be used):                                    L
 REAL CNT,P1,P2                                                          L

 The value of LVR must be  the  same  as  that  found  in  file  SIZES.  L
 (See sizes).                                                            L

 DISCUSSION:                                                             L
 CCONTR is a user-supplied routine for computing the contribution  made  L
 to  the  objective function from an L2 record.  It is used to override  L
 the NONMEM default objective function.                                  L

 CCONTR is required when there are no epsilons or  etas  and  in  other  L
 situations, e.g., with categorical population data.                     L

 NONMEM sometimes produces this error message:                           L
 USER CCONTR ROUTINE NOT USED, BUT THERE ARE NO EPSILONS,                L
 AND ETAS ARE TO BE ESTIMATED                                            L

 This can happen when POSTHOC etas are  requested,  but  the  data  are  L
 single-subject data.  The user may have included the POSTHOC option in  L
 error.                                                                  L

 The CONTR routine must contain the following code:                      L
 CALL NCONTR (CNT,IER1,IER2,L2R)                                         L
 DOUBLE PRECISION CNT                                                    L

 If the data is correlated across  L2  records  (e.g.,  auto-regressive  L
 data),  CCONTR computes the contribution to the objective function for  L
 data from an entire individual record.                                  L

 Input argument:                                                         L

  ICALL                                                                  L
      Similar to ICALL for PRED subroutine                               L
      Possible values: 0, 1, 2                                           L

 Output argument:                                                        L

  CNT                                                                    L
      The conditional contribution to the objective function  for  this  L
      L2 record.                                                         L

  P1                                                                     L
      P1(i) is the partial derivative of CNT with respect to eta(i).     L

  P2                                                                     L
      P2(i,j) is the second partial derivative of CNT with  respect  to  L
      eta(i) and eta(j) (for i <= j).                                    L
      At ICALL=1, CCONTR sets P2(1,1)=-1 if  second  derivative  values  L
      are  to  be  used.  Otherwise, if cross-gradient values are to be  L
      used.                                                              L

  IER1                                                                   L
      0 - Normal return.                                                 L
      non-zero - error return.                                           L

  IER2                                                                   L
      0 if error-recovery is to be implemented when IER1 is nonzero.     L
      1 if NONMEM is to stop when IER1 is nonzero.                       L

 Other inputs                                                            L
      Other inputs are available to CONTR in NONMEM read-only commons.   L
      In particular: ROCM0, ROCM4, ROCM5                                 L

 CCONTR is called by NONMEM's NCONTR routine with one  level  2  ("L2")  L
 record  after  another.  If no CCONTR routine is supplied by the user,  L
 NCONTR calls NONMEM utility CELS ("Conditional ELS"; ELS  contribution  L
 conditional  on  knowing  eta).   If  no L2 data item is present, each  L
 level 2 record is a single observation event record.  Otherwise, it is  L
 a  group  of observation records grouped together by a common value of  L
 L2.                                                                     L

REFERENCES: Guide IV Section III.B.4


  
Go to main index.
  
Created by nmhelp2html v. 1.0 written by Niclas Jonsson (Modified by AJB 5/2006,11/2007)