      subroutine funtab(id,fptr,job)
c     ====================================================================
c!but
c     funtab gere et lit la table des primitives
c!liste d'appel
c     job : indicateur  de l'operation a effectuer
c     0 impression de la table des primitives id et fptr ne sont pas
c             references
c     1 recherche du pointeur fptr associe au nom id, le sous programme
c             retourne la valeur du pointeur dans fptr. S'il n'y a pas
c             de fonction correspondant a id funtab retourne fptr=0
c             si id est un nom incorrect funtab retourne fptr=-1
c     2 recherche du nom id associe au pointeur fptr s'il n'y a pas
c             de fonction associee a ce pointeur funtab retourne
c             id(1)=0
c     3 ajout du nom donne par id avec le pointeur donne par fptr
c             en cas d'erreur (nom incorrecte ou capacite de la table
c             depasse funtab appele error et retourne avec err>0
c     4 suppression du nom donne par id, le sous programme retourne
c             la valeur du pointeur associe dans fptr. S'il n'y a pas
c             de fonction correspondant a id funtab retourne fptr=0
c             si id est un nom incorrect funtab retourne fptr=-1
c
c     id  :vecteur de taille nsiz contenant le code scilab du nom
c     fptr:entier
c!remarque
c     ce sous programme peut etre regenere automatiquement par le
c     programme newfun a partir de sa version courante et du fichier
c     fundef.
c!
c     ====================================================================
c
      include '../stack.h'
      integer   nfree
      parameter (nfree=50)
c
      integer id(*),fptr,job
      logical eqid
      integer point(27)
      integer mxf
c+
      parameter (mxf=nfree+277)
      integer funl,funl1,funn(nsiz,mxf),funp(mxf)
      parameter (funl1= 52)
      integer funm(nsiz,funl1)
      common /funcs/funl,funn,funp
      data funl/277/
