1C dpcon61w.f 29 February 2004
2
3C PySCeS - Python Simulator for Cellular Systems
4C            (http://pysces.sourceforge.net)
5C Copyright (C) B.G. Olivier, J.M. Rohwer, J.-H.S. Hofmeyr
6C Stellenbosch, 2004-2008.
7C Triple-J Group for Molecular Cell Physiology
8C Stellenbosch University, South Africa
9C Author: Brett G. Olivier
10C
11C PySCeS is Open Source Software distributed under
12C the GNU GENERAL PUBLIC LICENSE (see docs/GPL)
13
14CFILE: dpcon61w.f
15      SUBROUTINE PITCON1(DF,FPAR,FX,IERROR,IPAR,IWORK,LIW,NVAR,RWORK,
16     *LRW,XR,IMTH)
17      EXTERNAL  DF
18      EXTERNAL  FX
19      EXTERNAL  DENSLV
20      EXTERNAL  BANSLV
21      INTEGER   LIW
22cf2py integer optional,check(len(iwork)>=liw),depend(iwork) :: liw=len(iwork)
23      INTEGER   LRW
24cf2py integer optional,check(len(rwork)>=lrw),depend(rwork) :: lrw=len(rwork)
25      INTEGER   NVAR
26cf2py integer optional,check(len(xr)>=nvar),depend(xr) :: nvar=len(xr)
27      DOUBLE PRECISION FPAR(*)
28cf2py double precision dimension(*)),intent(in) :: fpar
29      INTEGER   IPAR(*)
30cf2py integer dimension(*),intent(in) :: ipar
31      INTEGER   IWORK(LIW)
32cf2py integer dimension(liw),intent(in,out,copy) :: iwork
33      INTEGER   IERROR
34cf2py integer intent(out) :: ierror
35      DOUBLE PRECISION RWORK(LRW)
36cf2py double precision dimension(lrw),intent(in,out,copy) :: rwork
37      DOUBLE PRECISION XR(NVAR)
38cf2py double precision dimension(nvar),intent(in,out,copy) :: xr
39cf2py DOUBLE PRECISION X(NVAR), FVEC(NVAR), FJAC(NVAR,NVAR)
40cf2py double precision,intent(out) :: fvec
41cf2py double precision,intent(out) :: fjac
42cf2py INTEGER IMTH = 1
43      INTEGER IMTH
44cf2py CALL FX(NVAR,FPAR,IPAR,X,FVEC,IERROR)
45cf2py CALL DF(NVAR,FPAR,IPAR,X,FJAC,IERROR)
46      IF (IMTH.eq.1) THEN
47         CALL PITCON(DF,FPAR,FX,IERROR,IPAR,IWORK,LIW,NVAR,RWORK,
48     *LRW,XR,DENSLV)
49      ELSE
50         CALL PITCON(DF,FPAR,FX,IERROR,IPAR,IWORK,LIW,NVAR,RWORK,
51     *LRW,XR,BANSLV)
52      ENDIF
53      END
54