1
subroutine bj2(n,t,y,s,ml,mu,jac,nrowj)
3
c ======================================================================
4
c Gestion des macros externals pour la primitive IMPL
5
c ======================================================================
11
double precision y(n),s(n),jac(nrowj,n),t(*)
15
integer vol,tops,nordre
16
data nordre/3/,mlhs/1/
21
c nordre est le numero d'ordre de cet external dans la structure
23
c mlhs (mrhs) est le nombre de parametres de sortie (entree)
32
c transfert des arguments d'entree minimaux du simulateur
33
c la valeur de ces arguments vient du contexte fortran (liste d'appel)
34
c la structure vient du contexte
36
call ftob(t,1,istk(il+1))
37
if(err.gt.0) goto 9999
38
call ftob(y,n,istk(il+2))
39
if(err.gt.0) goto 9999
40
call ftob(s,n,istk(il+3))
41
if(err.gt.0) goto 9999
46
if(istk(ils).eq.15) goto 10
48
c recuperation de l'adresse du simulateur
52
c cas ou le simulateur est decrit par une liste
57
c recuperation de l'adresse du simulateur
60
c gestion des parametres supplementaires du simulateur
61
c proviennent du contexte (elements de la liste
62
c decrivant le simulateur
66
l=l+istk(ils+1)-istk(ils)
67
vol=istk(ils+nelt+1)-istk(ils+1)
68
if(top+1+nelt.ge.bot) then
70
if(err.gt.0) goto 9999
72
err=lstk(top+1)+vol-lstk(bot)
75
if(err.gt.0) goto 9999
77
call unsfdcopy(vol,stk(l),1,stk(lstk(top+1)),1)
80
lstk(top+1)=lstk(top)+istk(ils+i+1)-istk(ils+i)
85
c execution de la macro definissant le simulateur
103
include '../callinter.h'
110
c transfert des variables de sortie vers fortran
112
if(err.gt.0) goto 9999