c    1 abs                     
c    2 addf                    
c    3 amell                   
c    4 argn                    
c    5 arl2                    
c    6 atan                    
c    7 addmenu                 
c    8 balanc                  
c    9 bdiag                   
c    a bezout                  
c    1 bva                     
c    2 busack                  
c    3 champ                   
c    4 champ1                  
c    5 chol                    
c    6 clearfun                
c    7 coeff                   
c    8 comp                    
c    9 cond                    
c    a conj                    
c    1 contour                 
c    2 contr                   
c    3 convstr                 
c    4 corr                    
c    5 cos                     
c    6 clean                   
c    7 ceil                    
c    8 compc                   
c    9 concom                  
c    a compfc                  
c    1 chcm                    
c    2 code2str                
c    3 dassl                   
c    4 dasrt                   
c    5 debug                   
c    6 deff                    
c    7 degree                  
c    8 delbpt                  
c    9 delip                   
c    a det                     
c    1 diag                    
c    2 diary                   
c    3 disp                    
c    4 dispbpt                 
c    5 driver                  
c    6 dijkst                  
c    7 dfs                     
c    8 dmtree                  
c    9 delmenu                 
c    a emptystr                
c    1 ereduc                  
c    2 errcatch                
c    3 errclear                
c    4 error                   
c    5 exec                    
c    6 execstr                 
c    7 exists                  
c    8 exp                     
c    9 eye                     
c    a edge2st                 
c    1 fec                     
c    2 feval                   
c    3 fft                     
c    4 file                    
c    5 find                    
c    6 format                  
c    7 fort                    
c    8 freq                    
c    9 fsolve                  
c    a fstair                  
c    1 funptr                  
c    2 full                    
c    3 floor                   
c    4 ford                    
c    5 frang                   
c    6 flomax                  
c    7 floqua                  
c    8 findiso                 
c    9 geom3d                  
c    a getenv                  
c    1 getf                    
c    2 getpid                  
c    3 grayplot                
c    4 gschur                  
c    5 gspec                   
c    6 havewindow              
c    7 hess                    
c    8 host                    
c    9 idialog                 
c    a imag                    
c    1 impl                    
c    2 int                     
c    3 interp                  
c    4 intg                    
c    5 inv                     
c    6 iserror                 
c    7 inimet                  
c    8 johns                   
c    9 kron                    
c    a kilter                  
c    1 ldiv                    
c    2 ldivf                   
c    3 length                  
c    4 lib                     
c    5 lines                   
c    6 link                    
c    7 list                    
c    8 load                    
c    9 log                     
c    a ltitr                   
c    1 lu                      
c    2 lyap                    
c    3 lufact                  
c    4 lusolve                 
c    5 ludel                   
c    6 luget                   
c    7 loadg                   
c    8 lp2tad                  
c    9 lp2tau                  
c    a macprt                  
c    1 macr2lst                
c    2 matrix                  
c    3 max                     
c    4 maxi                    
c    5 min                     
c    6 mini                    
c    7 mode                    
c    8 mulf                    
c    9 newfun                  
c    a norm                    
c    1 notify                  
c    2 nnz                     
c    3 netwindow               
c    4 netwindows              
c    5 ns2p                    
c    6 ode                     
c    7 ones                    
c    8 optim                   
c    9 odedc                   
c    a param3d                 
c    1 part                    
c    2 pinv                    
c    3 plot2d                  
c    4 plot2d1                 
c    5 plot2d2                 
c    6 plot2d3                 
c    7 plot2d4                 
c    8 plot3d                  
c    9 plot3d1                 
c    a poly                    
c    1 ppol                    
c    2 pppdiv                  
c    3 predef                  
c    4 print                   
c    5 prod                    
c    6 prevn2p                 
c    7 p2ns                    
c    8 prevn2st                
c    9 pcchna                  
c    a qpqpqp                  
c    1 qr                      
c    2 rand                    
c    3 rank                    
c    4 rat                     
c    5 rcond                   
c    6 rdivf                   
c    7 read                    
c    8 readb                   
c    9 real                    
c    a remez                   
c    1 residu                  
c    2 resume                  
c    3 return                  
c    4 ricc                    
c    5 roots                   
c    6 round                   
c    7 rpem                    
c    8 rref                    
c    9 rtitr                   
c    a relax                   
c    1 stacksize               
c    2 save                    
c    3 schur                   
c    4 sconvert                
c    5 setbpt                  
c    6 sfact                   
c    7 sign                    
c    8 simp                    
c    9 sin                     
c    a size                    
c    1 sort                    
c    2 spec                    
c    3 splin                   
c    4 sqrt                    
c    5 string                  
c    6 subf                    
c    7 sum                     
c    8 sva                     
c    9 svd                     
c    a sylv                    
c    1 syredi                  
c    2 sparse                  
c    3 spget                   
c    4 semidef                 
c    5 saveg                   
c    6 showg                   
c    7 showns                  
c    8 showp                   
c    9 sconcom                 
c    a scicosim                
c    1 sctree                  
c    2 setmenu                 
c    3 str2code                
c    4 tlist                   
c    5 timer                   
c    6 tr_zer                  
c    7 tril                    
c    8 triu                    
c    9 type                    
c    a transc                  
c    1 tconex                  
c    2 ta2lpd                  
c    3 ta2lpu                  
c    4 unix                    
c    5 user                    
c    6 umtree                  
c    7 umtree1                 
c    8 unsetmenu               
c    9 varn                    
c    a where                   
c    1 whereis                 
c    2 writb                   
c    3 write                   
c    4 x_choose                
c    5 x_dialog                
c    6 x_mdialog               
c    7 x_message               
c    8 xarc                    
c    9 xarcs                   
c    a xarrows                 
c    1 xaxis                   
c    2 xchange                 
c    3 xchoicesi               
c    4 xclea                   
c    5 xclear                  
c    6 xclick                  
c    7 xdel                    
c    8 xend                    
c    9 xfarc                   
c    a xfarcs                  
c    1 xfpoly                  
c    2 xfpolys                 
c    3 xfrect                  
c    4 xget                    
c    5 xgetech                 
c    6 xgetfile                
c    7 xgetmouse               
c    8 xgrid                   
c    9 xinfo                   
c    a xinit                   
c    1 xlfont                  
c    2 xload                   
c    3 xnumb                   
c    4 xpause                  
c    5 xpoly                   
c    6 xpolys                  
c    7 xrect                   
c    8 xrects                  
c    9 xsave                   
c    a xsegs                   
c    1 xselect                 
c    2 xset                    
c    3 xsetech                 
c    4 xstring                 
c    5 xstringl                
c    6 xtape                   
c    7 xtitle                  
      data ((funn(i,j),i=1,nsiz),j=  1, 10)/
     1 672926474,673720360,673720360,673720360,673720360,673720360,
     2 252513546,673720360,673720360,673720360,673720360,673720360,
     3 353244682,673720341,673720360,673720360,673720360,673720360,
     4 386931466,673720360,673720360,673720360,673720360,673720360,
     5  34937610,673720360,673720360,673720360,673720360,673720360,
     6 386538762,673720360,673720360,673720360,673720360,673720360,
     7 369954058,673060622,673720360,673720360,673720360,673720360,
     8 169150987,673713175,673720360,673720360,673720360,673720360,
     9 168955147,673720336,673720360,673720360,673720360,673720360,
     a 404950539,673717534,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 11, 20)/
     1 671751947,673720360,673720360,673720360,673720360,673720360,
     2 169614859,673715212,673720360,673720360,673720360,673720360,
     3 369758476,673720345,673720360,673720360,673720360,673720360,
     4 369758476,673710361,673720360,673720360,673720360,673720360,
     5 353898764,673720360,673720360,673720360,673720360,673720360,
     6 168695052,387845915,673720360,673720360,673720360,673720360,
     7 252581900,673720335,673720360,673720360,673720360,673720360,
     8 420878348,673720360,673720360,673720360,673720360,673720360,
     9 219617292,673720360,673720360,673720360,673720360,673720360,
     a 320280588,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 21, 30)/
     1 488052748,672865816,673720360,673720360,673720360,673720360,
     2 488052748,673720347,673720360,673720360,673720360,673720360,
     3 521607180,672865564,673720360,673720360,673720360,673720360,
     4 454760460,673720360,673720360,673720360,673720360,673720360,
     5 672929804,673720360,673720360,673720360,673720360,673720360,
     6 168695052,673720343,673720360,673720360,673720360,673720360,
     7 353504780,673720360,673720360,673720360,673720360,673720360,
     8 420878348,673720332,673720360,673720360,673720360,673720360,
     9 202840076,673715736,673720360,673720360,673720360,673720360,
     a 420878348,673713167,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 31, 40)/
     1 369889548,673720360,673720360,673720360,673720360,673720360,
     2 235739148,454892546,673720360,673720360,673720360,673720360,
     3 471599629,673720341,673720360,673720360,673720360,673720360,
     4 454822413,673720349,673720360,673720360,673720360,673720360,
     5 504040973,673720336,673720360,673720360,673720360,673720360,
     6 252644877,673720360,673720360,673720360,673720360,673720360,
     7 454037005,673713678,673720360,673720360,673720360,673720360,
     8 185929229,673717529,673720360,673720360,673720360,673720360,
     9 303369741,673720345,673720360,673720360,673720360,673720360,
     a 672992781,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 41, 50)/
     1 269095437,673720360,673720360,673720360,673720360,673720360,
     2 453644813,673720354,673720360,673720360,673720360,673720360,
     3 421270029,673720360,673720360,673720360,673720360,673720360,
     4 421270029,672995595,673720360,673720360,673720360,673720360,
     5 521280269,673717006,673720360,673720360,673720360,673720360,
     6 336794125,673717532,673720360,673720360,673720360,673720360,
     7 672927501,673720360,673720360,673720360,673720360,673720360,
     8 454891021,673713678,673720360,673720360,673720360,673720360,
     9 370478605,673060622,673720360,673720360,673720360,673720360,
     a 488183310,454892578,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 51, 60)/
     1 219028238,673713182,673720360,673720360,673720360,673720360,
     2 203102990,286006538,673720360,673720360,673720360,673720360,
     3 203102990,453643797,673720360,673720360,673720360,673720360,
     4 404429582,673720347,673720360,673720360,673720360,673720360,
     5 202252558,673720360,673720360,673720360,673720360,673720360,
     6 202252558,672865564,673720360,673720360,673720360,673720360,
     7 470950158,673717277,673720360,673720360,673720360,673720360,
     8 672735502,673720360,673720360,673720360,673720360,673720360,
     9 672014862,673720360,673720360,673720360,673720360,673720360,
     a 235932942,672996354,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 61, 70)/
     1 671878671,673720360,673720360,673720360,673720360,673720360,
     2 169807375,673720341,673720360,673720360,673720360,673720360,
     3 672993039,673720360,673720360,673720360,673720360,673720360,
     4 236261903,673720360,673720360,673720360,673720360,673720360,
     5 219615759,673720360,673720360,673720360,673720360,673720360,
     6 370874383,673717514,673720360,673720360,673720360,673720360,
     7 488314895,673720360,673720360,673720360,673720360,673720360,
     8 437132047,673720360,673720360,673720360,673720360,673720360,
     9 353901583,673713695,673720360,673720360,673720360,673720360,
     a 169679887,673717010,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 71, 80)/
     1 420945423,673717021,673720360,673720360,673720360,673720360,
     2 353705487,673720360,673720360,673720360,673720360,673720360,
     3 404231439,673720347,673720360,673720360,673720360,673720360,
     4 219879439,673720360,673720360,673720360,673720360,673720360,
     5 386538255,673720336,673720360,673720360,673720360,673720360,
     6 370677007,673718538,673720360,673720360,673720360,673720360,
     7 437785871,673712670,673720360,673720360,673720360,673720360,
     8 219615759,672668690,673720360,673720360,673720360,673720360,
     9 370675216,673713411,673720360,673720360,673720360,673720360,
     a 236785168,673718039,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 81, 90)/
     1 253562384,673720360,673720360,673720360,673720360,673720360,
     2 421334544,673713426,673720360,673720360,673720360,673720360,
     3 571087632,488117529,673720360,673720360,673720360,673720360,
     4 286006288,673717022,673720360,673720360,673720360,673720360,
     5 236526608,673720332,673720360,673720360,673720360,673720360,
     6 236915217,219615776,673718296,673720360,673720360,673720360,
     7 471600657,673720360,673720360,673720360,673720360,673720360,
     8 488380433,673720360,673720360,673720360,673720360,673720360,
     9 168955154,672143381,673720360,673720360,673720360,673720360,
     a 269096466,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j= 91,100)/
     1 353965586,673720360,673720360,673720360,673720360,673720360,
     2 672995090,673720360,673720360,673720360,673720360,673720360,
     3 236787474,673716507,673720360,673720360,673720360,673720360,
     4 270341906,673720360,673720360,673720360,673720360,673720360,
     5 673126162,673720360,673720360,673720360,673720360,673720360,
     6 453909522,672864283,673720360,673720360,673720360,673720360,
     7 370284306,673717518,673720360,673720360,673720360,673720360,
     8 386996243,673720348,673720360,673720360,673720360,673720360,
     9 387455764,673720360,673720360,673720360,673720360,673720360,
     a 487920148,673717006,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=101,110)/
     1 521276693,673720360,673720360,673720360,673720360,673720360,
     2 521276693,673720335,673720360,673720360,673720360,673720360,
     3 269946389,673714461,673720360,673720360,673720360,673720360,
     4 671814165,673720360,673720360,673720360,673720360,673720360,
     5 236392981,673720348,673720360,673720360,673720360,673720360,
     6 337056277,673720360,673720360,673720360,673720360,673720360,
     7 488378901,673720360,673720360,673720360,673720360,673720360,
     8 218765333,673720360,673720360,673720360,673720360,673720360,
     9 672143381,673720360,673720360,673720360,673720360,673720360,
     a 487726357,673720347,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=111,120)/
     1 673717781,673720360,673720360,673720360,673720360,673720360,
     2 420094485,673720360,673720360,673720360,673720360,673720360,
     3 168762901,673717516,673720360,673720360,673720360,673720360,
     4 404495893,672014101,673720360,673720360,673720360,673720360,
     5 235740693,673720341,673720360,673720360,673720360,673720360,
     6 235937301,673720349,673720360,673720360,673720360,673720360,
     7 218765333,673720336,673720360,673720360,673720360,673720360,
     8 486676757,673713418,673720360,673720360,673720360,673720360,
     9 486676757,673717770,673720360,673720360,673720360,673720360,
     a 420219414,673717531,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=121,130)/
     1 453773846,488379650,673720360,673720360,673720360,673720360,
     2 454887958,673718546,673720360,673720360,673720360,673720360,
     3 673253910,673720360,673720360,673720360,673720360,673720360,
     4 304155158,673720360,673720360,673720360,673720360,673720360,
     5 672600598,673720360,673720360,673720360,673720360,673720360,
     6 303501846,673720360,673720360,673720360,673720360,673720360,
     7 235739158,673720360,673720360,673720360,673720360,673720360,
     8 253042198,673720360,673720360,673720360,673720360,673720360,
     9 253758999,673715998,673720360,673720360,673720360,673720360,
     a 370874391,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=131,140)/
     1 303896599,673718799,673720360,673720360,673720360,673720360,
     2 673388311,673720360,673720360,673720360,673720360,673720360,
     3 538775063,403511058,673720352,673720360,673720360,673720360,
     4 538775063,403511058,673717280,673720360,673720360,673720360,
     5 419568663,673720360,673720360,673720360,673720360,673720360,
     6 672009496,673720360,673720360,673720360,673720360,673720360,
     7 470685464,673720360,673720360,673720360,673720360,673720360,
     8 303896856,673720342,673720360,673720360,673720360,673720360,
     9 219024664,673720332,673720360,673720360,673720360,673720360,
     a 169544217,671941398,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=141,150)/
     1 488311321,673720360,673720360,673720360,673720360,673720360,
     2 521605657,673720360,673720360,673720360,673720360,673720360,
     3 488117529,673713410,673720360,673720360,673720360,673720360,
     4 488117529,671157506,673720360,673720360,673720360,673720360,
     5 488117529,671223042,673720360,673720360,673720360,673720360,
     6 488117529,671288578,673720360,673720360,673720360,673720360,
     7 488117529,671354114,673720360,673720360,673720360,673720360,
     8 488117529,673713411,673720360,673720360,673720360,673720360,
     9 488117529,671157507,673720360,673720360,673720360,673720360,
     a 571807769,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=151,160)/
     1 353900825,673720360,673720360,673720360,673720360,673720360,
     2 219748633,673718034,673720360,673720360,673720360,673720360,
     3 219028249,673713934,673720360,673720360,673720360,673720360,
     4 387062553,673720349,673720360,673720360,673720360,673720360,
     5 219683609,673720360,673720360,673720360,673720360,673720360,
     6 521018137,672727575,673720360,673720360,673720360,673720360,
     7 471269913,673720360,673720360,673720360,673720360,673720360,
     8 521018137,488374807,673720360,673720360,673720360,673720360,
     9 286002201,673712663,673720360,673720360,673720360,673720360,
     a 421140762,673716506,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=161,170)/
     1 673717018,673720360,673720360,673720360,673720360,673720360,
     2 219613723,673720360,673720360,673720360,673720360,673720360,
     3 337054235,673720360,673720360,673720360,673720360,673720360,
     4 672991771,673720360,673720360,673720360,673720360,673720360,
     5 387451931,673720333,673720360,673720360,673720360,673720360,
     6 521276699,673720335,673720360,673720360,673720360,673720360,
     7 218762779,673720360,673720360,673720360,673720360,673720360,
     8 218762779,673720331,673720360,673720360,673720360,673720360,
     9 352980507,673720360,673720360,673720360,673720360,673720360,
     a 236326427,673720355,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=171,180)/
     1 303828507,673717773,673720360,673720360,673720360,673720360,
     2 505155099,673713686,673720360,673720360,673720360,673720360,
     3 505220635,673715995,673720360,673720360,673720360,673720360,
     4 202117659,673720360,673720360,673720360,673720360,673720360,
     5 488118299,673720348,673720360,673720360,673720360,673720360,
     6 387848219,673720333,673720360,673720360,673720360,673720360,
     7 370022683,673720360,673720360,673720360,673720360,673720360,
     8 252582683,673720360,673720360,673720360,673720360,673720360,
     9 487726363,673720347,673720360,673720360,673720360,673720360,
     a 169152027,673720353,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=181,190)/
     1 201989404,588389396,673720334,673720360,673720360,673720360,
     2 236915228,673720360,673720360,673720360,673720360,673720360,
     3 504433692,673720347,673720360,673720360,673720360,673720360,
     4 387451932,488312351,673720360,673720360,673720360,673720360,
     5 186453532,673717529,673720360,673720360,673720360,673720360,
     6 201985820,673720349,673720360,673720360,673720360,673720360,
     7 386929180,673720360,673720360,673720360,673720360,673720360,
     8 420876828,673720360,673720360,673720360,673720360,673720360,
     9 672600604,673720360,673720360,673720360,673720360,673720360,
     a 237179420,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=191,200)/
     1 488314908,673720360,673720360,673720360,673720360,673720360,
     2 202250524,673720360,673720360,673720360,673720360,673720360,
     3 303372572,673720343,673720360,673720360,673720360,673720360,
     4 488315420,673720360,673720360,673720360,673720360,673720360,
     5 303766812,673714199,673720360,673720360,673720360,673720360,
     6 252386844,673720360,673720360,673720360,673720360,673720360,
     7 672538140,673720360,673720360,673720360,673720360,673720360,
     8 671751964,673720360,673720360,673720360,673720360,673720360,
     9 671948572,673720360,673720360,673720360,673720360,673720360,
     a 521478684,673720360,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=201,210)/
     1 236659228,673714701,673720360,673720360,673720360,673720360,
     2 453646620,673713692,673720360,673720360,673720360,673720360,
     3 235936028,673720349,673720360,673720360,673720360,673720360,
     4 303435292,672075277,673720360,673720360,673720360,673720360,
     5 236915228,673720336,673720360,673720360,673720360,673720360,
     6 538448156,673720336,673720360,673720360,673720360,673720360,
     7 538448156,673717271,673720360,673720360,673720360,673720360,
     8 538448156,673720345,673720360,673720360,673720360,673720360,
     9 387451932,672536588,673720360,673720360,673720360,673720360,
     a 202509340,370285592,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=211,220)/
     1 454888476,673713678,673720360,673720360,673720360,673720360,
     2 371002908,673060622,673720360,673720360,673720360,673720360,
     3  35331356,235739148,673720360,673720360,673720360,673720360,
     4 470947101,673720349,673720360,673720360,673720360,673720360,
     5 236327453,673720347,673720360,673720360,673720360,673720360,
     6 589568797,673717006,673720360,673720360,673720360,673720360,
     7 353508125,673720360,673720360,673720360,673720360,673720360,
     8 504503069,673720360,673720360,673720360,673720360,673720360,
     9 236528157,673720360,673720360,673720360,673720360,673720360,
     a 386538269,673713180,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=221,230)/
     1 387451933,673718542,673720360,673720360,673720360,673720360,
     2 352455197,673713433,673720360,673720360,673720360,673720360,
     3 352455197,673717785,673720360,673720360,673720360,673720360,
     4 554833694,673720360,673720360,673720360,673720360,673720360,
     5 453909534,673720360,673720360,673720360,673720360,673720360,
     6 454891038,673713678,673720360,673720360,673720360,673720360,
     7 454891038,671157774,673720360,673720360,673720360,673720360,
     8 236721950,386799133,673720350,673720360,673720360,673720360,
     9 387648031,673720360,673720360,673720360,673720360,673720360,
     a 453906720,673720334,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=231,240)/
     1 453906720,672928270,673720360,673720360,673720360,673720360,
     2 487725856,673720331,673720360,673720360,673720360,673720360,
     3 487725856,673720334,673720360,673720360,673720360,673720360,
     4 286008353,236722200,673720360,673720360,673720360,673720360,
     5 302851105,270013706,673720360,673720360,673720360,673720360,
     6 219554849,404032018,673720336,673720360,673720360,673720360,
     7 236332065,269098012,673720334,673720360,673720360,673720360,
     8 203098657,673720360,673720360,673720360,673720360,673720360,
     9 203098657,673720348,673720360,673720360,673720360,673720360,
     a 454756897,672931864,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=241,250)/
     1 304155169,673720348,673720360,673720360,673720360,673720360,
     2 168889377,672010263,673720360,673720360,673720360,673720360,
     3 403770401,470682642,673720338,673720360,673720360,673720360,
     4 236260385,673720330,673720360,673720360,673720360,673720360,
     5 236260385,673717002,673720360,673720360,673720360,673720360,
     6 303369249,673715212,673720360,673720360,673720360,673720360,
     7 353242401,673720360,673720360,673720360,673720360,673720360,
     8 219614753,673720360,673720360,673720360,673720360,673720360,
     9 453644065,673720332,673720360,673720360,673720360,673720360,
     a 453644065,673717260,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=251,260)/
     1 404295457,673718805,673720360,673720360,673720360,673720360,
     2 404295457,672932373,673720360,673720360,673720360,673720360,
     3 236654369,673717516,673720360,673720360,673720360,673720360,
     4 487460897,673720360,673720360,673720360,673720360,673720360,
     5 487460897,672205838,673720360,673720360,673720360,673720360,
     6 487460897,236261903,673720360,673720360,673720360,673720360,
     7 487460897,471734294,673720334,673720360,673720360,673720360,
     8 303763489,673720333,673720360,673720360,673720360,673720360,
     9 253170209,673720344,673720360,673720360,673720360,673720360,
     a 303501857,673720349,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=261,270)/
     1 403641633,673717527,673720360,673720360,673720360,673720360,
     2 169350433,673720333,673720360,673720360,673720360,673720360,
     3 371070753,673720331,673720360,673720360,673720360,673720360,
     4 503978273,673713692,673720360,673720360,673720360,673720360,
     5 353900833,673720354,673720360,673720360,673720360,673720360,
     6 353900833,673717282,673720360,673720360,673720360,673720360,
     7 202251041,673720349,673720360,673720360,673720360,673720360,
     8 202251041,673717277,673720360,673720360,673720360,673720360,
     9 520756257,673720334,673720360,673720360,673720360,673720360,
     a 269360161,673720348,673720360,673720360,673720360,673720360/
      data ((funn(i,j),i=1,nsiz),j=271,277)/
     1 353246241,672992270,673720360,673720360,673720360,673720360,
     2 487463969,673720360,673720360,673720360,673720360,673720360,
     3 487463969,672205838,673720360,673720360,673720360,673720360,
     4 454892577,672143122,673720360,673720360,673720360,673720360,
     5 454892577,353376018,673720360,673720360,673720360,673720360,
     6 420093217,673720334,673720360,673720360,673720360,673720360,
     7 487726369,673713685,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j=  1, 10)/
     1 386931466,673720360,673720360,673720360,673720360,673720360,
     2 420878348,673720360,673720360,673720360,673720360,673720360,
     3 235739148,454892546,673720360,673720360,673720360,673720360,
     4 252644877,673720360,673720360,673720360,673720360,673720360,
     5 453644813,673720354,673720360,673720360,673720360,673720360,
     6 421270029,673720360,673720360,673720360,673720360,673720360,
     7 488183310,454892578,673720360,673720360,673720360,673720360,
     8 203102990,286006538,673720360,673720360,673720360,673720360,
     9 203102990,453643797,673720360,673720360,673720360,673720360,
     a 404429582,673720347,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j= 11, 20)/
     1 202252558,673720360,673720360,673720360,673720360,673720360,
     2 202252558,672865564,673720360,673720360,673720360,673720360,
     3 470950158,673717277,673720360,673720360,673720360,673720360,
     4 672014862,673720360,673720360,673720360,673720360,673720360,
     5 236261903,673720360,673720360,673720360,673720360,673720360,
     6 370874383,673717514,673720360,673720360,673720360,673720360,
     7 488314895,673720360,673720360,673720360,673720360,673720360,
     8 236785168,673718039,673720360,673720360,673720360,673720360,
     9 253562384,673720360,673720360,673720360,673720360,673720360,
     a 421334544,673713426,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j= 21, 30)/
     1 488380433,673720360,673720360,673720360,673720360,673720360,
     2 168955154,672143381,673720360,673720360,673720360,673720360,
     3 453909522,672864283,673720360,673720360,673720360,673720360,
     4 269946389,673714461,673720360,673720360,673720360,673720360,
     5 671814165,673720360,673720360,673720360,673720360,673720360,
     6 236392981,673720348,673720360,673720360,673720360,673720360,
     7 337056277,673720360,673720360,673720360,673720360,673720360,
     8 488378901,673720360,673720360,673720360,673720360,673720360,
     9 218765333,673720360,673720360,673720360,673720360,673720360,
     a 235739158,673720360,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j= 31, 40)/
     1 488311321,673720360,673720360,673720360,673720360,673720360,
     2 571807769,673720360,673720360,673720360,673720360,673720360,
     3 219028249,673713934,673720360,673720360,673720360,673720360,
     4 387062553,673720349,673720360,673720360,673720360,673720360,
     5 218762779,673720360,673720360,673720360,673720360,673720360,
     6 218762779,673720331,673720360,673720360,673720360,673720360,
     7 505155099,673713686,673720360,673720360,673720360,673720360,
     8 505220635,673715995,673720360,673720360,673720360,673720360,
     9 236915228,673720360,673720360,673720360,673720360,673720360,
     a 387451932,488312351,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j= 41, 50)/
     1 303766812,673714199,673720360,673720360,673720360,673720360,
     2  35331356,235739148,673720360,673720360,673720360,673720360,
     3 470947101,673720349,673720360,673720360,673720360,673720360,
     4 554833694,673720360,673720360,673720360,673720360,673720360,
     5 453909534,673720360,673720360,673720360,673720360,673720360,
     6 387648031,673720360,673720360,673720360,673720360,673720360,
     7 487725856,673720331,673720360,673720360,673720360,673720360,
     8 487725856,673720334,673720360,673720360,673720360,673720360,
     9 286008353,236722200,673720360,673720360,673720360,673720360,
     a 302851105,270013706,673720360,673720360,673720360,673720360/
      data ((funm(i,j),i=1,nsiz),j= 51, 52)/
     1 219554849,404032018,673720336,673720360,673720360,673720360,
     2 236332065,269098012,673720334,673720360,673720360,673720360/
      data (funp(j),j=  1, 10)/
     1      601    ,
     2     2201    ,
     3     1806    ,
     4     1305    ,
     5     2001    ,
     6      625    ,
     7     2508    ,
     8      206    ,
     9      204    ,
     a     1613    /
      data (funp(j),j= 11, 20)/
     1     1205    ,
     2     1532    ,
     3      701    ,
     4      752    ,
     5      106    ,
     6     1320    ,
     7     1604    ,
     8     1306    ,
     9      303    ,
     a      604    /
      data (funp(j),j= 21, 30)/
     1      702    ,
     2     1001    ,
     3     2104    ,
     4     1804    ,
     5      624    ,
     6      631    ,
     7      633    ,
     8     1514    ,
     9     1515    ,
     a     1516    /
      data (funp(j),j= 31, 40)/
     1     1523    ,
     2     2107    ,
     3     2602    ,
     4     2603    ,
     5     1301    ,
     6      511    ,
     7     1603    ,
     8     1324    ,
     9     1807    ,
     a      102    /
      data (funp(j),j= 41, 50)/
     1      610    ,
     2      506    ,
     3      518    ,
     4     1325    ,
     5      712    ,
     6     1521    ,
     7     1525    ,
     8     1528    ,
     9     2509    ,
     a     2105    /
      data (funp(j),j= 51, 60)/
     1      803    ,
     2     1315    ,
     3     1316    ,
     4     1310    ,
     5      504    ,
     6      517    ,
     7     1314    ,
     8      626    ,
     9      613    ,
     a     1512    /
      data (funp(j),j= 61, 70)/
     1      744    ,
     2     1204    ,
     3     1802    ,
     4      513    ,
     5     2301    ,
     6     1312    ,
     7     1307    ,
     8     1004    ,
     9     1104    ,
     a      804    /
      data (funp(j),j= 71, 80)/
     1     1321    ,
     2     2703    ,
     3      632    ,
     4     1519    ,
     5     1522    ,
     6     1530    ,
     7     1533    ,
     8     1535    ,
     9      743    ,
     a      520    /
      data (funp(j),j= 81, 90)/
     1      503    ,
     2      519    ,
     3      711    ,
     4      801    ,
     5      802    ,
     6     1331    ,
     7      201    ,
     8      514    ,
     9     2506    ,
     a      603    /
      data (funp(j),j= 91,100)/
     1     2601    ,
     2      606    ,
     3     1902    ,
     4     1203    ,
     5      101    ,
     6     1317    ,
     7     1501    ,
     8     1520    ,
     9      619    ,
     a     1531    /
      data (funp(j),j=101,110)/
     1     2003    ,
     2     2204    ,
     3     2101    ,
     4      505    ,
     5     1304    ,
     6     1313    ,
     7     1701    ,
     8      501    ,
     9      628    ,
     a     1005    /
      data (funp(j),j=111,120)/
     1      104    ,
     2      901    ,
     3     2704    ,
     4     2705    ,
     5     2706    ,
     6     2707    ,
     7     1504    ,
     8     1538    ,
     9     1539    ,
     a     1326    /
      data (funp(j),j=121,130)/
     1     1322    ,
     2      622    ,
     3      616    ,
     4      616    ,
     5      617    ,
     6      617    ,
     7     1308    ,
     8     2203    ,
     9     1319    ,
     a      304    /
      data (funp(j),j=131,140)/
     1     1330    ,
     2     2709    ,
     3     1502    ,
     4     1503    ,
     5     1510    ,
     6     1201    ,
     7      615    ,
     8     1101    ,
     9     2901    ,
     a      703    /
      data (funp(j),j=141,150)/
     1     2102    ,
     2      302    ,
     3      706    ,
     4      707    ,
     5      708    ,
     6      709    ,
     7      710    ,
     8      704    ,
     9      705    ,
     a     1601    /
      data (funp(j),j=151,160)/
     1     1002    ,
     2     1606    ,
     3     1318    ,
     4      509    ,
     5      609    ,
     6     1509    ,
     7     1511    ,
     8     1513    ,
     9     1518    ,
     a     1102    /
      data (funp(j),j=161,170)/
     1      401    ,
     2      614    ,
     3      305    ,
     4      512    ,
     5      103    ,
     6     2205    ,
     7      502    ,
     8      515    ,
     9      602    ,
     a     1808    /
      data (funp(j),j=171,180)/
     1     2002    ,
     2     1311    ,
     3     1311    ,
     4      903    ,
     5     1602    ,
     6      605    ,
     7     1805    ,
     8      107    ,
     9     1006    ,
     a     1534    /
      data (funp(j),j=181,190)/
     1     1332    ,
     2      507    ,
     3      202    ,
     4     2505    ,
     5     1323    ,
     6     1614    ,
     7      630    ,
     8     1607    ,
     9      623    ,
     a      607    /
      data (funp(j),j=191,200)/
     1      618    ,
     2      203    ,
     3     1901    ,
     4      627    ,
     5     2103    ,
     6     2202    ,
     7      608    ,
     8      306    ,
     9      301    ,
     a      902    /
      data (funp(j),j=201,210)/
     1     1809    ,
     2     2701    ,
     3     2702    ,
     4     1103    ,
     5     1505    ,
     6     1506    ,
     7     1507    ,
     8     1508    ,
     9     1517    ,
     a     2801    /
      data (funp(j),j=211,220)/
     1     2802    ,
     2     2510    ,
     3     2106    ,
     4     1702    ,
     5     1329    ,
     6     1003    ,
     7      612    ,
     8      611    ,
     9     1309    ,
     a     1524    /
      data (funp(j),j=221,230)/
     1     1529    ,
     2     1536    ,
     3     1537    ,
     4      514    ,
     5     1401    ,
     6     1526    ,
     7     1527    ,
     8     2511    ,
     9     1616    ,
     a     1328    /
      data (funp(j),j=231,240)/
     1     1327    ,
     2      516    ,
     3      508    ,
     4     2503    ,
     5     2501    ,
     6     2504    ,
     7     2502    ,
     8      714    ,
     9      715    ,
     a      717    /
      data (funp(j),j=241,250)/
     1      719    ,
     2      720    ,
     3     2507    ,
     4      721    ,
     5      724    ,
     6      725    ,
     7      753    ,
     8      726    ,
     9      713    ,
     a      749    /
      data (funp(j),j=251,260)/
     1      727    ,
     2      728    ,
     3      723    ,
     4      729    ,
     5      742    ,
     6     2512    ,
     7      745    ,
     8      748    ,
     9      746    ,
     a      730    /
      data (funp(j),j=261,270)/
     1      731    ,
     2      751    ,
     3      732    ,
     4      733    ,
     5      734    ,
     6      735    ,
     7      722    ,
     8      716    ,
     9      750    ,
     a      718    /
      data (funp(j),j=271,277)/
     1      736    ,
     2      737    ,
     3      741    ,
     4      738    ,
     5      739    ,
     6      740    ,
     7      747    /
      data point/  1,  8, 13, 33, 50, 61, 79, 86, 89, 98, 99,101,120,
     1           129,136,140,160,162,181,214,224,229,230,234,278,278,
     2           278/
