Update of the localization templates
[scilab.git] / scilab / modules / differential_equations / macros / odeoptions.sci
index d47b2f8..8831435 100644 (file)
@@ -8,16 +8,8 @@
 // are also available at    
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-function [%ODEOPTIONS]=odeoptions(%ODEOPTIONS)
+function [%ODEOPTIONS] = odeoptions(%ODEOPTIONS)
 
-  options=[1,0,0,%inf,0,2,500,12,5,0,-1,-1];
-  default=[string(options(1:10)),sci2exp(options(11:12))]
-  default(find(default=='Inf'))="%inf"
-  if argn(2)>0 then
-    options=%ODEOPTIONS
-  end
-  lab_=[string(options(1:10)),sci2exp(options(11:12))]
-  lab_(find(lab_=='Inf'))="%inf"
 //%ODEOPTIONS=[itask,tcrit,h0,hmax,hmin,jactyp,mxstep,..
 //             maxordn,maxords,ixpr, ml,mu]
 // This function displays the command line 
@@ -25,58 +17,87 @@ function [%ODEOPTIONS]=odeoptions(%ODEOPTIONS)
 // for defining the variable %ODEOPTIONS
 // This variables sets a number of optional parameters 
 // for the lsod* fortran routines.
-load(SCI+'/macros/scicos/lib')
-chapeau=["Defining %ODEOPTIONS variable";
+
+//** This function can be (ab)used from the Scilab command line and 
+//** inside a Scicos "context". In order to handle the different situations,
+//** the required library are loaded if not already present in the 
+//** "semiglobal-local-environment".  
+
+if exists('scicos_scicoslib')==0 then
+    load("SCI/modules/scicos/macros/scicos_scicos/lib") ;
+end
+
+if exists('scicos_autolib')==0 then
+    load("SCI/modules/scicos/macros/scicos_auto/lib") ;
+end
+
+if exists('scicos_utilslib')==0 then
+    load("SCI/modules/scicos/macros/scicos_utils/lib") ;
+end
+
+  options = [1,0,0,%inf,0,2,500,12,5,0,-1,-1];
+  default = [string(options(1:10)),sci2exp(options(11:12))]
+  default(find(default=='Inf'))="%inf"
+
+  if argn(2)>0 then
+    options=%ODEOPTIONS
+  end
+
+  lab_=[string(options(1:10)),sci2exp(options(11:12))]
+  lab_(find(lab_=='Inf'))="%inf"
+
+
+chapeau=[gettext("Defining %ODEOPTIONS variable");
          "*****************************";
-        'Meaning of itask and tcrit:';
-        '1 : normal computation at specified times';
-        '2 : computation at mesh points (given in first row of output of ode)';
-        '3 : one step at one internal mesh point and return';
-        '4 : normal computation without overshooting tcrit';
-        '5 : one step, without passing tcrit, and return';
-        ' ';
-        'Meaning of jactype:';
-        '0 : functional iterations (no jacobian used (''adams'' or ''stiff'' only))';
-        '1 : user-supplied full jacobian';
-        '2 : internally generated full jacobian';
-        '3 : internally generated diagonal jacobian (''adams'' or ''stiff'' only))';
-        '4 : user-supplied banded jacobian (see ml,mu)';
-        '5 : internally generated banded jacobian (see ml,mu)';
-        ' ';
-        'Meaning of ml,mu:';
-        'If jactype = 4 or 5 ml and mu are the lower and upper half-banwidths';
-        'of the banded jacobian: the band is the i,j''s with i-ml <= j <= ny-1';
-        'If jactype = 4 the jacobian function must return';
-        'a matrix J which is  ml+mu+1 x ny (where ny=dim of y in ydot=f(t,y));'
-        'such that column 1 of J is made of mu zeros followed by';
-        'df1/dy1, df2/dy1, df3/dy1,... (1+ml possibly non-zero entries)';
-        'column 2 is made of mu-1 zeros followed by df1/dx2, df2/dx2,etc';
-        ' '
-        'Default values are given in square brackets'
-        'If the function is called without argument, default values"+...
-        " are used"
+        gettext("Meaning of itask and tcrit:");
+        gettext("1 : normal computation at specified times");
+        gettext("2 : computation at mesh points (given in first row of output of ode)");
+        gettext("3 : one step at one internal mesh point and return");
+        gettext("4 : normal computation without overshooting tcrit");
+        gettext("5 : one step, without passing tcrit, and return");
+        " ";
+        gettext("Meaning of jactype:");
+        gettext("0 : functional iterations (no jacobian used (''adams'' or ''stiff'' only))");
+        gettext("1 : user-supplied full jacobian");
+        gettext("2 : internally generated full jacobian");
+        gettext("3 : internally generated diagonal jacobian (''adams'' or ''stiff'' only)");
+        gettext("4 : user-supplied banded jacobian (see ml,mu)");
+        gettext("5 : internally generated banded jacobian (see ml,mu)");
+        " ";
+        gettext("Meaning of ml,mu:");
+        gettext("If jactype = 4 or 5 ml and mu are the lower and upper half-bandwidths");
+        gettext("of the banded jacobian: the band is the i,j''s with i-ml <= j <= ny-1");
+        gettext("If jactype = 4 the jacobian function must return");
+        gettext("a matrix J which is  ml+mu+1 x ny (where ny=dim of y in ydot=f(t,y))");
+        gettext("such that column 1 of J is made of mu zeros followed by");
+        gettext("df1/dy1, df2/dy1, df3/dy1,... (1+ml possibly non-zero entries)");
+        gettext("column 2 is made of mu-1 zeros followed by df1/dx2, df2/dx2,etc");
+        " ";
+        gettext("Default values are given in square brackets");
+        gettext("If the function is called without argument, default values are used");
        ]
 
-dims=list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,..
-         "vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",2);
+dims = list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,..
+           "vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",2);
+
 
+labels = ["itask (1,2,3,4,5) ","tcrit (assumes itask=4 or 5)",...
+          "h0 (first step tried)",...
+          "hmax (max step size)","hmin (min step size)",...
+          "jactype (0,1,2,3,4,5)","mxstep (max number of steps allowed)",...
+          "maxordn (maximum non-stiff order allowed, at most 12)",...
+          "maxords(maximum stiff order allowed, at most 5) ",...
+          "ixpr (print level 0 or 1)","[ml,mu]"] +'    ['+default+']';
 
-labels=["itask (1,2,3,4,5) ","tcrit (assumes itask=4 or 5)",...
-    "h0 (first step tried)",...
-    "hmax (max step size)","hmin (min step size)",...
-    "jactype (0,1,2,3,4,5)","mxstep (max number of steps allowed)",...
-    "maxordn (maximum non-stiff order allowed, at most 12)",...
-    "maxords(maximum stiff order allowed, at most 5) ",...
-    "ixpr (print level 0 or 1)","[ml,mu]"] +'    ['+default+']';
+[ok,itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,mlmu] = getvalue(chapeau,labels,dims,lab_);
+ml = mlmu(1);
+mu = mlmu(2);
+ODEOPTIONS = [itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,ml,mu];
 
-[ok,itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr,mlmu]=..
-    tk_getvalue(chapeau,labels,dims,lab_);
-ml=mlmu(1);mu=mlmu(2);
-ODEOPTIONS=[itask,tcrit,h0,hmax,hmin,jactyp,mxstep,maxordn,maxords,ixpr, ...
-        ml,mu];
 if ODEOPTIONS<>[] then
   %ODEOPTIONS=ODEOPTIONS
 else
   %ODEOPTIONS=options
 end
+
 endfunction