c+
      if(job.eq.0) then
c----------------------
c     display functions
c----------------------
c     display functions
         call basout(io,wte,'System functions:')
         call prntid(funm,funl1,wte)
      elseif(job.eq.1) then
c-------------------------------------------
c     recherche du pointeur associe a un nom
c-------------------------------------------
         k=(id(1)+128)/256
         if(k.lt.0) k=k-1
         ip=abs(id(1)-256*k)-9
c        ip=mod(id(1),256)-9
         if(ip.le.26) then
            do 10 k = point(ip) , point(ip+1)-1
               if (eqid(id,funn(1,k))) then
                  fptr=funp(k)
                  return
               endif
 10         continue
            fptr=0
            return
         else
            fptr=-1
            return
         endif
      elseif(job.eq.2) then
c-------------------------------------------
c     recherche du nom associe a un pointeur
c-------------------------------------------
         id(1)=0
         do 20 i=1,funl
            if (funp(i).eq.fptr) then
               call putid(id,funn(1,i))
               return
            endif
 20      continue
      elseif(job.eq.3) then
c-------------------------
c     ajout d'une fonction
c-------------------------
         k=(id(1)+128)/256
         if(k.lt.0) k=k-1
         ip=abs(id(1)-256*k)-9
c         ip=mod(id(1),256)-9
         if(ip.gt.26) then
            call error(36)
            return
         endif
         if(funl.ge.mxf) then
            err=mxf
            call error(107)
            return
         endif
         do 30 k = point(ip) , point(ip+1)-1
            if (eqid(id,funn(1,k))) then
               call error(106)
               return
            endif
 30      continue
         ipp=point(ip+1)
         call icopy(point(27)-ipp,funp(ipp),-1,funp(ipp+1),-1)
         funp(ipp)=fptr
         do 31 i=1,nsiz
            call icopy(point(27)-ipp,funn(i,ipp),-nsiz,
     $           funn(i,ipp+1),-nsiz)
 31      continue
         call putid(funn(1,ipp),id)
c     mise a jour de la table des pointeurs
         do 32 i=ip+1,27
            point(i)=point(i)+1
 32      continue
         funl=funl+1
      elseif(job.eq.4) then
c-------------------------------
c     suppression d'une fonction
c-------------------------------
         k=(id(1)+128)/256
         if(k.lt.0) k=k-1
         ip=abs(id(1)-256*k)-9
c         ip=mod(id(1),256)-9
         if(ip.le.26) then
            do 42 k = point(ip) , point(ip+1)-1
               if (eqid(id,funn(1,k))) then
                  fptr=funp(k)
                  call icopy(point(27)-k-1,funp(k+1),1,funp(k),1)
                  do 40 i=1,nsiz
                     call icopy(point(27)-k-1,funn(i,k+1),nsiz,
     $                    funn(i,k),nsiz)
 40               continue
c     mise a jour de la table des pointeurs
                  do 41 i=ip+1,27
                     point(i)=point(i)-1
 41               continue
                  funl=funl-1
                  return
               endif
 42         continue
            fptr=0
            return
         else
            fptr=-1
            return
         endif
      endif
c
      return
      end
