Index: trunk/SophyaExt/CodeMinuit/Imakefile
===================================================================
--- trunk/SophyaExt/CodeMinuit/Imakefile	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/Imakefile	(revision 2403)
@@ -0,0 +1,13 @@
+
+#define IHaveSubdirs
+#define PassCDebugFlags
+
+SUBDIRS= code examples minuit
+
+TopOfPackage(minuit)
+
+SubdirLibraryTarget(minuit,code)
+
+TestSubdirs(examples)
+
+InstallIncludeSubdirs(minuit)
Index: trunk/SophyaExt/CodeMinuit/MakeMinuit
===================================================================
--- trunk/SophyaExt/CodeMinuit/MakeMinuit	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/MakeMinuit	(revision 2403)
@@ -0,0 +1,35 @@
+include $(DPCBASEREP)/Include/MakefileUser.h
+
+
+OBJ := $(addsuffix .o,$(basename $(wildcard *.F)))
+
+%.o: %.F
+	$(COMPILE.f) -O -o $@ $<
+
+all: include libminuit.a
+
+echo:
+	@echo $(OBJ)
+
+include:
+	ln -f -s ../minuit minuit
+
+clean:
+	rm -f $(OBJ)
+
+cleanall: clean cleantest
+	rm -f libminuit.a minuit
+
+libminuit.a : $(OBJ)
+	$(AR) $(ARFLAGS) $@ $(OBJ)
+
+test:
+	cd ../examples/; \
+	rm -f minuit minexam minexam.o fcnk0.o; \
+	ln -f -s ../minuit minuit; \
+	$(COMPILE.f) -O -o fcnk0.o fcnk0.F; \
+	$(COMPILE.f) -O -o minexam.o minexam.F; \
+	$(LINK.f) -O -o minexam minexam.o fcnk0.o -L../code/ -lminuit
+
+cleantest:
+	cd ../examples/; rm -f minuit minexam minexam.o fcnk0.o;
Index: trunk/SophyaExt/CodeMinuit/Makefile
===================================================================
--- trunk/SophyaExt/CodeMinuit/Makefile	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/Makefile	(revision 2403)
@@ -0,0 +1,25 @@
+include $(DPCBASEREP)/Include/MakefileUser.h
+
+all:
+	cp MakeMinuit ./code/MakeMinuit
+	cd code; make -f MakeMinuit
+
+clean:
+	cp MakeMinuit ./code/MakeMinuit
+	cd code; make -f MakeMinuit clean
+
+cleanall:
+	cp MakeMinuit ./code/MakeMinuit
+	cd code; make -f MakeMinuit cleanall
+
+install:
+	cp ./code/libminuit.a $(EXTLIBPATH)/.
+	if [ ! -d $(EXTINCPATH)/Cern ] ; then mkdir $(EXTINCPATH)/Cern ; fi
+	cd $(EXTINCPATH)/Cern/.; rm -f cfortran.h minuit.h hbook.h
+	cp ./cfortran/cfortran.h $(EXTINCPATH)/Cern/.
+	cp ./cfortran/minuit.h $(EXTINCPATH)/Cern/.
+	cp ./cfortran/hbook.h $(EXTINCPATH)/Cern/.
+
+test:
+	cp MakeMinuit ./code/MakeMinuit
+	cd code; make -f MakeMinuit test
Index: trunk/SophyaExt/CodeMinuit/README
===================================================================
--- trunk/SophyaExt/CodeMinuit/README	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/README	(revision 2403)
@@ -0,0 +1,9 @@
+############################
+# Installation de minuit.a #
+############################
+make cleanall
+make
+make install
+make test
+make cleanall
+############################
Index: trunk/SophyaExt/CodeMinuit/cfortran/cfortran.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/cfortran.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/cfortran.h	(revision 2403)
@@ -0,0 +1,2363 @@
+/* cfortran.h  4.3 */
+/* www-zeus.desy.de/~burow   OR   anonymous ftp@zebra.desy.de */
+/* Burkhard Burow  burow@desy.de                 1990 - 1998. */
+
+#ifndef __CFORTRAN_LOADED
+#define __CFORTRAN_LOADED
+
+/* 
+   THIS FILE IS PROPERTY OF BURKHARD BUROW. IF YOU ARE USING THIS FILE YOU
+   SHOULD ALSO HAVE ACCESS TO CFORTRAN.DOC WHICH PROVIDES TERMS FOR USING,
+   MODIFYING, COPYING AND DISTRIBUTING THE CFORTRAN.H PACKAGE.
+*/
+
+/* 
+  Avoid symbols already used by compilers and system *.h:
+  __ - OSF1 zukal06 V3.0 347 alpha, cc -c -std1 cfortest.c
+
+ */
+
+
+/* First prepare for the C compiler. */
+
+#ifndef ANSI_C_preprocessor /* i.e. user can override. */
+#ifdef __CF__KnR
+#define ANSI_C_preprocessor 0
+#else
+#ifdef __STDC__
+#define ANSI_C_preprocessor 1
+#else
+#define _cfleft             1
+#define _cfright 
+#define _cfleft_cfright     0
+#define ANSI_C_preprocessor _cfleft/**/_cfright
+#endif
+#endif
+#endif
+
+#if ANSI_C_preprocessor
+#define _0(A,B)   A##B
+#define  _(A,B)   _0(A,B)  /* see cat,xcat of K&R ANSI C p. 231 */
+#define _2(A,B)   A##B     /* K&R ANSI C p.230: .. identifier is not replaced */
+#define _3(A,B,C) _(A,_(B,C))
+#else                      /* if it turns up again during rescanning.         */
+#define  _(A,B)   A/**/B
+#define _2(A,B)   A/**/B
+#define _3(A,B,C) A/**/B/**/C
+#endif
+
+#if (defined(vax)&&defined(unix)) || (defined(__vax__)&&defined(__unix__))
+#define VAXUltrix
+#endif
+
+#include <stdio.h>     /* NULL [in all machines stdio.h]                      */
+#include <string.h>    /* strlen, memset, memcpy, memchr.                     */
+#if !( defined(VAXUltrix) || defined(sun) || (defined(apollo)&&!defined(__STDCPP__)) )
+#include <stdlib.h>    /* malloc,free                                         */
+#else
+#include <malloc.h>    /* Had to be removed for DomainOS h105 10.4 sys5.3 425t*/
+#ifdef apollo
+#define __CF__APOLLO67 /* __STDCPP__ is in Apollo 6.8 (i.e. ANSI) and onwards */
+#endif
+#endif
+
+#if !defined(__GNUC__) && !defined(__sun) && (defined(sun)||defined(VAXUltrix)||defined(lynx))
+#define __CF__KnR     /* Sun, LynxOS and VAX Ultrix cc only supports K&R.     */
+                      /* Manually define __CF__KnR for HP if desired/required.*/
+#endif                /*       i.e. We will generate Kernighan and Ritchie C. */
+/* Note that you may define __CF__KnR before #include cfortran.h, in order to
+generate K&R C instead of the default ANSI C. The differences are mainly in the
+function prototypes and declarations. All machines, except the Apollo, work
+with either style. The Apollo's argument promotion rules require ANSI or use of
+the obsolete std_$call which we have not implemented here. Hence on the Apollo,
+only C calling FORTRAN subroutines will work using K&R style.*/
+
+
+/* Remainder of cfortran.h depends on the Fortran compiler. */
+
+#if defined(CLIPPERFortran) || defined(pgiFortran)
+#define f2cFortran
+#endif
+
+/* VAX/VMS does not let us \-split long #if lines. */ 
+/* Split #if into 2 because some HP-UX can't handle long #if */
+#if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
+#if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
+/* If no Fortran compiler is given, we choose one for the machines we know.   */
+#if defined(lynx) || defined(VAXUltrix)
+#define f2cFortran    /* Lynx:      Only support f2c at the moment.
+                         VAXUltrix: f77 behaves like f2c.
+                           Support f2c or f77 with gcc, vcc with f2c. 
+                           f77 with vcc works, missing link magic for f77 I/O.*/
+#endif
+#if defined(__hpux)             /* 921107: Use __hpux instead of __hp9000s300 */
+#define       hpuxFortran       /*         Should also allow hp9000s7/800 use.*/
+#endif
+#if       defined(apollo)
+#define           apolloFortran /* __CF__APOLLO67 also defines some behavior. */
+#endif
+#if          defined(sun) || defined(__sun) 
+#define              sunFortran
+#endif
+#if       defined(_IBMR2)
+#define            IBMR2Fortran
+#endif
+#if        defined(_CRAY)
+#define             CRAYFortran /*       _CRAYT3E also defines some behavior. */
+#endif
+#if        defined(_SX)
+#define               SXFortran
+#endif
+#if         defined(mips) || defined(__mips)
+#define             mipsFortran
+#endif
+#if          defined(vms) || defined(__vms)
+#define              vmsFortran
+#endif
+#if      defined(__alpha) && defined(__unix__)
+#define              DECFortran
+#endif
+#if   defined(__convex__)
+#define           CONVEXFortran
+#endif
+#if   defined(VISUAL_CPLUSPLUS)
+#define     PowerStationFortran
+#endif
+#endif /* ...Fortran */
+#endif /* ...Fortran */
+
+/* Split #if into 2 because some HP-UX can't handle long #if */
+#if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
+#if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
+/* If your compiler barfs on ' #error', replace # with the trigraph for #     */
+ #error "cfortran.h:  Can't find your environment among:\
+    - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...)     \
+    - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000     \
+    - VAX   VMS CC 3.1 and FORTRAN 5.4.                                  \
+    - Alpha VMS DEC C 1.3 and DEC FORTRAN 6.0.                           \
+    - Alpha OSF DEC C and DEC Fortran for OSF/1 AXP Version 1.2          \
+    - Apollo DomainOS 10.2 (sys5.3) with f77 10.7 and cc 6.7.            \
+    - CRAY                                                               \
+    - NEC SX-4 SUPER-UX                                                  \
+    - CONVEX                                                             \
+    - Sun                                                                \
+    - PowerStation Fortran with Visual C++                               \
+    - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 9000/730    \
+    - LynxOS: cc or gcc with f2c.                                        \
+    - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77.             \
+    -            f77 with vcc works; but missing link magic for f77 I/O. \
+    -            NO fort. None of gcc, cc or vcc generate required names.\
+    - f2c    : Use #define    f2cFortran, or cc -Df2cFortran             \
+    - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran          \
+    - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran \
+    - Absoft Pro Fortran: Use #define AbsoftProFortran \
+    - Portland Group Fortran: Use #define pgiFortran"
+/* Compiler must throw us out at this point! */
+#endif
+#endif
+
+
+#if defined(VAXC) && !defined(__VAXC)
+#define OLD_VAXC
+#pragma nostandard                       /* Prevent %CC-I-PARAMNOTUSED.       */
+#endif
+
+/* Throughout cfortran.h we use: UN = Uppercase Name.  LN = Lowercase Name.   */
+
+#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(extname)
+#define CFC_(UN,LN)            _(LN,_)      /* Lowercase FORTRAN symbols.     */
+#define orig_fcallsc(UN,LN)    CFC_(UN,LN)
+#else 
+#if defined(CRAYFortran) || defined(PowerStationFortran) || defined(AbsoftProFortran)
+#ifdef _CRAY          /* (UN), not UN, circumvents CRAY preprocessor bug.     */
+#define CFC_(UN,LN)            (UN)         /* Uppercase FORTRAN symbols.     */
+#else                 /* At least VISUAL_CPLUSPLUS barfs on (UN), so need UN. */
+#define CFC_(UN,LN)            UN           /* Uppercase FORTRAN symbols.     */
+#endif
+#define orig_fcallsc(UN,LN)    CFC_(UN,LN)  /* CRAY insists on arg.'s here.   */
+#else  /* For following machines one may wish to change the fcallsc default.  */
+#define CF_SAME_NAMESPACE
+#ifdef vmsFortran
+#define CFC_(UN,LN)            LN           /* Either case FORTRAN symbols.   */
+     /* BUT we usually use UN for C macro to FORTRAN routines, so use LN here,*/
+     /* because VAX/VMS doesn't do recursive macros.                          */
+#define orig_fcallsc(UN,LN)    UN
+#else      /* HP-UX without +ppu or IBMR2 without -qextname. NOT reccomended. */
+#define CFC_(UN,LN)            LN           /* Lowercase FORTRAN symbols.     */
+#define orig_fcallsc(UN,LN)    CFC_(UN,LN)
+#endif /*  vmsFortran */
+#endif /* CRAYFortran PowerStationFortran */
+#endif /* ....Fortran */
+
+#define fcallsc(UN,LN)               orig_fcallsc(UN,LN)
+#define preface_fcallsc(P,p,UN,LN)   CFC_(_(P,UN),_(p,LN))
+#define  append_fcallsc(P,p,UN,LN)   CFC_(_(UN,P),_(LN,p))
+
+#define C_FUNCTION(UN,LN)            fcallsc(UN,LN)      
+#define FORTRAN_FUNCTION(UN,LN)      CFC_(UN,LN)
+
+#ifndef COMMON_BLOCK
+#ifndef CONVEXFortran
+#ifndef CLIPPERFortran
+#if     !(defined(AbsoftUNIXFortran)||defined(AbsoftProFortran))
+#define COMMON_BLOCK(UN,LN)          CFC_(UN,LN)
+#else
+#define COMMON_BLOCK(UN,LN)          _(_C,LN)
+#endif  /* AbsoftUNIXFortran or AbsoftProFortran */
+#else
+#define COMMON_BLOCK(UN,LN)          _(LN,__)
+#endif  /* CLIPPERFortran */
+#else
+#define COMMON_BLOCK(UN,LN)          _3(_,LN,_)
+#endif  /* CONVEXFortran */
+#endif  /* COMMON_BLOCK */
+
+#ifndef DOUBLE_PRECISION
+#if defined(CRAYFortran) && !defined(_CRAYT3E)
+#define DOUBLE_PRECISION long double
+#else
+#define DOUBLE_PRECISION double
+#endif
+#endif
+
+#ifndef FORTRAN_REAL
+#if defined(CRAYFortran) &&  defined(_CRAYT3E)
+#define FORTRAN_REAL double
+#else
+#define FORTRAN_REAL float
+#endif
+#endif
+
+#ifdef CRAYFortran
+#ifdef _CRAY
+#include <fortran.h>
+#else
+#include "fortran.h"  /* i.e. if crosscompiling assume user has file. */
+#endif
+#define FLOATVVVVVVV_cfPP (FORTRAN_REAL *)   /* Used for C calls FORTRAN.     */
+/* CRAY's double==float but CRAY says pointers to doubles and floats are diff.*/
+#define VOIDP  (void *)  /* When FORTRAN calls C, we don't know if C routine 
+                            arg.'s have been declared float *, or double *.   */
+#else
+#define FLOATVVVVVVV_cfPP
+#define VOIDP
+#endif
+
+#ifdef vmsFortran
+#if    defined(vms) || defined(__vms)
+#include <descrip.h>
+#else
+#include "descrip.h"  /* i.e. if crosscompiling assume user has file. */
+#endif
+#endif
+
+#ifdef sunFortran
+#if defined(sun) || defined(__sun)
+#include <math.h>     /* Sun's FLOATFUNCTIONTYPE, ASSIGNFLOAT, RETURNFLOAT.  */
+#else
+#include "math.h"     /* i.e. if crosscompiling assume user has file. */
+#endif
+/* At least starting with the default C compiler SC3.0.1 of SunOS 5.3,
+ * FLOATFUNCTIONTYPE, ASSIGNFLOAT, RETURNFLOAT are not required and not in
+ * <math.h>, since sun C no longer promotes C float return values to doubles.
+ * Therefore, only use them if defined.
+ * Even if gcc is being used, assume that it exhibits the Sun C compiler
+ * behavior in order to be able to use *.o from the Sun C compiler.
+ * i.e. If FLOATFUNCTIONTYPE, etc. are in math.h, they required by gcc.
+ */
+#endif
+
+#ifndef apolloFortran
+#define COMMON_BLOCK_DEF(DEFINITION, NAME) extern DEFINITION NAME
+#define CF_NULL_PROTO
+#else                                         /* HP doesn't understand #elif. */
+/* Without ANSI prototyping, Apollo promotes float functions to double.    */
+/* Note that VAX/VMS, IBM, Mips choke on 'type function(...);' prototypes. */
+#define CF_NULL_PROTO ...
+#ifndef __CF__APOLLO67
+#define COMMON_BLOCK_DEF(DEFINITION, NAME) \
+ DEFINITION NAME __attribute((__section(NAME)))
+#else
+#define COMMON_BLOCK_DEF(DEFINITION, NAME) \
+ DEFINITION NAME #attribute[section(NAME)]
+#endif
+#endif
+
+#ifdef __cplusplus
+#undef  CF_NULL_PROTO
+#define CF_NULL_PROTO  ...
+#endif
+
+
+#ifndef USE_NEW_DELETE
+#ifdef __cplusplus
+#define USE_NEW_DELETE 1
+#else
+#define USE_NEW_DELETE 0
+#endif
+#endif
+#if USE_NEW_DELETE
+#define _cf_malloc(N) new char[N]
+#define _cf_free(P)   delete[] P
+#else
+#define _cf_malloc(N) (char *)malloc(N)
+#define _cf_free(P)   free(P)
+#endif
+
+#ifdef mipsFortran
+#define CF_DECLARE_GETARG         int f77argc; char **f77argv
+#define CF_SET_GETARG(ARGC,ARGV)  f77argc = ARGC; f77argv = ARGV
+#else
+#define CF_DECLARE_GETARG
+#define CF_SET_GETARG(ARGC,ARGV)
+#endif
+
+#ifdef OLD_VAXC                          /* Allow %CC-I-PARAMNOTUSED.         */
+#pragma standard                         
+#endif
+
+#define AcfCOMMA ,
+#define AcfCOLON ;
+
+/*-------------------------------------------------------------------------*/
+
+/*               UTILITIES USED WITHIN CFORTRAN.H                          */
+
+#define _cfMIN(A,B) (A<B?A:B)
+
+/* 970211 - XIX.145:
+   firstindexlength  - better name is all_but_last_index_lengths
+   secondindexlength - better name is         last_index_length
+ */
+#define  firstindexlength(A) (sizeof(A[0])==1 ? 1 : (sizeof(A) / sizeof(A[0])) )
+#define secondindexlength(A) (sizeof(A[0])==1 ?      sizeof(A) : sizeof(A[0])  )
+
+/* Behavior of FORTRAN LOGICAL. All machines' LOGICAL is same size as C's int.
+Conversion is automatic except for arrays which require F2CLOGICALV/C2FLOGICALV.
+f2c, MIPS f77 [DECstation, SGI], VAX Ultrix f77,
+HP-UX f77                                        : as in C.
+VAX/VMS FORTRAN, VAX Ultrix fort,
+Absoft Unix Fortran, IBM RS/6000 xlf             : LS Bit = 0/1 = TRUE/FALSE.
+Apollo                                           : neg.   = TRUE, else FALSE. 
+[Apollo accepts -1 as TRUE for function values, but NOT all other neg. values.]
+[DECFortran for Ultrix RISC is also called f77 but is the same as VAX/VMS.]   
+[MIPS f77 treats .eqv./.neqv. as .eq./.ne. and hence requires LOGICAL_STRICT.]*/
+
+#if defined(NAGf90Fortran) || defined(f2cFortran) || defined(mipsFortran) || defined(PowerStationFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran) || defined(SXFortran)
+/* SX/PowerStationFortran have 0 and 1 defined, others are neither T nor F.   */
+/* hpuxFortran800 has 0 and 0x01000000 defined. Others are unknown.           */
+#define LOGICAL_STRICT      /* Other Fortran have .eqv./.neqv. == .eq./.ne.   */
+#endif
+
+#define C2FLOGICALV(A,I) \
+ do {int __i; for(__i=0;__i<I;__i++) A[__i]=C2FLOGICAL(A[__i]); } while (0)
+#define F2CLOGICALV(A,I) \
+ do {int __i; for(__i=0;__i<I;__i++) A[__i]=F2CLOGICAL(A[__i]); } while (0)
+
+#if defined(apolloFortran)
+#define C2FLOGICAL(L) ((L)?-1:(L)&~((unsigned)1<<sizeof(int)*8-1))
+#define F2CLOGICAL(L) ((L)<0?(L):0) 
+#else
+#if defined(CRAYFortran)
+#define C2FLOGICAL(L) _btol(L)
+#define F2CLOGICAL(L) _ltob(&(L))     /* Strangely _ltob() expects a pointer. */
+#else
+#if defined(IBMR2Fortran) || defined(vmsFortran) || defined(DECFortran) || defined(AbsoftUNIXFortran)
+/* How come no AbsoftProFortran ? */
+#define C2FLOGICAL(L) ((L)?(L)|1:(L)&~(int)1)
+#define F2CLOGICAL(L) ((L)&1?(L):0)
+#else
+#if defined(CONVEXFortran)
+#define C2FLOGICAL(L) ((L) ? ~0 : 0 )
+#define F2CLOGICAL(L) (L)
+#else   /* others evaluate LOGICALs as for C. */
+#define C2FLOGICAL(L) (L)
+#define F2CLOGICAL(L) (L)
+#ifndef LOGICAL_STRICT
+#undef  C2FLOGICALV
+#undef  F2CLOGICALV
+#define C2FLOGICALV(A,I)
+#define F2CLOGICALV(A,I)
+#endif  /* LOGICAL_STRICT                     */
+#endif  /* CONVEXFortran || All Others        */
+#endif  /* IBMR2Fortran vmsFortran DECFortran AbsoftUNIXFortran */
+#endif  /* CRAYFortran                        */
+#endif  /* apolloFortran                      */
+
+/* 970514 - In addition to CRAY, there may be other machines
+            for which LOGICAL_STRICT makes no sense. */
+#if defined(LOGICAL_STRICT) && !defined(CRAYFortran)
+/* Force C2FLOGICAL to generate only the values for either .TRUE. or .FALSE.
+   SX/PowerStationFortran only have 0 and 1 defined.
+   Elsewhere, only needed if you want to do:
+     logical lvariable
+     if (lvariable .eq.  .true.) then       ! (1)
+   instead of
+     if (lvariable .eqv. .true.) then       ! (2)
+   - (1) may not even be FORTRAN/77 and that Apollo's f77 and IBM's xlf
+     refuse to compile (1), so you are probably well advised to stay away from 
+     (1) and from LOGICAL_STRICT.
+   - You pay a (slight) performance penalty for using LOGICAL_STRICT. */
+#undef  C2FLOGICAL
+#ifdef hpuxFortran800
+#define C2FLOGICAL(L) ((L)?0x01000000:0)
+#else
+#if defined(apolloFortran) || defined(vmsFortran) || defined(DECFortran)
+#define C2FLOGICAL(L) ((L)?-1:0) /* These machines use -1/0 for .true./.false.*/
+#else
+#define C2FLOGICAL(L) ((L)? 1:0) /* All others     use +1/0 for .true./.false.*/
+#endif
+#endif
+#endif /* LOGICAL_STRICT */
+
+/* Convert a vector of C strings into FORTRAN strings. */
+#ifndef __CF__KnR
+static char *c2fstrv(char* cstr, char *fstr, int elem_len, int sizeofcstr)
+#else
+static char *c2fstrv(      cstr,       fstr,     elem_len,     sizeofcstr)
+                     char* cstr; char *fstr; int elem_len; int sizeofcstr;
+#endif
+{ int i,j;
+/* elem_len includes \0 for C strings. Fortran strings don't have term. \0.
+   Useful size of string must be the same in both languages. */
+for (i=0; i<sizeofcstr/elem_len; i++) {
+  for (j=1; j<elem_len && *cstr; j++) *fstr++ = *cstr++;
+  cstr += 1+elem_len-j;
+  for (; j<elem_len; j++) *fstr++ = ' ';
+} /* 95109 - Seems to be returning the original fstr. */
+return fstr-sizeofcstr+sizeofcstr/elem_len; }
+
+/* Convert a vector of FORTRAN strings into C strings. */
+#ifndef __CF__KnR
+static char *f2cstrv(char *fstr, char* cstr, int elem_len, int sizeofcstr)
+#else
+static char *f2cstrv(      fstr,       cstr,     elem_len,     sizeofcstr)
+                     char *fstr; char* cstr; int elem_len; int sizeofcstr; 
+#endif
+{ int i,j;
+/* elem_len includes \0 for C strings. Fortran strings don't have term. \0.
+   Useful size of string must be the same in both languages. */
+cstr += sizeofcstr;
+fstr += sizeofcstr - sizeofcstr/elem_len;
+for (i=0; i<sizeofcstr/elem_len; i++) {
+  *--cstr = '\0';
+  for (j=1; j<elem_len; j++) *--cstr = *--fstr;
+} return cstr; }
+
+/* kill the trailing char t's in string s. */
+#ifndef __CF__KnR
+static char *kill_trailing(char *s, char t)
+#else
+static char *kill_trailing(      s,      t) char *s; char t;
+#endif
+{char *e; 
+e = s + strlen(s);
+if (e>s) {                           /* Need this to handle NULL string.*/
+  while (e>s && *--e==t);            /* Don't follow t's past beginning. */
+  e[*e==t?0:1] = '\0';               /* Handle s[0]=t correctly.       */
+} return s; }
+
+/* kill_trailingn(s,t,e) will kill the trailing t's in string s. e normally 
+points to the terminating '\0' of s, but may actually point to anywhere in s.
+s's new '\0' will be placed at e or earlier in order to remove any trailing t's.
+If e<s string s is left unchanged. */ 
+#ifndef __CF__KnR
+static char *kill_trailingn(char *s, char t, char *e)
+#else
+static char *kill_trailingn(      s,      t,       e) char *s; char t; char *e;
+#endif
+{ 
+if (e==s) *e = '\0';                 /* Kill the string makes sense here.*/
+else if (e>s) {                      /* Watch out for neg. length string.*/
+  while (e>s && *--e==t);            /* Don't follow t's past beginning. */
+  e[*e==t?0:1] = '\0';               /* Handle s[0]=t correctly.       */
+} return s; }
+
+/* Note the following assumes that any element which has t's to be chopped off,
+does indeed fill the entire element. */
+#ifndef __CF__KnR
+static char *vkill_trailing(char* cstr, int elem_len, int sizeofcstr, char t)
+#else
+static char *vkill_trailing(      cstr,     elem_len,     sizeofcstr,      t)
+                            char* cstr; int elem_len; int sizeofcstr; char t;
+#endif
+{ int i;
+for (i=0; i<sizeofcstr/elem_len; i++) /* elem_len includes \0 for C strings. */
+  kill_trailingn(cstr+elem_len*i,t,cstr+elem_len*(i+1)-1);
+return cstr; }
+
+#ifdef vmsFortran
+typedef struct dsc$descriptor_s fstring;
+#define DSC$DESCRIPTOR_A(DIMCT)  		                               \
+struct {                                                                       \
+  unsigned short dsc$w_length;	        unsigned char	 dsc$b_dtype;	       \
+  unsigned char	 dsc$b_class;	                 char	*dsc$a_pointer;	       \
+           char	 dsc$b_scale;	        unsigned char	 dsc$b_digits;         \
+  struct {                                                                     \
+    unsigned		       : 3;	  unsigned dsc$v_fl_binscale : 1;      \
+    unsigned dsc$v_fl_redim    : 1;       unsigned dsc$v_fl_column   : 1;      \
+    unsigned dsc$v_fl_coeff    : 1;       unsigned dsc$v_fl_bounds   : 1;      \
+  } dsc$b_aflags;	                                                       \
+  unsigned char	 dsc$b_dimct;	        unsigned long	 dsc$l_arsize;	       \
+           char	*dsc$a_a0;	                 long	 dsc$l_m [DIMCT];      \
+  struct {                                                                     \
+    long dsc$l_l;                         long dsc$l_u;                        \
+  } dsc$bounds [DIMCT];                                                        \
+}
+typedef DSC$DESCRIPTOR_A(1) fstringvector;
+/*typedef DSC$DESCRIPTOR_A(2) fstringarrarr;
+  typedef DSC$DESCRIPTOR_A(3) fstringarrarrarr;*/
+#define initfstr(F,C,ELEMNO,ELEMLEN)                                           \
+( (F).dsc$l_arsize=  ( (F).dsc$w_length                        =(ELEMLEN) )    \
+                    *( (F).dsc$l_m[0]=(F).dsc$bounds[0].dsc$l_u=(ELEMNO)  ),   \
+  (F).dsc$a_a0    =  ( (F).dsc$a_pointer=(C) ) - (F).dsc$w_length          ,(F))
+
+#else
+#define _NUM_ELEMS      -1
+#define _NUM_ELEM_ARG   -2
+#define NUM_ELEMS(A)    A,_NUM_ELEMS
+#define NUM_ELEM_ARG(B) *_2(A,B),_NUM_ELEM_ARG
+#define TERM_CHARS(A,B) A,B
+#ifndef __CF__KnR
+static int num_elem(char *strv, unsigned elem_len, int term_char, int num_term)
+#else
+static int num_elem(      strv,          elem_len,     term_char,     num_term)
+                    char *strv; unsigned elem_len; int term_char; int num_term;
+#endif
+/* elem_len is the number of characters in each element of strv, the FORTRAN
+vector of strings. The last element of the vector must begin with at least
+num_term term_char characters, so that this routine can determine how 
+many elements are in the vector. */
+{
+unsigned num,i;
+if (num_term == _NUM_ELEMS || num_term == _NUM_ELEM_ARG) 
+  return term_char;
+if (num_term <=0) num_term = (int)elem_len;
+for (num=0; ; num++) {
+  for (i=0; i<(unsigned)num_term && *strv==term_char; i++,strv++);
+  if (i==(unsigned)num_term) break;
+  else strv += elem_len-i;
+}
+return (int)num;
+}
+#endif
+/*-------------------------------------------------------------------------*/
+
+/*           UTILITIES FOR C TO USE STRINGS IN FORTRAN COMMON BLOCKS       */
+
+/* C string TO Fortran Common Block STRing. */
+/* DIM is the number of DIMensions of the array in terms of strings, not
+   characters. e.g. char a[12] has DIM = 0, char a[12][4] has DIM = 1, etc. */
+#define C2FCBSTR(CSTR,FSTR,DIM)                                                \
+ c2fstrv((char *)CSTR, (char *)FSTR, sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,    \
+         sizeof(FSTR)+cfelementsof(FSTR,DIM))
+
+/* Fortran Common Block string TO C STRing. */
+#define FCB2CSTR(FSTR,CSTR,DIM)                                                \
+ vkill_trailing(f2cstrv((char *)FSTR, (char *)CSTR,                            \
+                        sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,                 \
+                        sizeof(FSTR)+cfelementsof(FSTR,DIM)),                  \
+                sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,                         \
+                sizeof(FSTR)+cfelementsof(FSTR,DIM), ' ')
+
+#define cfDEREFERENCE0
+#define cfDEREFERENCE1 *
+#define cfDEREFERENCE2 **
+#define cfDEREFERENCE3 ***
+#define cfDEREFERENCE4 ****
+#define cfDEREFERENCE5 *****
+#define cfelementsof(A,D) (sizeof(A)/sizeof(_(cfDEREFERENCE,D)(A)))
+
+/*-------------------------------------------------------------------------*/
+
+/*               UTILITIES FOR C TO CALL FORTRAN SUBROUTINES               */
+
+/* Define lookup tables for how to handle the various types of variables.  */
+
+#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
+#pragma nostandard
+#endif
+
+#define ZTRINGV_NUM(I)       I
+#define ZTRINGV_ARGFP(I) (*(_2(A,I))) /* Undocumented. For PINT, etc. */
+#define ZTRINGV_ARGF(I) _2(A,I)
+#ifdef CFSUBASFUN
+#define ZTRINGV_ARGS(I) ZTRINGV_ARGF(I)
+#else
+#define ZTRINGV_ARGS(I) _2(B,I)
+#endif
+
+#define    PBYTE_cfVP(A,B) PINT_cfVP(A,B)
+#define  PDOUBLE_cfVP(A,B)
+#define   PFLOAT_cfVP(A,B)
+#ifdef ZTRINGV_ARGS_allows_Pvariables
+/* This allows Pvariables for ARGS. ARGF machinery is above ARGFP.
+ * B is not needed because the variable may be changed by the Fortran routine,
+ * but because B is the only way to access an arbitrary macro argument.       */
+#define     PINT_cfVP(A,B) int  B = (int)A;              /* For ZSTRINGV_ARGS */
+#else
+#define     PINT_cfVP(A,B)
+#endif
+#define PLOGICAL_cfVP(A,B) int *B;      /* Returning LOGICAL in FUNn and SUBn */
+#define    PLONG_cfVP(A,B) PINT_cfVP(A,B)
+#define   PSHORT_cfVP(A,B) PINT_cfVP(A,B)
+
+#define        VCF_INT_S(T,A,B) _(T,VVVVVVV_cfTYPE) B = A;
+#define        VCF_INT_F(T,A,B) _(T,_cfVCF)(A,B)
+/* _cfVCF table is directly mapped to _cfCCC table. */
+#define     BYTE_cfVCF(A,B)
+#define   DOUBLE_cfVCF(A,B)
+#if !defined(__CF__KnR)
+#define    FLOAT_cfVCF(A,B)
+#else
+#define    FLOAT_cfVCF(A,B) FORTRAN_REAL B = A;
+#endif
+#define      INT_cfVCF(A,B)
+#define  LOGICAL_cfVCF(A,B)
+#define     LONG_cfVCF(A,B)
+#define    SHORT_cfVCF(A,B)
+
+/* 980416
+   Cast (void (*)(CF_NULL_PROTO)) causes SunOS CC 4.2 occasionally to barf,
+   while the following equivalent typedef is fine.
+   For consistency use the typedef on all machines.
+ */
+typedef void (*cfCAST_FUNCTION)(CF_NULL_PROTO);
+
+#define VCF(TN,I)       _Icf4(4,V,TN,_(A,I),_(B,I),F)
+#define VVCF(TN,AI,BI)  _Icf4(4,V,TN,AI,BI,S)
+#define        INT_cfV(T,A,B,F) _(VCF_INT_,F)(T,A,B)
+#define       INTV_cfV(T,A,B,F)
+#define      INTVV_cfV(T,A,B,F)
+#define     INTVVV_cfV(T,A,B,F)
+#define    INTVVVV_cfV(T,A,B,F)
+#define   INTVVVVV_cfV(T,A,B,F)
+#define  INTVVVVVV_cfV(T,A,B,F)
+#define INTVVVVVVV_cfV(T,A,B,F)
+#define PINT_cfV(      T,A,B,F) _(T,_cfVP)(A,B)
+#define PVOID_cfV(     T,A,B,F)
+#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
+#define    ROUTINE_cfV(T,A,B,F) void (*B)(CF_NULL_PROTO) = (cfCAST_FUNCTION)A;
+#else
+#define    ROUTINE_cfV(T,A,B,F)
+#endif
+#define     SIMPLE_cfV(T,A,B,F)
+#ifdef vmsFortran
+#define     STRING_cfV(T,A,B,F) static struct {fstring f; unsigned clen;} B =  \
+                                       {{0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL},0};
+#define    PSTRING_cfV(T,A,B,F) static fstring B={0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL};
+#define    STRINGV_cfV(T,A,B,F) static fstringvector B =                       \
+  {sizeof(A),DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
+#define   PSTRINGV_cfV(T,A,B,F) static fstringvector B =                       \
+          {0,DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
+#else
+#define     STRING_cfV(T,A,B,F) struct {unsigned int clen, flen;} B;
+#define    STRINGV_cfV(T,A,B,F) struct {char *s, *fs; unsigned flen;} B;
+#define    PSTRING_cfV(T,A,B,F) int     B;
+#define   PSTRINGV_cfV(T,A,B,F) struct{char *fs; unsigned int sizeofA,flen;}B;
+#endif
+#define    ZTRINGV_cfV(T,A,B,F)  STRINGV_cfV(T,A,B,F)
+#define   PZTRINGV_cfV(T,A,B,F) PSTRINGV_cfV(T,A,B,F)
+
+/* Note that the actions of the A table were performed inside the AA table.
+   VAX Ultrix vcc, and HP-UX cc, didn't evaluate arguments to functions left to
+   right, so we had to split the original table into the current robust two. */
+#define ACF(NAME,TN,AI,I)      _(TN,_cfSTR)(4,A,NAME,I,AI,_(B,I),0)
+#define   DEFAULT_cfA(M,I,A,B)
+#define   LOGICAL_cfA(M,I,A,B) B=C2FLOGICAL(B);
+#define  PLOGICAL_cfA(M,I,A,B) A=C2FLOGICAL(A);
+#define    STRING_cfA(M,I,A,B)  STRING_cfC(M,I,A,B,sizeof(A))
+#define   PSTRING_cfA(M,I,A,B) PSTRING_cfC(M,I,A,B,sizeof(A))
+#ifdef vmsFortran
+#define  AATRINGV_cfA(    A,B, sA,filA,silA)                                   \
+ initfstr(B,_cf_malloc((sA)-(filA)),(filA),(silA)-1),                          \
+          c2fstrv(A,B.dsc$a_pointer,(silA),(sA));
+#define APATRINGV_cfA(    A,B, sA,filA,silA)                                   \
+ initfstr(B,A,(filA),(silA)-1),c2fstrv(A,A,(silA),(sA));
+#else
+#define  AATRINGV_cfA(    A,B, sA,filA,silA)                                   \
+     (B.s=_cf_malloc((sA)-(filA)),B.fs=c2fstrv(A,B.s,(B.flen=(silA)-1)+1,(sA)));
+#define APATRINGV_cfA(    A,B, sA,filA,silA)                                   \
+ B.fs=c2fstrv(A,A,(B.flen=(silA)-1)+1,B.sizeofA=(sA));
+#endif
+#define   STRINGV_cfA(M,I,A,B)                                                 \
+    AATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
+#define  PSTRINGV_cfA(M,I,A,B)                                                 \
+   APATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
+#define   ZTRINGV_cfA(M,I,A,B)  AATRINGV_cfA( (char *)A,B,                     \
+                    (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1),                \
+                              (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
+#define  PZTRINGV_cfA(M,I,A,B) APATRINGV_cfA( (char *)A,B,                     \
+                    (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1),                \
+                              (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
+
+#define    PBYTE_cfAAP(A,B) &A
+#define  PDOUBLE_cfAAP(A,B) &A
+#define   PFLOAT_cfAAP(A,B) FLOATVVVVVVV_cfPP &A
+#define     PINT_cfAAP(A,B) &A
+#define PLOGICAL_cfAAP(A,B) B= &A         /* B used to keep a common W table. */
+#define    PLONG_cfAAP(A,B) &A
+#define   PSHORT_cfAAP(A,B) &A
+
+#define AACF(TN,AI,I,C) _SEP_(TN,C,cfCOMMA) _Icf(3,AA,TN,AI,_(B,I))
+#define        INT_cfAA(T,A,B) &B
+#define       INTV_cfAA(T,A,B) _(T,VVVVVV_cfPP) A
+#define      INTVV_cfAA(T,A,B) _(T,VVVVV_cfPP)  A[0]
+#define     INTVVV_cfAA(T,A,B) _(T,VVVV_cfPP)   A[0][0]
+#define    INTVVVV_cfAA(T,A,B) _(T,VVV_cfPP)    A[0][0][0]
+#define   INTVVVVV_cfAA(T,A,B) _(T,VV_cfPP)     A[0][0][0][0]
+#define  INTVVVVVV_cfAA(T,A,B) _(T,V_cfPP)      A[0][0][0][0][0]
+#define INTVVVVVVV_cfAA(T,A,B) _(T,_cfPP)       A[0][0][0][0][0][0]
+#define       PINT_cfAA(T,A,B) _(T,_cfAAP)(A,B)
+#define      PVOID_cfAA(T,A,B) (void *) A
+#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
+#define    ROUTINE_cfAA(T,A,B) &B
+#else
+#define    ROUTINE_cfAA(T,A,B) (cfCAST_FUNCTION)A
+#endif
+#define     STRING_cfAA(T,A,B)  STRING_cfCC(T,A,B)
+#define    PSTRING_cfAA(T,A,B) PSTRING_cfCC(T,A,B)
+#ifdef vmsFortran
+#define    STRINGV_cfAA(T,A,B) &B
+#else
+#ifdef CRAYFortran
+#define    STRINGV_cfAA(T,A,B) _cptofcd(B.fs,B.flen)
+#else
+#define    STRINGV_cfAA(T,A,B) B.fs
+#endif
+#endif
+#define   PSTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
+#define    ZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
+#define   PZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
+
+#if defined(vmsFortran) || defined(CRAYFortran)
+#define JCF(TN,I)
+#define KCF(TN,I)
+#else
+#define JCF(TN,I)    _(TN,_cfSTR)(1,J,_(B,I), 0,0,0,0)
+#if defined(AbsoftUNIXFortran)
+#define  DEFAULT_cfJ(B) ,0
+#else
+#define  DEFAULT_cfJ(B)
+#endif
+#define  LOGICAL_cfJ(B) DEFAULT_cfJ(B)
+#define PLOGICAL_cfJ(B) DEFAULT_cfJ(B)
+#define   STRING_cfJ(B) ,B.flen
+#define  PSTRING_cfJ(B) ,B
+#define  STRINGV_cfJ(B) STRING_cfJ(B)
+#define PSTRINGV_cfJ(B) STRING_cfJ(B)
+#define  ZTRINGV_cfJ(B) STRING_cfJ(B)
+#define PZTRINGV_cfJ(B) STRING_cfJ(B)
+
+/* KCF is identical to DCF, except that KCF ZTRING is not empty. */
+#define KCF(TN,I)    _(TN,_cfSTR)(1,KK,_(B,I), 0,0,0,0)
+#if defined(AbsoftUNIXFortran)
+#define  DEFAULT_cfKK(B) , unsigned B
+#else
+#define  DEFAULT_cfKK(B)
+#endif
+#define  LOGICAL_cfKK(B) DEFAULT_cfKK(B)
+#define PLOGICAL_cfKK(B) DEFAULT_cfKK(B)
+#define   STRING_cfKK(B) , unsigned B
+#define  PSTRING_cfKK(B) STRING_cfKK(B)
+#define  STRINGV_cfKK(B) STRING_cfKK(B)
+#define PSTRINGV_cfKK(B) STRING_cfKK(B)
+#define  ZTRINGV_cfKK(B) STRING_cfKK(B)
+#define PZTRINGV_cfKK(B) STRING_cfKK(B)
+#endif
+
+#define WCF(TN,AN,I)      _(TN,_cfSTR)(2,W,AN,_(B,I), 0,0,0)
+#define  DEFAULT_cfW(A,B)
+#define  LOGICAL_cfW(A,B)
+#define PLOGICAL_cfW(A,B) *B=F2CLOGICAL(*B);
+#define   STRING_cfW(A,B) (A[B.clen]!='\0'?A[B.clen]='\0':0); /* A?="constnt"*/
+#define  PSTRING_cfW(A,B) kill_trailing(A,' ');
+#ifdef vmsFortran
+#define  STRINGV_cfW(A,B) _cf_free(B.dsc$a_pointer);
+#define PSTRINGV_cfW(A,B)                                                      \
+  vkill_trailing(f2cstrv((char*)A, (char*)A,                                   \
+                           B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0]),     \
+                   B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0], ' ');
+#else
+#define  STRINGV_cfW(A,B) _cf_free(B.s);
+#define PSTRINGV_cfW(A,B) vkill_trailing(                                      \
+         f2cstrv((char*)A,(char*)A,B.flen+1,B.sizeofA), B.flen+1,B.sizeofA,' ');
+#endif
+#define  ZTRINGV_cfW(A,B)      STRINGV_cfW(A,B)
+#define PZTRINGV_cfW(A,B)     PSTRINGV_cfW(A,B)
+
+#define   NCF(TN,I,C)       _SEP_(TN,C,cfCOMMA) _Icf(2,N,TN,_(A,I),0) 
+#define  NNCF(TN,I,C)        UUCF(TN,I,C)
+#define NNNCF(TN,I,C)       _SEP_(TN,C,cfCOLON) _Icf(2,N,TN,_(A,I),0) 
+#define        INT_cfN(T,A) _(T,VVVVVVV_cfTYPE) * A
+#define       INTV_cfN(T,A) _(T,VVVVVV_cfTYPE)  * A
+#define      INTVV_cfN(T,A) _(T,VVVVV_cfTYPE)   * A
+#define     INTVVV_cfN(T,A) _(T,VVVV_cfTYPE)    * A
+#define    INTVVVV_cfN(T,A) _(T,VVV_cfTYPE)     * A
+#define   INTVVVVV_cfN(T,A) _(T,VV_cfTYPE)      * A
+#define  INTVVVVVV_cfN(T,A) _(T,V_cfTYPE)       * A
+#define INTVVVVVVV_cfN(T,A) _(T,_cfTYPE)        * A
+#define       PINT_cfN(T,A) _(T,_cfTYPE)        * A
+#define      PVOID_cfN(T,A) void *                A
+#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
+#define    ROUTINE_cfN(T,A) void (**A)(CF_NULL_PROTO)
+#else
+#define    ROUTINE_cfN(T,A) void ( *A)(CF_NULL_PROTO)
+#endif
+#ifdef vmsFortran
+#define     STRING_cfN(T,A) fstring *             A
+#define    STRINGV_cfN(T,A) fstringvector *       A
+#else
+#ifdef CRAYFortran
+#define     STRING_cfN(T,A) _fcd                  A
+#define    STRINGV_cfN(T,A) _fcd                  A
+#else
+#define     STRING_cfN(T,A) char *                A
+#define    STRINGV_cfN(T,A) char *                A
+#endif
+#endif
+#define    PSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
+#define   PNSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
+#define   PPSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
+#define   PSTRINGV_cfN(T,A)  STRINGV_cfN(T,A)
+#define    ZTRINGV_cfN(T,A)  STRINGV_cfN(T,A)
+#define   PZTRINGV_cfN(T,A) PSTRINGV_cfN(T,A)
+
+
+/* Apollo 6.7, CRAY, old Sun, VAX/Ultrix vcc/cc and new ultrix
+   can't hack more than 31 arg's.
+   e.g. ultrix >= 4.3 gives message:
+       zow35> cc -c -DDECFortran cfortest.c
+       cfe: Fatal: Out of memory: cfortest.c
+       zow35>
+   Old __hpux had the problem, but new 'HP-UX A.09.03 A 9000/735' is fine
+   if using -Aa, otherwise we have a problem.
+ */
+#ifndef MAX_PREPRO_ARGS
+#if !defined(__GNUC__) && (defined(VAXUltrix) || defined(__CF__APOLLO67) || (defined(sun)&&!defined(__sun)) || defined(_CRAY) || defined(__ultrix__) || (defined(__hpux)&&defined(__CF__KnR)))
+#define MAX_PREPRO_ARGS 31
+#else
+#define MAX_PREPRO_ARGS 99
+#endif
+#endif
+
+#if defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
+/* In addition to explicit Absoft stuff, only Absoft requires:
+   - DEFAULT coming from _cfSTR.
+     DEFAULT could have been called e.g. INT, but keep it for clarity.
+   - M term in CFARGT14 and CFARGT14FS.
+ */
+#define ABSOFT_cf1(T0) _(T0,_cfSTR)(0,ABSOFT1,0,0,0,0,0)
+#define ABSOFT_cf2(T0) _(T0,_cfSTR)(0,ABSOFT2,0,0,0,0,0)
+#define ABSOFT_cf3(T0) _(T0,_cfSTR)(0,ABSOFT3,0,0,0,0,0)
+#define DEFAULT_cfABSOFT1
+#define LOGICAL_cfABSOFT1
+#define  STRING_cfABSOFT1 ,MAX_LEN_FORTRAN_FUNCTION_STRING
+#define DEFAULT_cfABSOFT2
+#define LOGICAL_cfABSOFT2
+#define  STRING_cfABSOFT2 ,unsigned D0
+#define DEFAULT_cfABSOFT3
+#define LOGICAL_cfABSOFT3
+#define  STRING_cfABSOFT3 ,D0
+#else
+#define ABSOFT_cf1(T0)
+#define ABSOFT_cf2(T0)
+#define ABSOFT_cf3(T0)
+#endif
+
+/* _Z introduced to cicumvent IBM and HP silly preprocessor warning.
+   e.g. "Macro CFARGT14 invoked with a null argument."
+ */
+#define _Z
+
+#define  CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)                \
+ S(T1,1)   S(T2,2)   S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)       \
+ S(T8,8)   S(T9,9)   S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)
+#define  CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+ S(T1,1)   S(T2,2)   S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)       \
+ S(T8,8)   S(T9,9)   S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)      \
+ S(TF,15)  S(TG,16)  S(TH,17)   S(TI,18)   S(TJ,19)   S(TK,20)   S(TL,21)      \
+ S(TM,22)  S(TN,23)  S(TO,24)   S(TP,25)   S(TQ,26)   S(TR,27)
+
+#define  CFARGT14FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)           \
+ F(T1,1,0) F(T2,2,1) F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)     \
+ F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)    \
+ M       CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define  CFARGT27FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+ F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
+ F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
+ F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1)  \
+ F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1)             \
+ M       CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+
+#if !(defined(PowerStationFortran)||defined(hpuxFortran800))
+/*  Old CFARGT14 -> CFARGT14FS as seen below, for Absoft cross-compile yields:
+      SunOS> cc -c -Xa -DAbsoftUNIXFortran c.c
+      "c.c", line 406: warning: argument mismatch
+    Haven't checked if this is ANSI C or a SunOS bug. SunOS -Xs works ok.
+    Behavior is most clearly seen in example:
+      #define A 1 , 2
+      #define  C(X,Y,Z) x=X. y=Y. z=Z.
+      #define  D(X,Y,Z) C(X,Y,Z)
+      D(x,A,z)
+    Output from preprocessor is: x = x . y = 1 . z = 2 .
+ #define CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
+       CFARGT14FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+*/
+#define  CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)             \
+ F(T1,1,0) F(T2,2,1) F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)     \
+ F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)    \
+ M       CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define  CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+ F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
+ F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
+ F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1)  \
+ F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1)             \
+ M       CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+
+#define  CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+ F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
+ F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
+ F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1)             \
+ S(T1,1)    S(T2,2)    S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)     \
+ S(T8,8)    S(T9,9)    S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)    \
+ S(TF,15)   S(TG,16)   S(TH,17)   S(TI,18)   S(TJ,19)   S(TK,20)
+#define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
+ F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1) F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
+ F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1) F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
+ F(TD,AD,13,1) F(TE,AE,14,1) S(T1,1)      S(T2,2)       S(T3,3)       S(T4,4)       \
+ S(T5,5)       S(T6,6)       S(T7,7)      S(T8,8)       S(T9,9)       S(TA,10)      \
+ S(TB,11)      S(TC,12)      S(TD,13)     S(TE,14)
+#if MAX_PREPRO_ARGS>31
+#define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
+ F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1)  F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
+ F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1)  F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
+ F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
+ F(TJ,AJ,19,1) F(TK,AK,20,1) S(T1,1)       S(T2,2)       S(T3,3)       S(T4,4)       \
+ S(T5,5)       S(T6,6)       S(T7,7)       S(T8,8)       S(T9,9)       S(TA,10)      \
+ S(TB,11)      S(TC,12)      S(TD,13)      S(TE,14)      S(TF,15)      S(TG,16)      \
+ S(TH,17)      S(TI,18)      S(TJ,19)      S(TK,20)
+#define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
+ F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1)  F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
+ F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1)  F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
+ F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
+ F(TJ,AJ,19,1) F(TK,AK,20,1) F(TL,AL,21,1) F(TM,AM,22,1) F(TN,AN,23,1) F(TO,AO,24,1) \
+ F(TP,AP,25,1) F(TQ,AQ,26,1) F(TR,AR,27,1) S(T1,1)       S(T2,2)       S(T3,3)       \
+ S(T4,4)       S(T5,5)       S(T6,6)       S(T7,7)       S(T8,8)       S(T9,9)       \
+ S(TA,10)      S(TB,11)      S(TC,12)      S(TD,13)      S(TE,14)      S(TF,15)      \
+ S(TG,16)      S(TH,17)      S(TI,18)      S(TJ,19)      S(TK,20)      S(TL,21)      \
+ S(TM,22)      S(TN,23)      S(TO,24)      S(TP,25)      S(TQ,26)      S(TR,27)
+#endif
+#else
+#define  CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)             \
+ F(T1,1,0) S(T1,1) F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
+ F(T5,5,1) S(T5,5) F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
+ F(T9,9,1) S(T9,9) F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
+ F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14)
+#define  CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+ F(T1,1,0)  S(T1,1)  F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
+ F(T5,5,1)  S(T5,5)  F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
+ F(T9,9,1)  S(T9,9)  F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
+ F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
+ F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20) \
+ F(TL,21,1) S(TL,21) F(TM,22,1) S(TM,22) F(TN,23,1) S(TN,23) F(TO,24,1) S(TO,24) \
+ F(TP,25,1) S(TP,25) F(TQ,26,1) S(TQ,26) F(TR,27,1) S(TR,27)
+
+#define  CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+ F(T1,1,0)  S(T1,1)  F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
+ F(T5,5,1)  S(T5,5)  F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
+ F(T9,9,1)  S(T9,9)  F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
+ F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
+ F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20)
+#define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
+ F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
+ F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
+ F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
+ F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
+ F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14)
+#if MAX_PREPRO_ARGS>31
+#define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
+ F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
+ F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
+ F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
+ F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
+ F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15)          \
+ F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18)          \
+ F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20)                
+#define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
+ F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
+ F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
+ F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
+ F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
+ F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15)          \
+ F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18)          \
+ F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20) F(TL,AL,21,1) S(TL,21)          \
+ F(TM,AM,22,1) S(TM,22) F(TN,AN,23,1) S(TN,23) F(TO,AO,24,1) S(TO,24)          \
+ F(TP,AP,25,1) S(TP,25) F(TQ,AQ,26,1) S(TQ,26) F(TR,AR,27,1) S(TR,27)
+#endif
+#endif
+
+
+#define PROTOCCALLSFSUB1( UN,LN,T1) \
+        PROTOCCALLSFSUB14(UN,LN,T1,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB2( UN,LN,T1,T2) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB3( UN,LN,T1,T2,T3) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB4( UN,LN,T1,T2,T3,T4) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
+#define PROTOCCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
+
+
+#define PROTOCCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
+#define PROTOCCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
+
+#define PROTOCCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
+#define PROTOCCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
+
+
+#ifndef FCALLSC_QUALIFIER
+#ifdef VISUAL_CPLUSPLUS
+#define FCALLSC_QUALIFIER __stdcall
+#else
+#define FCALLSC_QUALIFIER
+#endif
+#endif
+
+#ifdef __cplusplus
+#define CFextern extern "C"
+#else
+#define CFextern extern
+#endif
+
+
+#ifdef CFSUBASFUN
+#define PROTOCCALLSFSUB0(UN,LN) \
+   PROTOCCALLSFFUN0( VOID,UN,LN)
+#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
+   PROTOCCALLSFFUN14(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
+   PROTOCCALLSFFUN20(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
+#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
+   PROTOCCALLSFFUN27(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+#else
+/* Note: Prevent compiler warnings, null #define PROTOCCALLSFSUB14/20 after 
+   #include-ing cfortran.h if calling the FORTRAN wrapper within the same 
+   source code where the wrapper is created. */
+#define PROTOCCALLSFSUB0(UN,LN)     _(VOID,_cfPU)(CFC_(UN,LN))();
+#ifndef __CF__KnR
+#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
+ _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT14(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) );
+#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
+ _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT20(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) );
+#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
+ _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT27(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) );
+#else
+#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)     \
+         PROTOCCALLSFSUB0(UN,LN)
+#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+         PROTOCCALLSFSUB0(UN,LN)
+#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+         PROTOCCALLSFSUB0(UN,LN)
+#endif
+#endif
+
+
+#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
+#pragma standard
+#endif
+
+
+#define CCALLSFSUB1( UN,LN,T1,                        A1)         \
+        CCALLSFSUB5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
+#define CCALLSFSUB2( UN,LN,T1,T2,                     A1,A2)      \
+        CCALLSFSUB5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
+#define CCALLSFSUB3( UN,LN,T1,T2,T3,                  A1,A2,A3)   \
+        CCALLSFSUB5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
+#define CCALLSFSUB4( UN,LN,T1,T2,T3,T4,               A1,A2,A3,A4)\
+        CCALLSFSUB5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
+#define CCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5,            A1,A2,A3,A4,A5)          \
+        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
+#define CCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6,         A1,A2,A3,A4,A5,A6)       \
+        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
+#define CCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7,      A1,A2,A3,A4,A5,A6,A7)    \
+        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
+#define CCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,   A1,A2,A3,A4,A5,A6,A7,A8) \
+        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
+#define CCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
+        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
+#define CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
+        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
+#define CCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
+        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
+#define CCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
+        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
+#define CCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
+        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
+
+#ifdef __cplusplus
+#define CPPPROTOCLSFSUB0( UN,LN)
+#define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
+#define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+#else
+#define CPPPROTOCLSFSUB0(UN,LN) \
+        PROTOCCALLSFSUB0(UN,LN)
+#define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)     \
+        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
+#define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+#endif
+
+#ifdef CFSUBASFUN
+#define CCALLSFSUB0(UN,LN) CCALLSFFUN0(UN,LN)
+#define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
+        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)
+#else
+/* do{...}while(0) allows if(a==b) FORT(); else BORT(); */
+#define CCALLSFSUB0( UN,LN) do{CPPPROTOCLSFSUB0(UN,LN) CFC_(UN,LN)();}while(0)
+#define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
+do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5)  \
+   VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,B10) \
+   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14)             \
+   CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)          \
+   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)                           \
+   ACF(LN,T4,A4,4)  ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)          \
+   ACF(LN,T8,A8,8)  ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11)         \
+   ACF(LN,TC,AC,12) ACF(LN,TD,AD,13) ACF(LN,TE,AE,14)                          \
+   CFC_(UN,LN)( CFARGTA14(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) );\
+   WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)        \
+   WCF(T6,A6,6)  WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10)       \
+   WCF(TB,AB,11) WCF(TC,AC,12) WCF(TD,AD,13) WCF(TE,AE,14)      }while(0)
+#endif
+
+
+#if MAX_PREPRO_ARGS>31
+#define CCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF)\
+        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,0,0,0,0,0)
+#define CCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG)\
+        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,0,0,0,0)
+#define CCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH)\
+        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,0,0,0)
+#define CCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI)\
+        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,0,0)
+#define CCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)\
+        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,0)
+
+#ifdef CFSUBASFUN
+#define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
+        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
+        CCALLSFFUN20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
+        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK)
+#else
+#define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
+        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
+do{VVCF(T1,A1,B1)  VVCF(T2,A2,B2)  VVCF(T3,A3,B3)  VVCF(T4,A4,B4)  VVCF(T5,A5,B5)   \
+   VVCF(T6,A6,B6)  VVCF(T7,A7,B7)  VVCF(T8,A8,B8)  VVCF(T9,A9,B9)  VVCF(TA,AA,B10)  \
+   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15)  \
+   VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20)  \
+   CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)  \
+   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)  ACF(LN,T4,A4,4)          \
+   ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)  ACF(LN,T8,A8,8)          \
+   ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12)         \
+   ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16)         \
+   ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20)         \
+   CFC_(UN,LN)( CFARGTA20(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) ); \
+ WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)  WCF(T6,A6,6)  \
+ WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
+ WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
+ WCF(TJ,AJ,19) WCF(TK,AK,20) }while(0)
+#endif
+#endif         /* MAX_PREPRO_ARGS */
+
+#if MAX_PREPRO_ARGS>31
+#define CCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,0,0,0,0,0,0)
+#define CCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,0,0,0,0,0)
+#define CCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,0,0,0,0)
+#define CCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,0,0,0)
+#define CCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,0,0)
+#define CCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ)\
+        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,0)
+
+#ifdef CFSUBASFUN
+#define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
+                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
+        CCALLSFFUN27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
+                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR)
+#else
+#define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
+                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
+do{VVCF(T1,A1,B1)  VVCF(T2,A2,B2)  VVCF(T3,A3,B3)  VVCF(T4,A4,B4)  VVCF(T5,A5,B5)   \
+   VVCF(T6,A6,B6)  VVCF(T7,A7,B7)  VVCF(T8,A8,B8)  VVCF(T9,A9,B9)  VVCF(TA,AA,B10)  \
+   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15)  \
+   VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20)  \
+   VVCF(TL,AL,B21) VVCF(TM,AM,B22) VVCF(TN,AN,B23) VVCF(TO,AO,B24) VVCF(TP,AP,B25)  \
+   VVCF(TQ,AQ,B26) VVCF(TR,AR,B27)                                                  \
+   CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)  ACF(LN,T4,A4,4)          \
+   ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)  ACF(LN,T8,A8,8)          \
+   ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12)         \
+   ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16)         \
+   ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20)         \
+   ACF(LN,TL,AL,21) ACF(LN,TM,AM,22) ACF(LN,TN,AN,23) ACF(LN,TO,AO,24)         \
+   ACF(LN,TP,AP,25) ACF(LN,TQ,AQ,26) ACF(LN,TR,AR,27)                          \
+   CFC_(UN,LN)( CFARGTA27(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,\
+                                   A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) ); \
+ WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)  WCF(T6,A6,6)  \
+ WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
+ WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
+ WCF(TJ,AJ,19) WCF(TK,AK,20) WCF(TL,AL,21) WCF(TM,AM,22) WCF(TN,AN,23) WCF(TO,AO,24) \
+ WCF(TP,AP,25) WCF(TQ,AQ,26) WCF(TR,AR,27) }while(0)
+#endif
+#endif         /* MAX_PREPRO_ARGS */
+
+/*-------------------------------------------------------------------------*/
+
+/*               UTILITIES FOR C TO CALL FORTRAN FUNCTIONS                 */
+
+/*N.B. PROTOCCALLSFFUNn(..) generates code, whether or not the FORTRAN
+  function is called. Therefore, especially for creator's of C header files
+  for large FORTRAN libraries which include many functions, to reduce
+  compile time and object code size, it may be desirable to create
+  preprocessor directives to allow users to create code for only those
+  functions which they use.                                                */
+
+/* The following defines the maximum length string that a function can return.
+   Of course it may be undefine-d and re-define-d before individual
+   PROTOCCALLSFFUNn(..) as required. It would also be nice to have this derived
+   from the individual machines' limits.                                      */
+#define MAX_LEN_FORTRAN_FUNCTION_STRING 0x4FE
+
+/* The following defines a character used by CFORTRAN.H to flag the end of a
+   string coming out of a FORTRAN routine.                                 */
+#define CFORTRAN_NON_CHAR 0x7F
+
+#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
+#pragma nostandard
+#endif
+
+#define _SEP_(TN,C,cfCOMMA)     _(__SEP_,C)(TN,cfCOMMA)
+#define __SEP_0(TN,cfCOMMA)  
+#define __SEP_1(TN,cfCOMMA)     _Icf(2,SEP,TN,cfCOMMA,0)
+#define        INT_cfSEP(T,B) _(A,B)
+#define       INTV_cfSEP(T,B) INT_cfSEP(T,B)
+#define      INTVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define     INTVVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define    INTVVVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define   INTVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define  INTVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define INTVVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
+#define       PINT_cfSEP(T,B) INT_cfSEP(T,B)
+#define      PVOID_cfSEP(T,B) INT_cfSEP(T,B)
+#define    ROUTINE_cfSEP(T,B) INT_cfSEP(T,B)
+#define     SIMPLE_cfSEP(T,B) INT_cfSEP(T,B)
+#define       VOID_cfSEP(T,B) INT_cfSEP(T,B)    /* For FORTRAN calls C subr.s.*/
+#define     STRING_cfSEP(T,B) INT_cfSEP(T,B)
+#define    STRINGV_cfSEP(T,B) INT_cfSEP(T,B)
+#define    PSTRING_cfSEP(T,B) INT_cfSEP(T,B)
+#define   PSTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
+#define   PNSTRING_cfSEP(T,B) INT_cfSEP(T,B)
+#define   PPSTRING_cfSEP(T,B) INT_cfSEP(T,B)
+#define    ZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
+#define   PZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
+                         
+#if defined(SIGNED_BYTE) || !defined(UNSIGNED_BYTE)
+#ifdef OLD_VAXC
+#define INTEGER_BYTE               char    /* Old VAXC barfs on 'signed char' */
+#else
+#define INTEGER_BYTE        signed char    /* default */
+#endif
+#else
+#define INTEGER_BYTE        unsigned char
+#endif
+#define    BYTEVVVVVVV_cfTYPE INTEGER_BYTE
+#define  DOUBLEVVVVVVV_cfTYPE DOUBLE_PRECISION 
+#define   FLOATVVVVVVV_cfTYPE FORTRAN_REAL
+#define     INTVVVVVVV_cfTYPE int
+#define LOGICALVVVVVVV_cfTYPE int
+#define    LONGVVVVVVV_cfTYPE long
+#define   SHORTVVVVVVV_cfTYPE short
+#define          PBYTE_cfTYPE INTEGER_BYTE
+#define        PDOUBLE_cfTYPE DOUBLE_PRECISION 
+#define         PFLOAT_cfTYPE FORTRAN_REAL
+#define           PINT_cfTYPE int
+#define       PLOGICAL_cfTYPE int
+#define          PLONG_cfTYPE long
+#define         PSHORT_cfTYPE short
+
+#define CFARGS0(A,T,V,W,X,Y,Z) _3(T,_cf,A)
+#define CFARGS1(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V)
+#define CFARGS2(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W)
+#define CFARGS3(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X)
+#define CFARGS4(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y)
+#define CFARGS5(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y,Z)
+
+#define  _Icf(N,T,I,X,Y)                 _(I,_cfINT)(N,T,I,X,Y,0)
+#define _Icf4(N,T,I,X,Y,Z)               _(I,_cfINT)(N,T,I,X,Y,Z)
+#define           BYTE_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define         DOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INT,B,X,Y,Z,0)
+#define          FLOAT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define            INT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define        LOGICAL_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define           LONG_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define          SHORT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
+#define          PBYTE_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define        PDOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,PINT,B,X,Y,Z,0)
+#define         PFLOAT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define           PINT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define       PLOGICAL_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define          PLONG_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define         PSHORT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
+#define          BYTEV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define         BYTEVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define        BYTEVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define       BYTEVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define      BYTEVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define     BYTEVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define    BYTEVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define        DOUBLEV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTV,B,X,Y,Z,0)
+#define       DOUBLEVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVV,B,X,Y,Z,0)
+#define      DOUBLEVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVV,B,X,Y,Z,0)
+#define     DOUBLEVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVV,B,X,Y,Z,0)
+#define    DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVV,B,X,Y,Z,0)
+#define   DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVV,B,X,Y,Z,0)
+#define  DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVVV,B,X,Y,Z,0)
+#define         FLOATV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define        FLOATVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define       FLOATVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define      FLOATVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define     FLOATVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define    FLOATVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define   FLOATVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define           INTV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define          INTVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define         INTVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define        INTVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define       INTVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define      INTVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define     INTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define       LOGICALV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define      LOGICALVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define     LOGICALVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define    LOGICALVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define   LOGICALVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define  LOGICALVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define LOGICALVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define          LONGV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define         LONGVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define        LONGVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define       LONGVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define      LONGVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define     LONGVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define    LONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define         SHORTV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
+#define        SHORTVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
+#define       SHORTVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
+#define      SHORTVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
+#define     SHORTVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
+#define    SHORTVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define   SHORTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
+#define          PVOID_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,B,B,X,Y,Z,0)
+#define        ROUTINE_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+/*CRAY coughs on the first,
+  i.e. the usual trouble of not being able to
+  define macros to macros with arguments. 
+  New ultrix is worse, it coughs on all such uses.
+ */
+/*#define       SIMPLE_cfINT                    PVOID_cfINT*/
+#define         SIMPLE_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define           VOID_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define         STRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define        STRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define        PSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define       PSTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define       PNSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define       PPSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define        ZTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define       PZTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
+#define           CF_0_cfINT(N,A,B,X,Y,Z)
+                         
+
+#define   UCF(TN,I,C)  _SEP_(TN,C,cfCOMMA) _Icf(2,U,TN,_(A,I),0)
+#define  UUCF(TN,I,C)  _SEP_(TN,C,cfCOMMA) _SEP_(TN,1,I) 
+#define UUUCF(TN,I,C)  _SEP_(TN,C,cfCOLON) _Icf(2,U,TN,_(A,I),0)
+#define        INT_cfU(T,A) _(T,VVVVVVV_cfTYPE)   A
+#define       INTV_cfU(T,A) _(T,VVVVVV_cfTYPE)  * A
+#define      INTVV_cfU(T,A) _(T,VVVVV_cfTYPE)   * A
+#define     INTVVV_cfU(T,A) _(T,VVVV_cfTYPE)    * A
+#define    INTVVVV_cfU(T,A) _(T,VVV_cfTYPE)     * A
+#define   INTVVVVV_cfU(T,A) _(T,VV_cfTYPE)      * A
+#define  INTVVVVVV_cfU(T,A) _(T,V_cfTYPE)       * A
+#define INTVVVVVVV_cfU(T,A) _(T,_cfTYPE)        * A
+#define       PINT_cfU(T,A) _(T,_cfTYPE)        * A
+#define      PVOID_cfU(T,A) void  *A 
+#define    ROUTINE_cfU(T,A) void (*A)(CF_NULL_PROTO) 
+#define       VOID_cfU(T,A) void   A    /* Needed for C calls FORTRAN sub.s.  */
+#define     STRING_cfU(T,A) char  *A    /*            via VOID and wrapper.   */
+#define    STRINGV_cfU(T,A) char  *A
+#define    PSTRING_cfU(T,A) char  *A
+#define   PSTRINGV_cfU(T,A) char  *A
+#define    ZTRINGV_cfU(T,A) char  *A
+#define   PZTRINGV_cfU(T,A) char  *A
+
+/* VOID breaks U into U and UU. */
+#define       INT_cfUU(T,A) _(T,VVVVVVV_cfTYPE) A
+#define      VOID_cfUU(T,A)             /* Needed for FORTRAN calls C sub.s.  */
+#define    STRING_cfUU(T,A) char *A 
+
+
+#define      BYTE_cfPU(A)   CFextern INTEGER_BYTE      FCALLSC_QUALIFIER A
+#define    DOUBLE_cfPU(A)   CFextern DOUBLE_PRECISION  FCALLSC_QUALIFIER A
+#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
+#define     FLOAT_cfPU(A)   CFextern FORTRAN_REAL      FCALLSC_QUALIFIER A
+#else				   	                   
+#define     FLOAT_cfPU(A)   CFextern FLOATFUNCTIONTYPE FCALLSC_QUALIFIER A
+#endif				   	                   
+#define       INT_cfPU(A)   CFextern int   FCALLSC_QUALIFIER   A
+#define   LOGICAL_cfPU(A)   CFextern int   FCALLSC_QUALIFIER   A
+#define      LONG_cfPU(A)   CFextern long  FCALLSC_QUALIFIER   A
+#define     SHORT_cfPU(A)   CFextern short FCALLSC_QUALIFIER   A
+#define    STRING_cfPU(A)   CFextern void  FCALLSC_QUALIFIER   A
+#define      VOID_cfPU(A)   CFextern void  FCALLSC_QUALIFIER   A
+
+#define    BYTE_cfE INTEGER_BYTE     A0;
+#define  DOUBLE_cfE DOUBLE_PRECISION A0;
+#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
+#define   FLOAT_cfE FORTRAN_REAL  A0;
+#else
+#define   FLOAT_cfE FORTRAN_REAL AA0;   FLOATFUNCTIONTYPE A0;
+#endif
+#define     INT_cfE int    A0;
+#define LOGICAL_cfE int    A0;
+#define    LONG_cfE long   A0;
+#define   SHORT_cfE short  A0;
+#define    VOID_cfE
+#ifdef vmsFortran
+#define  STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];        \
+                       static fstring A0 =                                     \
+             {MAX_LEN_FORTRAN_FUNCTION_STRING,DSC$K_DTYPE_T,DSC$K_CLASS_S,AA0};\
+               memset(AA0, CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
+                                    *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
+#else
+#ifdef CRAYFortran
+#define  STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];        \
+                   static _fcd A0; *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';\
+                memset(AA0,CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
+                            A0 = _cptofcd(AA0,MAX_LEN_FORTRAN_FUNCTION_STRING);
+#else
+/* 'cc: SC3.0.1 13 Jul 1994' barfs on char A0[0x4FE+1]; 
+ * char A0[0x4FE +1]; char A0[1+0x4FE]; are both OK.     */
+#define STRING_cfE static char A0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];          \
+                       memset(A0, CFORTRAN_NON_CHAR,                           \
+                              MAX_LEN_FORTRAN_FUNCTION_STRING);                \
+                       *(A0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
+#endif
+#endif
+/* ESTRING must use static char. array which is guaranteed to exist after
+   function returns.                                                     */
+
+/* N.B.i) The diff. for 0 (Zero) and >=1 arguments.
+       ii)That the following create an unmatched bracket, i.e. '(', which
+          must of course be matched in the call.
+       iii)Commas must be handled very carefully                         */
+#define    INT_cfGZ(T,UN,LN) A0=CFC_(UN,LN)(
+#define   VOID_cfGZ(T,UN,LN)    CFC_(UN,LN)(
+#ifdef vmsFortran
+#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)(&A0
+#else
+#if defined(CRAYFortran) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
+#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)( A0
+#else
+#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)( A0,MAX_LEN_FORTRAN_FUNCTION_STRING
+#endif
+#endif
+
+#define     INT_cfG(T,UN,LN)    INT_cfGZ(T,UN,LN)
+#define    VOID_cfG(T,UN,LN)   VOID_cfGZ(T,UN,LN)
+#define  STRING_cfG(T,UN,LN) STRING_cfGZ(T,UN,LN), /*, is only diff. from _cfG*/
+
+#define    BYTEVVVVVVV_cfPP
+#define     INTVVVVVVV_cfPP     /* These complement FLOATVVVVVVV_cfPP. */
+#define  DOUBLEVVVVVVV_cfPP
+#define LOGICALVVVVVVV_cfPP
+#define    LONGVVVVVVV_cfPP
+#define   SHORTVVVVVVV_cfPP
+#define          PBYTE_cfPP
+#define           PINT_cfPP
+#define        PDOUBLE_cfPP
+#define       PLOGICAL_cfPP
+#define          PLONG_cfPP
+#define         PSHORT_cfPP
+#define         PFLOAT_cfPP FLOATVVVVVVV_cfPP
+
+#define BCF(TN,AN,C)        _SEP_(TN,C,cfCOMMA) _Icf(2,B,TN,AN,0)
+#define        INT_cfB(T,A) (_(T,VVVVVVV_cfTYPE)) A
+#define       INTV_cfB(T,A)            A
+#define      INTVV_cfB(T,A)           (A)[0]
+#define     INTVVV_cfB(T,A)           (A)[0][0]
+#define    INTVVVV_cfB(T,A)           (A)[0][0][0]
+#define   INTVVVVV_cfB(T,A)           (A)[0][0][0][0]
+#define  INTVVVVVV_cfB(T,A)           (A)[0][0][0][0][0]
+#define INTVVVVVVV_cfB(T,A)           (A)[0][0][0][0][0][0]
+#define       PINT_cfB(T,A) _(T,_cfPP)&A
+#define     STRING_cfB(T,A) (char *)   A
+#define    STRINGV_cfB(T,A) (char *)   A
+#define    PSTRING_cfB(T,A) (char *)   A
+#define   PSTRINGV_cfB(T,A) (char *)   A
+#define      PVOID_cfB(T,A) (void *)   A
+#define    ROUTINE_cfB(T,A) (cfCAST_FUNCTION)A
+#define    ZTRINGV_cfB(T,A) (char *)   A
+#define   PZTRINGV_cfB(T,A) (char *)   A
+                                                              	
+#define SCF(TN,NAME,I,A)    _(TN,_cfSTR)(3,S,NAME,I,A,0,0)
+#define  DEFAULT_cfS(M,I,A)
+#define  LOGICAL_cfS(M,I,A)
+#define PLOGICAL_cfS(M,I,A)
+#define   STRING_cfS(M,I,A) ,sizeof(A)
+#define  STRINGV_cfS(M,I,A) ,( (unsigned)0xFFFF*firstindexlength(A) \
+                              +secondindexlength(A))
+#define  PSTRING_cfS(M,I,A) ,sizeof(A)
+#define PSTRINGV_cfS(M,I,A) STRINGV_cfS(M,I,A)
+#define  ZTRINGV_cfS(M,I,A)
+#define PZTRINGV_cfS(M,I,A)
+
+#define   HCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOMMA, H,_(C,I),0,0)
+#define  HHCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOMMA,HH,_(C,I),0,0)
+#define HHHCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOLON, H,_(C,I),0,0)
+#define  H_CF_SPECIAL       unsigned
+#define HH_CF_SPECIAL
+#define  DEFAULT_cfH(M,I,A)
+#define  LOGICAL_cfH(S,U,B)
+#define PLOGICAL_cfH(S,U,B)
+#define   STRING_cfH(S,U,B) _(A,S) _(U,_CF_SPECIAL) B
+#define  STRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
+#define  PSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
+#define PSTRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
+#define PNSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
+#define PPSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
+#define  ZTRINGV_cfH(S,U,B)
+#define PZTRINGV_cfH(S,U,B)
+
+/* Need VOID_cfSTR because Absoft forced function types go through _cfSTR. */
+/* No spaces inside expansion. They screws up macro catenation kludge.     */
+#define           VOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define           BYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         DOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          FLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define            INT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        LOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,LOGICAL,A,B,C,D,E)
+#define           LONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          SHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          BYTEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         BYTEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        BYTEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       BYTEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      BYTEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     BYTEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    BYTEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        DOUBLEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       DOUBLEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      DOUBLEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     DOUBLEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    DOUBLEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define   DOUBLEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define  DOUBLEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         FLOATV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        FLOATVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       FLOATVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      FLOATVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     FLOATVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    FLOATVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define   FLOATVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define           INTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          INTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         INTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        INTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       INTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      INTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     INTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       LOGICALV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      LOGICALVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     LOGICALVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    LOGICALVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define   LOGICALVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define  LOGICALVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define LOGICALVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          LONGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         LONGVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        LONGVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       LONGVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      LONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     LONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    LONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         SHORTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        SHORTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       SHORTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define      SHORTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define     SHORTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define    SHORTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define   SHORTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define          PBYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        PDOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         PFLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define           PINT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define       PLOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PLOGICAL,A,B,C,D,E)
+#define          PLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         PSHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         STRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRING,A,B,C,D,E)
+#define        PSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRING,A,B,C,D,E)
+#define        STRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRINGV,A,B,C,D,E)
+#define       PSTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRINGV,A,B,C,D,E)
+#define       PNSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PNSTRING,A,B,C,D,E)
+#define       PPSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PPSTRING,A,B,C,D,E)
+#define          PVOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        ROUTINE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define         SIMPLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
+#define        ZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,ZTRINGV,A,B,C,D,E)
+#define       PZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PZTRINGV,A,B,C,D,E)
+#define           CF_0_cfSTR(N,T,A,B,C,D,E)
+
+/* See ACF table comments, which explain why CCF was split into two. */
+#define CCF(NAME,TN,I)     _(TN,_cfSTR)(5,C,NAME,I,_(A,I),_(B,I),_(C,I))
+#define  DEFAULT_cfC(M,I,A,B,C)
+#define  LOGICAL_cfC(M,I,A,B,C)  A=C2FLOGICAL( A);
+#define PLOGICAL_cfC(M,I,A,B,C) *A=C2FLOGICAL(*A);
+#ifdef vmsFortran
+#define   STRING_cfC(M,I,A,B,C) (B.clen=strlen(A),B.f.dsc$a_pointer=A,         \
+        C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.f.dsc$w_length=B.clen:     \
+          (memset((A)+B.clen,' ',C-B.clen-1),A[B.f.dsc$w_length=C-1]='\0'));
+      /* PSTRING_cfC to beware of array A which does not contain any \0.      */
+#define  PSTRING_cfC(M,I,A,B,C) (B.dsc$a_pointer=A, C==sizeof(char*) ?         \
+             B.dsc$w_length=strlen(A):  (A[C-1]='\0',B.dsc$w_length=strlen(A), \
+       memset((A)+B.dsc$w_length,' ',C-B.dsc$w_length-1), B.dsc$w_length=C-1));
+#else
+#define   STRING_cfC(M,I,A,B,C) (B.clen=strlen(A),                             \
+                C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.flen=B.clen:       \
+                        (memset((A)+B.clen,' ',C-B.clen-1),A[B.flen=C-1]='\0'));
+#define  PSTRING_cfC(M,I,A,B,C) (C==sizeof(char*)? B=strlen(A):                \
+                    (A[C-1]='\0',B=strlen(A),memset((A)+B,' ',C-B-1),B=C-1));
+#endif
+          /* For CRAYFortran for (P)STRINGV_cfC, B.fs is set, but irrelevant. */
+#define  STRINGV_cfC(M,I,A,B,C) \
+        AATRINGV_cfA(    A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
+#define PSTRINGV_cfC(M,I,A,B,C) \
+       APATRINGV_cfA(    A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
+#define  ZTRINGV_cfC(M,I,A,B,C) \
+        AATRINGV_cfA(    A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1),       \
+                              (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1   )
+#define PZTRINGV_cfC(M,I,A,B,C) \
+       APATRINGV_cfA(    A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1),       \
+                              (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1   )
+
+#define     BYTE_cfCCC(A,B) &A
+#define   DOUBLE_cfCCC(A,B) &A
+#if !defined(__CF__KnR)
+#define    FLOAT_cfCCC(A,B) &A
+                               /* Although the VAX doesn't, at least the      */
+#else                          /* HP and K&R mips promote float arg.'s of     */
+#define    FLOAT_cfCCC(A,B) &B /* unprototyped functions to double. Cannot    */
+#endif                         /* use A here to pass the argument to FORTRAN. */
+#define      INT_cfCCC(A,B) &A
+#define  LOGICAL_cfCCC(A,B) &A
+#define     LONG_cfCCC(A,B) &A
+#define    SHORT_cfCCC(A,B) &A
+#define    PBYTE_cfCCC(A,B)  A
+#define  PDOUBLE_cfCCC(A,B)  A
+#define   PFLOAT_cfCCC(A,B)  A
+#define     PINT_cfCCC(A,B)  A
+#define PLOGICAL_cfCCC(A,B)  B=A       /* B used to keep a common W table. */
+#define    PLONG_cfCCC(A,B)  A
+#define   PSHORT_cfCCC(A,B)  A
+
+#define CCCF(TN,I,M)           _SEP_(TN,M,cfCOMMA) _Icf(3,CC,TN,_(A,I),_(B,I))
+#define        INT_cfCC(T,A,B) _(T,_cfCCC)(A,B) 
+#define       INTV_cfCC(T,A,B)  A
+#define      INTVV_cfCC(T,A,B)  A
+#define     INTVVV_cfCC(T,A,B)  A
+#define    INTVVVV_cfCC(T,A,B)  A
+#define   INTVVVVV_cfCC(T,A,B)  A
+#define  INTVVVVVV_cfCC(T,A,B)  A
+#define INTVVVVVVV_cfCC(T,A,B)  A
+#define       PINT_cfCC(T,A,B) _(T,_cfCCC)(A,B) 
+#define      PVOID_cfCC(T,A,B)  A
+#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
+#define    ROUTINE_cfCC(T,A,B) &A
+#else
+#define    ROUTINE_cfCC(T,A,B)  A
+#endif
+#define     SIMPLE_cfCC(T,A,B)  A
+#ifdef vmsFortran
+#define     STRING_cfCC(T,A,B) &B.f
+#define    STRINGV_cfCC(T,A,B) &B
+#define    PSTRING_cfCC(T,A,B) &B
+#define   PSTRINGV_cfCC(T,A,B) &B
+#else
+#ifdef CRAYFortran
+#define     STRING_cfCC(T,A,B) _cptofcd(A,B.flen)
+#define    STRINGV_cfCC(T,A,B) _cptofcd(B.s,B.flen)
+#define    PSTRING_cfCC(T,A,B) _cptofcd(A,B)
+#define   PSTRINGV_cfCC(T,A,B) _cptofcd(A,B.flen)
+#else
+#define     STRING_cfCC(T,A,B)  A
+#define    STRINGV_cfCC(T,A,B)  B.fs
+#define    PSTRING_cfCC(T,A,B)  A
+#define   PSTRINGV_cfCC(T,A,B)  B.fs
+#endif
+#endif
+#define    ZTRINGV_cfCC(T,A,B)   STRINGV_cfCC(T,A,B)
+#define   PZTRINGV_cfCC(T,A,B)  PSTRINGV_cfCC(T,A,B)
+
+#define    BYTE_cfX  return A0;
+#define  DOUBLE_cfX  return A0;
+#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
+#define   FLOAT_cfX  return A0;
+#else
+#define   FLOAT_cfX  ASSIGNFLOAT(AA0,A0); return AA0;
+#endif
+#define     INT_cfX  return A0;
+#define LOGICAL_cfX  return F2CLOGICAL(A0);
+#define    LONG_cfX  return A0;
+#define   SHORT_cfX  return A0;
+#define    VOID_cfX  return   ;
+#if defined(vmsFortran) || defined(CRAYFortran)
+#define  STRING_cfX  return kill_trailing(                                     \
+                                      kill_trailing(AA0,CFORTRAN_NON_CHAR),' ');
+#else
+#define  STRING_cfX  return kill_trailing(                                     \
+                                      kill_trailing( A0,CFORTRAN_NON_CHAR),' ');
+#endif
+
+#define CFFUN(NAME) _(__cf__,NAME)
+
+/* Note that we don't use LN here, but we keep it for consistency. */
+#define CCALLSFFUN0(UN,LN) CFFUN(UN)()
+
+#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
+#pragma standard
+#endif
+
+#define CCALLSFFUN1( UN,LN,T1,                        A1)         \
+        CCALLSFFUN5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
+#define CCALLSFFUN2( UN,LN,T1,T2,                     A1,A2)      \
+        CCALLSFFUN5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
+#define CCALLSFFUN3( UN,LN,T1,T2,T3,                  A1,A2,A3)   \
+        CCALLSFFUN5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
+#define CCALLSFFUN4( UN,LN,T1,T2,T3,T4,               A1,A2,A3,A4)\
+        CCALLSFFUN5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
+#define CCALLSFFUN5( UN,LN,T1,T2,T3,T4,T5,            A1,A2,A3,A4,A5)          \
+        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
+#define CCALLSFFUN6( UN,LN,T1,T2,T3,T4,T5,T6,         A1,A2,A3,A4,A5,A6)       \
+        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
+#define CCALLSFFUN7( UN,LN,T1,T2,T3,T4,T5,T6,T7,      A1,A2,A3,A4,A5,A6,A7)    \
+        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
+#define CCALLSFFUN8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,   A1,A2,A3,A4,A5,A6,A7,A8) \
+        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
+#define CCALLSFFUN9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
+        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
+#define CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
+        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
+#define CCALLSFFUN11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
+        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
+#define CCALLSFFUN12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
+        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
+#define CCALLSFFUN13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
+        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
+
+#define CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
+((CFFUN(UN)(  BCF(T1,A1,0) BCF(T2,A2,1) BCF(T3,A3,1) BCF(T4,A4,1) BCF(T5,A5,1) \
+              BCF(T6,A6,1) BCF(T7,A7,1) BCF(T8,A8,1) BCF(T9,A9,1) BCF(TA,AA,1) \
+              BCF(TB,AB,1) BCF(TC,AC,1) BCF(TD,AD,1) BCF(TE,AE,1)              \
+           SCF(T1,LN,1,A1)  SCF(T2,LN,2,A2)  SCF(T3,LN,3,A3)  SCF(T4,LN,4,A4)  \
+           SCF(T5,LN,5,A5)  SCF(T6,LN,6,A6)  SCF(T7,LN,7,A7)  SCF(T8,LN,8,A8)  \
+           SCF(T9,LN,9,A9)  SCF(TA,LN,10,AA) SCF(TB,LN,11,AB) SCF(TC,LN,12,AC) \
+           SCF(TD,LN,13,AD) SCF(TE,LN,14,AE))))
+
+/*  N.B. Create a separate function instead of using (call function, function
+value here) because in order to create the variables needed for the input
+arg.'s which may be const.'s one has to do the creation within {}, but these
+can never be placed within ()'s. Therefore one must create wrapper functions.
+gcc, on the other hand may be able to avoid the wrapper functions. */
+
+/* Prototypes are needed to correctly handle the value returned correctly. N.B.
+Can only have prototype arg.'s with difficulty, a la G... table since FORTRAN
+functions returning strings have extra arg.'s. Don't bother, since this only
+causes a compiler warning to come up when one uses FCALLSCFUNn and CCALLSFFUNn
+for the same function in the same source code. Something done by the experts in
+debugging only.*/    
+
+#define PROTOCCALLSFFUN0(F,UN,LN)                                              \
+_(F,_cfPU)( CFC_(UN,LN))(CF_NULL_PROTO);                                       \
+static _Icf(2,U,F,CFFUN(UN),0)() {_(F,_cfE) _Icf(3,GZ,F,UN,LN) ABSOFT_cf1(F));_(F,_cfX)}
+
+#define PROTOCCALLSFFUN1( T0,UN,LN,T1)                                         \
+        PROTOCCALLSFFUN5 (T0,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN2( T0,UN,LN,T1,T2)                                      \
+        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN3( T0,UN,LN,T1,T2,T3)                                   \
+        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,CF_0,CF_0)
+#define PROTOCCALLSFFUN4( T0,UN,LN,T1,T2,T3,T4)                                \
+        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,T4,CF_0)
+#define PROTOCCALLSFFUN5( T0,UN,LN,T1,T2,T3,T4,T5)                             \
+        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN6( T0,UN,LN,T1,T2,T3,T4,T5,T6)                          \
+        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN7( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7)                       \
+        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN8( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8)                    \
+        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
+#define PROTOCCALLSFFUN9( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9)                 \
+        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
+#define PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA)              \
+        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN11(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB)           \
+        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
+#define PROTOCCALLSFFUN12(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC)        \
+        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
+#define PROTOCCALLSFFUN13(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD)     \
+        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
+
+/* HP/UX 9.01 cc requires the blank between '_Icf(3,G,T0,UN,LN) CCCF(T1,1,0)' */
+
+#ifndef __CF__KnR
+#define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  \
+ _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)(     \
+   CFARGT14FS(UCF,HCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )          \
+{       CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    _(T0,_cfE) \
+ CCF(LN,T1,1)  CCF(LN,T2,2)  CCF(LN,T3,3)  CCF(LN,T4,4)  CCF(LN,T5,5)          \
+ CCF(LN,T6,6)  CCF(LN,T7,7)  CCF(LN,T8,8)  CCF(LN,T9,9)  CCF(LN,TA,10)         \
+ CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14)    _Icf(3,G,T0,UN,LN) \
+ CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
+ WCF(T1,A1,1)   WCF(T2,A2,2)   WCF(T3,A3,3)   WCF(T4,A4,4)  WCF(T5,A5,5)       \
+ WCF(T6,A6,6)   WCF(T7,A7,7)   WCF(T8,A8,8)   WCF(T9,A9,9)  WCF(TA,A10,10)     \
+ WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
+#else
+#define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  \
+ _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)(     \
+   CFARGT14FS(UUCF,HHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )        \
+ CFARGT14FS(UUUCF,HHHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ;        \
+{       CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    _(T0,_cfE) \
+ CCF(LN,T1,1)  CCF(LN,T2,2)  CCF(LN,T3,3)  CCF(LN,T4,4)  CCF(LN,T5,5)          \
+ CCF(LN,T6,6)  CCF(LN,T7,7)  CCF(LN,T8,8)  CCF(LN,T9,9)  CCF(LN,TA,10)         \
+ CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14)    _Icf(3,G,T0,UN,LN) \
+ CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
+ WCF(T1,A1,1)   WCF(T2,A2,2)   WCF(T3,A3,3)   WCF(T4,A4,4)   WCF(T5,A5,5)      \
+ WCF(T6,A6,6)   WCF(T7,A7,7)   WCF(T8,A8,8)   WCF(T9,A9,9)   WCF(TA,A10,10)    \
+ WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
+#endif
+
+/*-------------------------------------------------------------------------*/
+
+/*               UTILITIES FOR FORTRAN TO CALL C ROUTINES                  */
+
+#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
+#pragma nostandard
+#endif
+
+#if defined(vmsFortran) || defined(CRAYFortran)
+#define   DCF(TN,I)
+#define  DDCF(TN,I)
+#define DDDCF(TN,I)
+#else
+#define   DCF(TN,I)          HCF(TN,I)
+#define  DDCF(TN,I)         HHCF(TN,I)
+#define DDDCF(TN,I)        HHHCF(TN,I)
+#endif
+
+#define QCF(TN,I)       _(TN,_cfSTR)(1,Q,_(B,I), 0,0,0,0)
+#define  DEFAULT_cfQ(B)
+#define  LOGICAL_cfQ(B)
+#define PLOGICAL_cfQ(B)
+#define  STRINGV_cfQ(B) char *B; unsigned int _(B,N);
+#define   STRING_cfQ(B) char *B=NULL;
+#define  PSTRING_cfQ(B) char *B=NULL;
+#define PSTRINGV_cfQ(B) STRINGV_cfQ(B)
+#define PNSTRING_cfQ(B) char *B=NULL;
+#define PPSTRING_cfQ(B)
+
+#ifdef     __sgi   /* Else SGI gives warning 182 contrary to its C LRM A.17.7 */
+#define ROUTINE_orig    *(void**)& 
+#else
+#define ROUTINE_orig     (void *)  
+#endif
+
+#define ROUTINE_1     ROUTINE_orig   
+#define ROUTINE_2     ROUTINE_orig   
+#define ROUTINE_3     ROUTINE_orig   
+#define ROUTINE_4     ROUTINE_orig   
+#define ROUTINE_5     ROUTINE_orig   
+#define ROUTINE_6     ROUTINE_orig   
+#define ROUTINE_7     ROUTINE_orig   
+#define ROUTINE_8     ROUTINE_orig   
+#define ROUTINE_9     ROUTINE_orig   
+#define ROUTINE_10    ROUTINE_orig   
+#define ROUTINE_11    ROUTINE_orig   
+#define ROUTINE_12    ROUTINE_orig   
+#define ROUTINE_13    ROUTINE_orig   
+#define ROUTINE_14    ROUTINE_orig   
+#define ROUTINE_15    ROUTINE_orig   
+#define ROUTINE_16    ROUTINE_orig   
+#define ROUTINE_17    ROUTINE_orig   
+#define ROUTINE_18    ROUTINE_orig   
+#define ROUTINE_19    ROUTINE_orig   
+#define ROUTINE_20    ROUTINE_orig   
+#define ROUTINE_21    ROUTINE_orig   
+#define ROUTINE_22    ROUTINE_orig   
+#define ROUTINE_23    ROUTINE_orig   
+#define ROUTINE_24    ROUTINE_orig   
+#define ROUTINE_25    ROUTINE_orig   
+#define ROUTINE_26    ROUTINE_orig   
+#define ROUTINE_27    ROUTINE_orig   
+
+#define TCF(NAME,TN,I,M)              _SEP_(TN,M,cfCOMMA) _(TN,_cfT)(NAME,I,_(A,I),_(B,I),_(C,I))
+#define           BYTE_cfT(M,I,A,B,D) *A
+#define         DOUBLE_cfT(M,I,A,B,D) *A
+#define          FLOAT_cfT(M,I,A,B,D) *A
+#define            INT_cfT(M,I,A,B,D) *A
+#define        LOGICAL_cfT(M,I,A,B,D)  F2CLOGICAL(*A)
+#define           LONG_cfT(M,I,A,B,D) *A
+#define          SHORT_cfT(M,I,A,B,D) *A
+#define          BYTEV_cfT(M,I,A,B,D)  A
+#define        DOUBLEV_cfT(M,I,A,B,D)  A
+#define         FLOATV_cfT(M,I,A,B,D)  VOIDP A
+#define           INTV_cfT(M,I,A,B,D)  A
+#define       LOGICALV_cfT(M,I,A,B,D)  A
+#define          LONGV_cfT(M,I,A,B,D)  A
+#define         SHORTV_cfT(M,I,A,B,D)  A
+#define         BYTEVV_cfT(M,I,A,B,D)  (void *)A /* We have to cast to void *,*/
+#define        BYTEVVV_cfT(M,I,A,B,D)  (void *)A /* since we don't know the   */
+#define       BYTEVVVV_cfT(M,I,A,B,D)  (void *)A /* dimensions of the array.  */
+#define      BYTEVVVVV_cfT(M,I,A,B,D)  (void *)A /* i.e. Unfortunately, can't */
+#define     BYTEVVVVVV_cfT(M,I,A,B,D)  (void *)A /* check that the type       */
+#define    BYTEVVVVVVV_cfT(M,I,A,B,D)  (void *)A /* matches the prototype.    */
+#define       DOUBLEVV_cfT(M,I,A,B,D)  (void *)A
+#define      DOUBLEVVV_cfT(M,I,A,B,D)  (void *)A
+#define     DOUBLEVVVV_cfT(M,I,A,B,D)  (void *)A
+#define    DOUBLEVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define   DOUBLEVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define  DOUBLEVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define        FLOATVV_cfT(M,I,A,B,D)  (void *)A
+#define       FLOATVVV_cfT(M,I,A,B,D)  (void *)A
+#define      FLOATVVVV_cfT(M,I,A,B,D)  (void *)A
+#define     FLOATVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define    FLOATVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define   FLOATVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define          INTVV_cfT(M,I,A,B,D)  (void *)A  
+#define         INTVVV_cfT(M,I,A,B,D)  (void *)A  
+#define        INTVVVV_cfT(M,I,A,B,D)  (void *)A  
+#define       INTVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define      INTVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define     INTVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define      LOGICALVV_cfT(M,I,A,B,D)  (void *)A
+#define     LOGICALVVV_cfT(M,I,A,B,D)  (void *)A
+#define    LOGICALVVVV_cfT(M,I,A,B,D)  (void *)A
+#define   LOGICALVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define  LOGICALVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define LOGICALVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define         LONGVV_cfT(M,I,A,B,D)  (void *)A
+#define        LONGVVV_cfT(M,I,A,B,D)  (void *)A
+#define       LONGVVVV_cfT(M,I,A,B,D)  (void *)A
+#define      LONGVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define     LONGVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define    LONGVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define        SHORTVV_cfT(M,I,A,B,D)  (void *)A
+#define       SHORTVVV_cfT(M,I,A,B,D)  (void *)A
+#define      SHORTVVVV_cfT(M,I,A,B,D)  (void *)A
+#define     SHORTVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define    SHORTVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define   SHORTVVVVVVV_cfT(M,I,A,B,D)  (void *)A
+#define          PBYTE_cfT(M,I,A,B,D)  A
+#define        PDOUBLE_cfT(M,I,A,B,D)  A
+#define         PFLOAT_cfT(M,I,A,B,D)  VOIDP A
+#define           PINT_cfT(M,I,A,B,D)  A
+#define       PLOGICAL_cfT(M,I,A,B,D)  ((*A=F2CLOGICAL(*A)),A)
+#define          PLONG_cfT(M,I,A,B,D)  A
+#define         PSHORT_cfT(M,I,A,B,D)  A
+#define          PVOID_cfT(M,I,A,B,D)  A
+#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
+#define        ROUTINE_cfT(M,I,A,B,D)  _(ROUTINE_,I)  (*A)
+#else
+#define        ROUTINE_cfT(M,I,A,B,D)  _(ROUTINE_,I)    A
+#endif
+/* A == pointer to the characters
+   D == length of the string, or of an element in an array of strings
+   E == number of elements in an array of strings                             */
+#define TTSTR(    A,B,D)                                                       \
+           ((B=_cf_malloc(D+1))[D]='\0', memcpy(B,A,D), kill_trailing(B,' '))
+#define TTTTSTR(  A,B,D)   (!(D<4||A[0]||A[1]||A[2]||A[3]))?NULL:              \
+                            memchr(A,'\0',D)                 ?A   : TTSTR(A,B,D)
+#define TTTTSTRV( A,B,D,E) (_(B,N)=E,B=_cf_malloc(_(B,N)*(D+1)), (void *)      \
+  vkill_trailing(f2cstrv(A,B,D+1, _(B,N)*(D+1)), D+1,_(B,N)*(D+1),' '))
+#ifdef vmsFortran
+#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
+#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(A->dsc$a_pointer, B,           \
+                                             A->dsc$w_length , A->dsc$l_m[0])
+#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
+#define       PPSTRING_cfT(M,I,A,B,D)           A->dsc$a_pointer
+#else
+#ifdef CRAYFortran
+#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( _fcdtocp(A),B,_fcdlen(A))
+#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(_fcdtocp(A),B,_fcdlen(A),      \
+                              num_elem(_fcdtocp(A),_fcdlen(A),_3(M,_STRV_A,I)))
+#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( _fcdtocp(A),B,_fcdlen(A))
+#define       PPSTRING_cfT(M,I,A,B,D)           _fcdtocp(A)
+#else
+#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( A,B,D)
+#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(A,B,D, num_elem(A,D,_3(M,_STRV_A,I)))
+#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( A,B,D)
+#define       PPSTRING_cfT(M,I,A,B,D)           A
+#endif
+#endif
+#define       PNSTRING_cfT(M,I,A,B,D)    STRING_cfT(M,I,A,B,D)
+#define       PSTRINGV_cfT(M,I,A,B,D)   STRINGV_cfT(M,I,A,B,D)
+#define           CF_0_cfT(M,I,A,B,D)
+
+#define RCF(TN,I)           _(TN,_cfSTR)(3,R,_(A,I),_(B,I),_(C,I),0,0)
+#define  DEFAULT_cfR(A,B,D)
+#define  LOGICAL_cfR(A,B,D)
+#define PLOGICAL_cfR(A,B,D) *A=C2FLOGICAL(*A);
+#define   STRING_cfR(A,B,D) if (B) _cf_free(B);
+#define  STRINGV_cfR(A,B,D) _cf_free(B);
+/* A and D as defined above for TSTRING(V) */
+#define RRRRPSTR( A,B,D)    if (B) memcpy(A,B, _cfMIN(strlen(B),D)),           \
+                  (D>strlen(B)?memset(A+strlen(B),' ', D-strlen(B)):0), _cf_free(B);
+#define RRRRPSTRV(A,B,D)    c2fstrv(B,A,D+1,(D+1)*_(B,N)), _cf_free(B);
+#ifdef vmsFortran
+#define  PSTRING_cfR(A,B,D) RRRRPSTR( A->dsc$a_pointer,B,A->dsc$w_length)
+#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A->dsc$a_pointer,B,A->dsc$w_length)
+#else
+#ifdef CRAYFortran
+#define  PSTRING_cfR(A,B,D) RRRRPSTR( _fcdtocp(A),B,_fcdlen(A))
+#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(_fcdtocp(A),B,_fcdlen(A))
+#else
+#define  PSTRING_cfR(A,B,D) RRRRPSTR( A,B,D)
+#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A,B,D)
+#endif
+#endif
+#define PNSTRING_cfR(A,B,D) PSTRING_cfR(A,B,D)
+#define PPSTRING_cfR(A,B,D)
+
+#define    BYTE_cfFZ(UN,LN) INTEGER_BYTE     FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define  DOUBLE_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define     INT_cfFZ(UN,LN) int   FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define LOGICAL_cfFZ(UN,LN) int   FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define    LONG_cfFZ(UN,LN) long  FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define   SHORT_cfFZ(UN,LN) short FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#define    VOID_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#ifndef __CF__KnR
+/* The void is req'd by the Apollo, to make this an ANSI function declaration.
+   The Apollo promotes K&R float functions to double. */
+#define   FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(void
+#ifdef vmsFortran
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(fstring *AS
+#else
+#ifdef CRAYFortran
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(_fcd     AS
+#else
+#if  defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(char    *AS
+#else
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(char    *AS, unsigned D0
+#endif
+#endif
+#endif
+#else
+#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
+#define   FLOAT_cfFZ(UN,LN) FORTRAN_REAL      FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#else
+#define   FLOAT_cfFZ(UN,LN) FLOATFUNCTIONTYPE FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#endif
+#if defined(vmsFortran) || defined(CRAYFortran) || defined(AbsoftUNIXFortran)
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(AS
+#else
+#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(AS, D0
+#endif
+#endif
+
+#define    BYTE_cfF(UN,LN)     BYTE_cfFZ(UN,LN)
+#define  DOUBLE_cfF(UN,LN)   DOUBLE_cfFZ(UN,LN)
+#ifndef __CF_KnR
+#define   FLOAT_cfF(UN,LN)  FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(
+#else
+#define   FLOAT_cfF(UN,LN)    FLOAT_cfFZ(UN,LN)
+#endif
+#define     INT_cfF(UN,LN)      INT_cfFZ(UN,LN)
+#define LOGICAL_cfF(UN,LN)  LOGICAL_cfFZ(UN,LN)
+#define    LONG_cfF(UN,LN)     LONG_cfFZ(UN,LN)
+#define   SHORT_cfF(UN,LN)    SHORT_cfFZ(UN,LN)
+#define    VOID_cfF(UN,LN)     VOID_cfFZ(UN,LN)
+#define  STRING_cfF(UN,LN)   STRING_cfFZ(UN,LN),
+
+#define     INT_cfFF
+#define    VOID_cfFF
+#ifdef vmsFortran
+#define  STRING_cfFF           fstring *AS; 
+#else
+#ifdef CRAYFortran
+#define  STRING_cfFF           _fcd     AS;
+#else
+#define  STRING_cfFF           char    *AS; unsigned D0;
+#endif
+#endif
+
+#define     INT_cfL            A0=
+#define  STRING_cfL            A0=
+#define    VOID_cfL                        
+
+#define    INT_cfK
+#define   VOID_cfK
+/* KSTRING copies the string into the position provided by the caller. */
+#ifdef vmsFortran
+#define STRING_cfK                                                             \
+ memcpy(AS->dsc$a_pointer,A0,_cfMIN(AS->dsc$w_length,(A0==NULL?0:strlen(A0))));\
+ AS->dsc$w_length>(A0==NULL?0:strlen(A0))?                                     \
+  memset(AS->dsc$a_pointer+(A0==NULL?0:strlen(A0)),' ',                        \
+         AS->dsc$w_length-(A0==NULL?0:strlen(A0))):0;
+#else
+#ifdef CRAYFortran
+#define STRING_cfK                                                             \
+ memcpy(_fcdtocp(AS),A0, _cfMIN(_fcdlen(AS),(A0==NULL?0:strlen(A0))) );        \
+ _fcdlen(AS)>(A0==NULL?0:strlen(A0))?                                          \
+  memset(_fcdtocp(AS)+(A0==NULL?0:strlen(A0)),' ',                             \
+         _fcdlen(AS)-(A0==NULL?0:strlen(A0))):0;
+#else
+#define STRING_cfK         memcpy(AS,A0, _cfMIN(D0,(A0==NULL?0:strlen(A0))) ); \
+                 D0>(A0==NULL?0:strlen(A0))?memset(AS+(A0==NULL?0:strlen(A0)), \
+                                            ' ', D0-(A0==NULL?0:strlen(A0))):0;
+#endif
+#endif
+
+/* Note that K.. and I.. can't be combined since K.. has to access data before
+R.., in order for functions returning strings which are also passed in as
+arguments to work correctly. Note that R.. frees and hence may corrupt the
+string. */
+#define    BYTE_cfI  return A0;
+#define  DOUBLE_cfI  return A0;
+#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
+#define   FLOAT_cfI  return A0;
+#else
+#define   FLOAT_cfI  RETURNFLOAT(A0);
+#endif
+#define     INT_cfI  return A0;
+#ifdef hpuxFortran800
+/* Incredibly, functions must return true as 1, elsewhere .true.==0x01000000. */
+#define LOGICAL_cfI  return ((A0)?1:0);
+#else
+#define LOGICAL_cfI  return C2FLOGICAL(A0);
+#endif
+#define    LONG_cfI  return A0;
+#define   SHORT_cfI  return A0;
+#define  STRING_cfI  return   ;
+#define    VOID_cfI  return   ;
+
+#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
+#pragma standard
+#endif
+
+#define FCALLSCSUB0( CN,UN,LN)             FCALLSCFUN0(VOID,CN,UN,LN)
+#define FCALLSCSUB1( CN,UN,LN,T1)          FCALLSCFUN1(VOID,CN,UN,LN,T1)
+#define FCALLSCSUB2( CN,UN,LN,T1,T2)       FCALLSCFUN2(VOID,CN,UN,LN,T1,T2)
+#define FCALLSCSUB3( CN,UN,LN,T1,T2,T3)    FCALLSCFUN3(VOID,CN,UN,LN,T1,T2,T3)
+#define FCALLSCSUB4( CN,UN,LN,T1,T2,T3,T4) \
+    FCALLSCFUN4(VOID,CN,UN,LN,T1,T2,T3,T4)
+#define FCALLSCSUB5( CN,UN,LN,T1,T2,T3,T4,T5) \
+    FCALLSCFUN5(VOID,CN,UN,LN,T1,T2,T3,T4,T5)
+#define FCALLSCSUB6( CN,UN,LN,T1,T2,T3,T4,T5,T6) \
+    FCALLSCFUN6(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6)       
+#define FCALLSCSUB7( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
+    FCALLSCFUN7(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7)
+#define FCALLSCSUB8( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
+    FCALLSCFUN8(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8)
+#define FCALLSCSUB9( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
+    FCALLSCFUN9(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9)
+#define FCALLSCSUB10(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
+   FCALLSCFUN10(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA)
+#define FCALLSCSUB11(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
+   FCALLSCFUN11(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB)
+#define FCALLSCSUB12(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
+   FCALLSCFUN12(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC)
+#define FCALLSCSUB13(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
+   FCALLSCFUN13(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD)
+#define FCALLSCSUB14(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
+   FCALLSCFUN14(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
+#define FCALLSCSUB15(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
+   FCALLSCFUN15(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF)
+#define FCALLSCSUB16(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
+   FCALLSCFUN16(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG)
+#define FCALLSCSUB17(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
+   FCALLSCFUN17(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH)
+#define FCALLSCSUB18(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
+   FCALLSCFUN18(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI)
+#define FCALLSCSUB19(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
+   FCALLSCFUN19(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ)
+#define FCALLSCSUB20(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+   FCALLSCFUN20(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
+#define FCALLSCSUB21(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
+   FCALLSCFUN21(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL)
+#define FCALLSCSUB22(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
+   FCALLSCFUN22(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM)
+#define FCALLSCSUB23(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
+   FCALLSCFUN23(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN)
+#define FCALLSCSUB24(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
+   FCALLSCFUN24(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO)
+#define FCALLSCSUB25(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
+   FCALLSCFUN25(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP)
+#define FCALLSCSUB26(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
+   FCALLSCFUN26(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ)
+#define FCALLSCSUB27(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
+   FCALLSCFUN27(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
+
+
+#define FCALLSCFUN1( T0,CN,UN,LN,T1) \
+        FCALLSCFUN5 (T0,CN,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN2( T0,CN,UN,LN,T1,T2) \
+        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,CF_0,CF_0,CF_0)
+#define FCALLSCFUN3( T0,CN,UN,LN,T1,T2,T3) \
+        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,CF_0,CF_0)
+#define FCALLSCFUN4( T0,CN,UN,LN,T1,T2,T3,T4) \
+        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,T4,CF_0)
+#define FCALLSCFUN5( T0,CN,UN,LN,T1,T2,T3,T4,T5) \
+        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN6( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6) \
+        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN7( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
+        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
+#define FCALLSCFUN8( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
+        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
+#define FCALLSCFUN9( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
+        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
+#define FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
+        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN11(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
+        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
+#define FCALLSCFUN12(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
+        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
+#define FCALLSCFUN13(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
+        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
+
+
+#define FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
+        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN16(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
+        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN17(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
+        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
+#define FCALLSCFUN18(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
+        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
+#define FCALLSCFUN19(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
+        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
+#define FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN21(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN22(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN23(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
+#define FCALLSCFUN24(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
+#define FCALLSCFUN25(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
+#define FCALLSCFUN26(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
+        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
+
+
+#ifndef __CF__KnR
+#define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf2(T0))   \
+        {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
+
+#define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
+                                 CFextern _(T0,_cfF)(UN,LN)                    \
+ CFARGT14(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )  \
+ {                 CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
+  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(    TCF(LN,T1,1,0)  TCF(LN,T2,2,1) \
+    TCF(LN,T3,3,1)  TCF(LN,T4,4,1) TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1) \
+    TCF(LN,T8,8,1)  TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
+    TCF(LN,TD,13,1) TCF(LN,TE,14,1) );                          _Icf(0,K,T0,0,0) \
+                   CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  _(T0,_cfI) }
+
+#define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)   \
+                                 CFextern _(T0,_cfF)(UN,LN)                    \
+ CFARGT27(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) ) \
+ {                 CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)   \
+  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(     TCF(LN,T1,1,0)  TCF(LN,T2,2,1)  \
+    TCF(LN,T3,3,1)  TCF(LN,T4,4,1)  TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1)  \
+    TCF(LN,T8,8,1)  TCF(LN,T9,9,1)  TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
+    TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
+    TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
+    TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
+                   CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  _(T0,_cfI) }
+
+#else
+#define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf3(T0)) _Icf(0,FF,T0,0,0)\
+        {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
+
+#define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
+                                 CFextern _(T0,_cfF)(UN,LN)                    \
+ CFARGT14(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)) _Icf(0,FF,T0,0,0) \
+       CFARGT14FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE);   \
+ {                 CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
+  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(  TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
+    TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
+    TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
+    TCF(LN,TD,13,1) TCF(LN,TE,14,1) );                          _Icf(0,K,T0,0,0) \
+                   CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  _(T0,_cfI)}
+
+#define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  \
+                                 CFextern _(T0,_cfF)(UN,LN)                    \
+ CFARGT27(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)) _Icf(0,FF,T0,0,0) \
+       CFARGT27FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR); \
+ {                 CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  \
+  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(     TCF(LN,T1,1,0)  TCF(LN,T2,2,1)  \
+    TCF(LN,T3,3,1)  TCF(LN,T4,4,1)  TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1)  \
+    TCF(LN,T8,8,1)  TCF(LN,T9,9,1)  TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
+    TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
+    TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
+    TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
+                   CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  _(T0,_cfI)}
+
+#endif
+
+
+#endif	 /* __CFORTRAN_LOADED */
Index: trunk/SophyaExt/CodeMinuit/cfortran/comis.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/comis.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/comis.h	(revision 2403)
@@ -0,0 +1,32 @@
+PROTOCCALLSFFUN1(INT,CSADDR,csaddr,STRING)
+#define	CSADDR(CHFILE) CCALLSFFUN1(CSADDR,csaddr,STRING,CHFILE)
+
+PROTOCCALLSFFUN12(DOUBLE,CSDJCL,csdjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
+#define CSDJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSDJCL,csdjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)
+
+PROTOCCALLSFSUB2(CSEXEC,csexec,STRING,PINT)
+#define	CSEXEC(CHFILE,IRET) CCALLSFSUB2(CSEXEC,csexec,STRING,PINT,CHFILE,IRET)
+
+PROTOCCALLSFSUB3(CSGTIDP,csgtidp,INT,PSTRING,PINT)
+#define CSGTIDP(CADR,NAME,LEN) CCALLSFSUB3(CSGTIDP,csgtidp,INT,PSTRING,PINT,CADR,NAME,LEN)
+
+PROTOCCALLSFFUN12(INT,CSIJCL,csijcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
+#define CSIJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSIJCL,csijcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)
+
+PROTOCCALLSFFUN2(INT,CSLISTC,cslistc,INT,PINT)
+#define CSLISTC(PROADDR,NEXT) CCALLSFFUN2(CSLISTC,cslistc,INT,PINT,PROADDR,NEXT)
+
+PROTOCCALLSFSUB4(CSLISTX,cslistx,STRING,INT,PINT,PINT)
+#define CSLISTX(CNAME,PROADDR,IOFFS,NEL) CCALLSFSUB4(CSLISTX,cslistx,STRING,INT,PINT,PINT,CNAME,PROADDR,IOFFS,NEL)
+
+PROTOCCALLSFFUN12(LOGICAL,CSLJCL,csljcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
+#define CSLJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSLJCL,csljcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)
+
+PROTOCCALLSFFUN12(FLOAT,CSRJCL,csrjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID)
+#define CSRJCL(IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10) CCALLSFFUN12(CSRJCL,csrjcl,INT,INT,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,PVOID,IADR,NPAR,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10)
+
+PROTOCCALLSFSUB7(CSTYPAR,cstypar,INT,INT,PSTRING,PINT,PINT,INTV,PINT)
+#define CSTYPAR(IADDR,IPAR,CTYP,ISIZE,NVDIM,DIM,IERR) CCALLSFSUB7(CSTYPAR,cstypar,INT,INT,PSTRING,PINT,PINT,INTV,PINT,IADDR,IPAR,CTYP,ISIZE,NVDIM,DIM,IERR)
+
+PROTOCCALLSFSUB2(CSTYPE,cstype,INT,PSTRING)
+#define CSTYPE(CADR,CHTYPE) CCALLSFSUB2(CSTYPE,cstype,INT,PSTRING,CADR,CHTYPE)
Index: trunk/SophyaExt/CodeMinuit/cfortran/cspack.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/cspack.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/cspack.h	(revision 2403)
@@ -0,0 +1,5 @@
+PROTOCCALLSFSUB2(CZPUTA,czputa,STRING,PINT)
+#define CZPUTA(CHMAIL,ISTAT) CCALLSFSUB2(CZPUTA,czputa,STRING,PINT,CHMAIL,ISTAT)
+
+PROTOCCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT)
+#define CZGETA(CHMAIL,ISTAT) CCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT,CHMAIL,ISTAT)
Index: trunk/SophyaExt/CodeMinuit/cfortran/geant315.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/geant315.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/geant315.h	(revision 2403)
@@ -0,0 +1,4799 @@
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/abbrch.f
+------------------------------------------------------------------*/
+
+#define ABBRCH(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35)  CCALLSFSUB35(ABBRCH,abbrch,INT,INT,PINT,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,PDOUBLE,PINT,PINT,PINT,PINT,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ainel.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN5(DOUBLE,AINEL,ainel,INT,INT,DOUBLE,DOUBLE,DOUBLE)
+#define AINEL(A2,A3,A4,A5,A6)  CCALLSFFUN5(AINEL,ainel,INT,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/akeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,AKEKA,akeka,INT,DOUBLE,DOUBLE)
+#define AKEKA(A2,A3,A4)  CCALLSFFUN3(AKEKA,akeka,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/altra.f
+------------------------------------------------------------------*/
+
+#define ALTRA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(ALTRA,altra,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/altraf.f
+------------------------------------------------------------------*/
+
+#define ALTRAF(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(ALTRAF,altraf,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/amga.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,AMGA,amga,INT)
+#define AMGA(A2)  CCALLSFFUN1(AMGA,amga,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ankeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,ANKEKA,ankeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define ANKEKA(A2,A3,A4,A5)  CCALLSFFUN4(ANKEKA,ankeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/atomas.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,ATOMAS,atomas,FLOAT,FLOAT)
+#define ATOMAS(A2,A3)  CCALLSFFUN2(ATOMAS,atomas,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bamjet.f
+------------------------------------------------------------------*/
+
+#define BAMJET(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BAMJET,bamjet,PINT,INT,INT,INT,INT,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bamjev.f
+------------------------------------------------------------------*/
+
+#define BAMJEV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BAMJEV,bamjev,PINT,INT,INT,INT,INT,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bekeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BEKEKA,bekeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define BEKEKA(A2,A3,A4,A5)  CCALLSFFUN4(BEKEKA,bekeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/berttp.f
+------------------------------------------------------------------*/
+
+#define BERTTP() CCALLSFSUB0(BERTTP,berttp)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/beta.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,BETA,beta,DOUBLE,DOUBLE,DOUBLE)
+#define BETA(A2,A3,A4)  CCALLSFFUN3(BETA,beta,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/betarn.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,BETARN,betarn,DOUBLE,DOUBLE)
+#define BETARN(A2,A3)  CCALLSFFUN2(BETARN,betarn,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/betrst.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BETRST,betrst,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE)
+#define BETRST(A2,A3,A4,A5)  CCALLSFFUN4(BETRST,betrst,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bkeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,BKEKA,bkeka,INT,DOUBLE,DOUBLE)
+#define BKEKA(A2,A3,A4)  CCALLSFFUN3(BKEKA,bkeka,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bklass.f
+------------------------------------------------------------------*/
+
+#define BKLASS(A1,A2,A3,A4,A5)  CCALLSFSUB5(BKLASS,bklass,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/bnkeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BNKEKA,bnkeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define BNKEKA(A2,A3,A4,A5)  CCALLSFFUN4(BNKEKA,bnkeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/calumo.f
+------------------------------------------------------------------*/
+
+#define CALUMO(A1,A2)  CCALLSFSUB2(CALUMO,calumo,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/calumv.f
+------------------------------------------------------------------*/
+
+#define CALUMV(A1,A2)  CCALLSFSUB2(CALUMV,calumv,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/captur.f
+------------------------------------------------------------------*/
+
+#define CAPTUR(A1)  CCALLSFSUB1(CAPTUR,captur,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casal0.f
+------------------------------------------------------------------*/
+
+#define CASAL0(A1,A2,A3)  CCALLSFSUB3(CASAL0,casal0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casaom.f
+------------------------------------------------------------------*/
+
+#define CASAOM(A1,A2,A3)  CCALLSFSUB3(CASAOM,casaom,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casasm.f
+------------------------------------------------------------------*/
+
+#define CASASM(A1,A2,A3)  CCALLSFSUB3(CASASM,casasm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casasp.f
+------------------------------------------------------------------*/
+
+#define CASASP(A1,A2,A3)  CCALLSFSUB3(CASASP,casasp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casax0.f
+------------------------------------------------------------------*/
+
+#define CASAX0(A1,A2,A3)  CCALLSFSUB3(CASAX0,casax0,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casaxm.f
+------------------------------------------------------------------*/
+
+#define CASAXM(A1,A2,A3)  CCALLSFSUB3(CASAXM,casaxm,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casfrg.f
+------------------------------------------------------------------*/
+
+#define CASFRG(A1,A2,A3)  CCALLSFSUB3(CASFRG,casfrg,PINT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cask0.f
+------------------------------------------------------------------*/
+
+#define CASK0(A1,A2,A3)  CCALLSFSUB3(CASK0,cask0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cask0b.f
+------------------------------------------------------------------*/
+
+#define CASK0B(A1,A2,A3)  CCALLSFSUB3(CASK0B,cask0b,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/caskm.f
+------------------------------------------------------------------*/
+
+#define CASKM(A1,A2,A3)  CCALLSFSUB3(CASKM,caskm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/caskp.f
+------------------------------------------------------------------*/
+
+#define CASKP(A1,A2,A3)  CCALLSFSUB3(CASKP,caskp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casl0.f
+------------------------------------------------------------------*/
+
+#define CASL0(A1,A2,A3)  CCALLSFSUB3(CASL0,casl0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casn.f
+------------------------------------------------------------------*/
+
+#define CASN(A1,A2,A3)  CCALLSFSUB3(CASN,casn,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casnb.f
+------------------------------------------------------------------*/
+
+#define CASNB(A1,A2,A3)  CCALLSFSUB3(CASNB,casnb,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casom.f
+------------------------------------------------------------------*/
+
+#define CASOM(A1,A2,A3)  CCALLSFSUB3(CASOM,casom,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casp.f
+------------------------------------------------------------------*/
+
+#define CASP(A1,A2,A3)  CCALLSFSUB3(CASP,casp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/caspb.f
+------------------------------------------------------------------*/
+
+#define CASPB(A1,A2,A3)  CCALLSFSUB3(CASPB,caspb,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/caspim.f
+------------------------------------------------------------------*/
+
+#define CASPIM(A1,A2,A3)  CCALLSFSUB3(CASPIM,caspim,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/caspip.f
+------------------------------------------------------------------*/
+
+#define CASPIP(A1,A2,A3)  CCALLSFSUB3(CASPIP,caspip,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cassm.f
+------------------------------------------------------------------*/
+
+#define CASSM(A1,A2,A3)  CCALLSFSUB3(CASSM,cassm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cassp.f
+------------------------------------------------------------------*/
+
+#define CASSP(A1,A2,A3)  CCALLSFSUB3(CASSP,cassp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casx0.f
+------------------------------------------------------------------*/
+
+#define CASX0(A1,A2,A3)  CCALLSFSUB3(CASX0,casx0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/casxm.f
+------------------------------------------------------------------*/
+
+#define CASXM(A1,A2,A3)  CCALLSFSUB3(CASXM,casxm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgaffi.f
+------------------------------------------------------------------*/
+
+#define CGAFFI(A1,A2)  CCALLSFSUB2(CGAFFI,cgaffi,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbfit.f
+------------------------------------------------------------------*/
+
+#define CGBFIT(A1,A2,A3)  CCALLSFSUB3(CGBFIT,cgbfit,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbint.f
+------------------------------------------------------------------*/
+
+#define CGBINT(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBINT,cgbint,FLOATV,FLOATV,INT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbmmt.f
+------------------------------------------------------------------*/
+
+#define CGBMMT(A1,A2,A3)  CCALLSFSUB3(CGBMMT,cgbmmt,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbool.f
+------------------------------------------------------------------*/
+
+#define CGBOOL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGBOOL,cgbool,INT,INT,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbox.f
+------------------------------------------------------------------*/
+
+#define CGBOX(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBOX,cgbox,PFLOAT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbrik.f
+------------------------------------------------------------------*/
+
+#define CGBRIK(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBRIK,cgbrik,FLOAT,FLOAT,FLOAT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbsea.f
+------------------------------------------------------------------*/
+
+#define CGBSEA(A1,A2,A3,A4)  CCALLSFSUB4(CGBSEA,cgbsea,FLOATV,FLOATV,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbsec.f
+------------------------------------------------------------------*/
+
+#define CGBSEC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGBSEC,cgbsec,FLOATV,FLOATV,FLOATV,FLOATV,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbsor.f
+------------------------------------------------------------------*/
+
+#define CGBSOR(A1,A2)  CCALLSFSUB2(CGBSOR,cgbsor,PINT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbsub.f
+------------------------------------------------------------------*/
+
+#define CGBSUB(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGBSUB,cgbsub,INT,FLOATV,PFLOAT,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbtef.f
+------------------------------------------------------------------*/
+
+#define CGBTEF(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBTEF,cgbtef,INT,INT,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbtfp.f
+------------------------------------------------------------------*/
+
+#define CGBTFP(A1,A2,A3)  CCALLSFSUB3(CGBTFP,cgbtfp,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgbttt.f
+------------------------------------------------------------------*/
+/*
+#define cgbttt_ELEMS_1          ZTRINGV_NUM(1)
+#define cgbttt_ELEMLEN_1        ZTRINGV_NUM(2)
+*/
+
+#define CGBTTT(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBTTT,cgbttt,STRING,FLOAT,FLOAT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgcev.f
+------------------------------------------------------------------*/
+
+#define CGCEV(A1,A2)  CCALLSFSUB2(CGCEV,cgcev,INT,FLOATV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgcopy.f
+------------------------------------------------------------------*/
+
+#define CGCOPY(A1,A2,A3)  CCALLSFSUB3(CGCOPY,cgcopy,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgelli.f
+------------------------------------------------------------------*/
+
+#define CGELLI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGELLI,cgelli,FLOAT,FLOAT,FLOAT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgfac2.f
+------------------------------------------------------------------*/
+
+#define CGFAC2(A1,A2,A3,A4)  CCALLSFSUB4(CGFAC2,cgfac2,PFLOAT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgfaco.f
+------------------------------------------------------------------*/
+
+#define CGFACO(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGFACO,cgfaco,PFLOAT,PFLOAT,INT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgfare.f
+------------------------------------------------------------------*/
+
+#define CGFARE(A1,A2,A3,A4)  CCALLSFSUB4(CGFARE,cgfare,INT,FLOATV,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgfvis.f
+------------------------------------------------------------------*/
+
+#define CGFVIS(A1,A2,A3,A4)  CCALLSFSUB4(CGFVIS,cgfvis,INT,FLOATV,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghcre.f
+------------------------------------------------------------------*/
+
+#define CGHCRE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHCRE,cghcre,INT,INT,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghdfa.f
+------------------------------------------------------------------*/
+
+#define CGHDFA(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGHDFA,cghdfa,INT,PFLOAT,INTV,INTV,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghend.f
+------------------------------------------------------------------*/
+
+#define CGHEND(A1,A2,A3)  CCALLSFSUB3(CGHEND,cghend,PFLOAT,PINT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgheva.f
+------------------------------------------------------------------*/
+
+#define CGHEVA(A1,A2)  CCALLSFSUB2(CGHEVA,cgheva,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghins.f
+------------------------------------------------------------------*/
+
+#define CGHINS(A1,A2,A3)  CCALLSFSUB3(CGHINS,cghins,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghmov.f
+------------------------------------------------------------------*/
+
+#define CGHMOV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGHMOV,cghmov,PFLOAT,PFLOAT,INT,INT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghpla.f
+------------------------------------------------------------------*/
+
+#define CGHPLA(A1,A2,A3)  CCALLSFSUB3(CGHPLA,cghpla,INTV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghren.f
+------------------------------------------------------------------*/
+
+#define CGHREN(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CGHREN,cghren,INT,INT,INT,INT,PFLOAT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghshi.f
+------------------------------------------------------------------*/
+
+#define CGHSHI(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHSHI,cghshi,INT,PINT,PINT,INTV,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghsiz.f
+------------------------------------------------------------------*/
+
+#define CGHSIZ(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGHSIZ,cghsiz,FLOATV,INT,PINT,PINT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cghtre.f
+------------------------------------------------------------------*/
+
+#define CGHTRE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHTRE,cghtre,INT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cginve.f
+------------------------------------------------------------------*/
+
+#define CGINVE(A1)  CCALLSFSUB1(CGINVE,cginve,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgmnmx.f
+------------------------------------------------------------------*/
+
+#define CGMNMX(A1,A2,A3)  CCALLSFSUB3(CGMNMX,cgmnmx,FLOATV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgrifl.f
+------------------------------------------------------------------*/
+
+#define CGRIFL(A1,A2)  CCALLSFSUB2(CGRIFL,cgrifl,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgsaan.f
+------------------------------------------------------------------*/
+
+#define CGSAAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGSAAN,cgsaan,FLOAT,FLOAT,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgscop.f
+------------------------------------------------------------------*/
+
+#define CGSCOP(A1,A2,A3,A4)  CCALLSFSUB4(CGSCOP,cgscop,INT,FLOATV,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgshel.f
+------------------------------------------------------------------*/
+
+#define CGSHEL(A1,A2,A3,A4)  CCALLSFSUB4(CGSHEL,cgshel,FLOAT,FLOAT,PINT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgshif.f
+------------------------------------------------------------------*/
+
+#define CGSHIF(A1,A2,A3,A4)  CCALLSFSUB4(CGSHIF,cgshif,FLOAT,FLOAT,FLOAT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgsize.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,CGSIZE,cgsize,INT,INT,INTV,INTV)
+#define CGSIZE(A2,A3,A4,A5)  CCALLSFFUN4(CGSIZE,cgsize,INT,INT,INTV,INTV,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgslic.f
+------------------------------------------------------------------*/
+
+#define CGSLIC(A1,A2,A3,A4)  CCALLSFSUB4(CGSLIC,cgslic,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgsnor.f
+------------------------------------------------------------------*/
+
+#define CGSNOR(A1)  CCALLSFSUB1(CGSNOR,cgsnor,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgsphe.f
+------------------------------------------------------------------*/
+
+#define CGSPHE(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGSPHE,cgsphe,FLOAT,INT,INT,INT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgsub.f
+------------------------------------------------------------------*/
+
+#define CGSUB(A1,A2,A3,A4)  CCALLSFSUB4(CGSUB,cgsub,FLOATV,FLOATV,INT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgtset.f
+------------------------------------------------------------------*/
+
+#define CGTSET(A1,A2,A3)  CCALLSFSUB3(CGTSET,cgtset,INT,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgtstr.f
+------------------------------------------------------------------*/
+
+#define CGTSTR(A1,A2)  CCALLSFSUB2(CGTSTR,cgtstr,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgvedg.f
+------------------------------------------------------------------*/
+
+#define CGVEDG(A1,A2,A3,A4)  CCALLSFSUB4(CGVEDG,cgvedg,INT,FLOATV,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgvhed.f
+------------------------------------------------------------------*/
+
+#define CGVHED(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CGVHED,cgvhed,PFLOAT,INTV,INTV,PFLOAT,PINT,PINT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgvtef.f
+------------------------------------------------------------------*/
+
+#define CGVTEF(A1,A2,A3)  CCALLSFSUB3(CGVTEF,cgvtef,INTV,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgvtin.f
+------------------------------------------------------------------*/
+
+#define CGVTIN(A1,A2,A3)  CCALLSFSUB3(CGVTIN,cgvtin,FLOAT,FLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgwire.f
+------------------------------------------------------------------*/
+
+#define CGWIRE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGWIRE,cgwire,FLOATV,INT,INT,INT,PFLOAT,INT,INTV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgwsor.f
+------------------------------------------------------------------*/
+
+#define CGWSOR(A1,A2)  CCALLSFSUB2(CGWSOR,cgwsor,PINT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgzre.f
+------------------------------------------------------------------*/
+
+#define CGZRE(A1,A2,A3)  CCALLSFSUB3(CGZRE,cgzre,INT,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cgzrev.f
+------------------------------------------------------------------*/
+
+#define CGZREV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGZREV,cgzrev,PFLOAT,FLOAT,FLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/chanwt.f
+------------------------------------------------------------------*/
+
+#define CHANWT() CCALLSFSUB0(CHANWT,chanwt)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/cinema.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,CINEMA,cinema,FLOAT)
+#define CINEMA(A2)  CCALLSFFUN1(CINEMA,cinema,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/compo.f
+------------------------------------------------------------------*/
+
+#define COMPO() CCALLSFSUB0(COMPO,compo)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/coranh.f
+------------------------------------------------------------------*/
+
+#define CORANH(A1,A2)  CCALLSFSUB2(CORANH,coranh,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/corevt.f
+------------------------------------------------------------------*/
+
+#define COREVT(A1,A2,A3,A4,A5)  CCALLSFSUB5(COREVT,corevt,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/corrin.f
+------------------------------------------------------------------*/
+
+#define CORRIN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CORRIN,corrin,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/coscat.f
+------------------------------------------------------------------*/
+
+#define COSCAT() CCALLSFSUB0(COSCAT,coscat)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/datar3.f
+------------------------------------------------------------------*/
+
+#define DATAR3() CCALLSFSUB0(DATAR3,datar3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/datesh.f
+------------------------------------------------------------------*/
+
+#define DATESH() CCALLSFSUB0(DATESH,datesh)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/decaux.f
+------------------------------------------------------------------*/
+
+#define DECAUX(A1,A2)  CCALLSFSUB2(DECAUX,decaux,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/defs1.f
+------------------------------------------------------------------*/
+
+#define DEFS1(A1,A2,A3)  CCALLSFSUB3(DEFS1,defs1,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/difevv.f
+------------------------------------------------------------------*/
+
+#define DIFEVV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DIFEVV,difevv,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dlpnuc.f
+------------------------------------------------------------------*/
+
+#define DLPNUC(A1,A2)  CCALLSFSUB2(DLPNUC,dlpnuc,PDOUBLE,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dlpsor.f
+------------------------------------------------------------------*/
+
+#define DLPSOR(A1,A2)  CCALLSFSUB2(DLPSOR,dlpsor,PDOUBLE,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dost.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,DOST,dost,INT,DOUBLE)
+#define DOST(A2,A3)  CCALLSFFUN2(DOST,dost,INT,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dotes2.f
+------------------------------------------------------------------*/
+
+#define DOTES2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DOTES2,dotes2,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dotnuc.f
+------------------------------------------------------------------*/
+
+#define DOTNUC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DOTNUC,dotnuc,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dpdnuc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,DPDNUC,dpdnuc,DOUBLE,DOUBLE,DOUBLE)
+#define DPDNUC(A2,A3,A4)  CCALLSFFUN3(DPDNUC,dpdnuc,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/drelab.f
+------------------------------------------------------------------*/
+
+#define DRELAB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DRELAB,drelab,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/dresf.f
+------------------------------------------------------------------*/
+
+#define DRESF(A1,A2,A3,A4,A5)  CCALLSFSUB5(DRESF,dresf,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/eexi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,EEXI,eexi,INT,DOUBLE,DOUBLE)
+#define EEXI(A2,A3,A4)  CCALLSFFUN3(EEXI,eexi,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ekeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,EKEKA,ekeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define EKEKA(A2,A3,A4,A5)  CCALLSFFUN4(EKEKA,ekeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/energi.f
+------------------------------------------------------------------*/
+
+#define ENERGI(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(ENERGI,energi,INT,INT,INT,INTV,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/enrg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,ENRG,enrg,DOUBLE,DOUBLE)
+#define ENRG(A2,A3)  CCALLSFFUN2(ENRG,enrg,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/evdeex.f
+------------------------------------------------------------------*/
+
+#define EVDEEX(A1)  CCALLSFSUB1(EVDEEX,evdeex,DOUBLE,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/eventv.f
+------------------------------------------------------------------*/
+
+#define EVENTV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(EVENTV,eventv,INT,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/evevap.f
+------------------------------------------------------------------*/
+
+#define EVEVAP(A1)  CCALLSFSUB1(EVEVAP,evevap,DOUBLE,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/evvini.f
+------------------------------------------------------------------*/
+/*
+#define evvini_ELEMS_2          ZTRINGV_NUM(1)
+#define evvini_ELEMLEN_2        ZTRINGV_NUM(8)
+*/
+
+#define EVVINI(A1,A2)  CCALLSFSUB2(EVVINI,evvini,DOUBLEV,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/exnu.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,EXNU,exnu,FLOAT)
+#define EXNU(A2)  CCALLSFFUN1(EXNU,exnu,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fcount.f
+------------------------------------------------------------------*/
+
+#define FCOUNT() CCALLSFSUB0(FCOUNT,fcount)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fctcos.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FCTCOS,fctcos,FLOAT)
+#define FCTCOS(A2)  CCALLSFFUN1(FCTCOS,fctcos,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fdevap.f
+------------------------------------------------------------------*/
+
+#define FDEVAP() CCALLSFSUB0(FDEVAP,fdevap)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fdnopt.f
+------------------------------------------------------------------*/
+
+#define FDNOPT() CCALLSFSUB0(FDNOPT,fdnopt)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ferevv.f
+------------------------------------------------------------------*/
+
+#define FEREVV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(FEREVV,ferevv,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ferhad.f
+------------------------------------------------------------------*/
+
+#define FERHAD(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FERHAD,ferhad,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ferhav.f
+------------------------------------------------------------------*/
+
+#define FERHAV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(FERHAV,ferhav,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fermi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FERMI,fermi,FLOAT)
+#define FERMI(A2)  CCALLSFFUN1(FERMI,fermi,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fissio.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FISSIO,fissio,FLOAT)
+#define FISSIO(A2)  CCALLSFFUN1(FISSIO,fissio,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkdeca.f
+------------------------------------------------------------------*/
+
+#define FKDECA(A1,A2)  CCALLSFSUB2(FKDECA,fkdeca,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkdres.f
+------------------------------------------------------------------*/
+
+#define FKDRES(A1,A2,A3,A4,A5)  CCALLSFSUB5(FKDRES,fkdres,INT,INT,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkener.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,FKENER,fkener,DOUBLE,DOUBLE)
+#define FKENER(A2,A3)  CCALLSFFUN2(FKENER,fkener,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkerro.f
+------------------------------------------------------------------*/
+
+#define FKERRO() CCALLSFSUB0(FKERRO,fkerro)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkerup.f
+------------------------------------------------------------------*/
+
+#define FKERUP() CCALLSFSUB0(FKERUP,fkerup)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkflav.f
+------------------------------------------------------------------*/
+
+#define FKFLAV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(FKFLAV,fkflav,INT,INT,INT,DOUBLE,INTV,DOUBLEV,PINT,PINT,INT,DOUBLE,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkimpu.f
+------------------------------------------------------------------*/
+
+#define FKIMPU(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FKIMPU,fkimpu,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkpoli.f
+------------------------------------------------------------------*/
+
+#define FKPOLI(A1,A2)  CCALLSFSUB2(FKPOLI,fkpoli,PDOUBLE,PDOUBLE,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fksigi.f
+------------------------------------------------------------------*/
+
+#define FKSIGI(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FKSIGI,fksigi,INT,DOUBLE,INT,PINT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkvert.f
+------------------------------------------------------------------*/
+
+#define FKVERT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(FKVERT,fkvert,INT,INT,INT,INT,DOUBLE,PINT,DOUBLEV,INTV,INTV,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fkzero.f
+------------------------------------------------------------------*/
+
+#define FKZERO() CCALLSFSUB0(FKZERO,fkzero)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/fldist.f
+------------------------------------------------------------------*/
+
+#define FLDIST() CCALLSFSUB0(FLDIST,fldist)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flinit.f
+------------------------------------------------------------------*/
+
+#define FLINIT() CCALLSFSUB0(FLINIT,flinit)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt1.f
+------------------------------------------------------------------*/
+
+#define FLKDT1() CCALLSFSUB0(FLKDT1,flkdt1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt2.f
+------------------------------------------------------------------*/
+
+#define FLKDT2() CCALLSFSUB0(FLKDT2,flkdt2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt3.f
+------------------------------------------------------------------*/
+
+#define FLKDT3() CCALLSFSUB0(FLKDT3,flkdt3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt4.f
+------------------------------------------------------------------*/
+
+#define FLKDT4() CCALLSFSUB0(FLKDT4,flkdt4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt5.f
+------------------------------------------------------------------*/
+
+#define FLKDT5() CCALLSFSUB0(FLKDT5,flkdt5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt6.f
+------------------------------------------------------------------*/
+
+#define FLKDT6() CCALLSFSUB0(FLKDT6,flkdt6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flkdt7.f
+------------------------------------------------------------------*/
+
+#define FLKDT7() CCALLSFSUB0(FLKDT7,flkdt7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/flufin.f
+------------------------------------------------------------------*/
+
+#define FLUFIN() CCALLSFSUB0(FLUFIN,flufin)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/frmic.f
+------------------------------------------------------------------*/
+
+#define FRMIC(A1)  CCALLSFSUB1(FRMIC,frmic,PDOUBLE,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gamrn.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,GAMRN,gamrn,DOUBLE,DOUBLE)
+#define GAMRN(A2,A3)  CCALLSFFUN2(GAMRN,gamrn,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ganni.f
+------------------------------------------------------------------*/
+
+#define GANNI() CCALLSFSUB0(GANNI,ganni)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ganni2.f
+------------------------------------------------------------------*/
+
+#define GANNI2() CCALLSFSUB0(GANNI2,ganni2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gannii.f
+------------------------------------------------------------------*/
+
+#define GANNII() CCALLSFSUB0(GANNII,gannii)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gannir.f
+------------------------------------------------------------------*/
+
+#define GANNIR() CCALLSFSUB0(GANNIR,gannir)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/garndm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GARNDM,garndm,FLOAT)
+#define GARNDM(A2)  CCALLSFFUN1(GARNDM,garndm,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbhsta.f
+------------------------------------------------------------------*/
+
+#define GBHSTA() CCALLSFSUB0(GBHSTA,gbhsta)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbirk.f
+------------------------------------------------------------------*/
+
+#define GBIRK(A1)  CCALLSFSUB1(GBIRK,gbirk,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrela.f
+------------------------------------------------------------------*/
+
+#define GBRELA() CCALLSFSUB0(GBRELA,gbrela)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrele.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRELE,gbrele,FLOAT,FLOAT,FLOAT)
+#define GBRELE(A2,A3,A4)  CCALLSFFUN3(GBRELE,gbrele,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrelm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRELM,gbrelm,FLOAT,FLOAT,FLOAT)
+#define GBRELM(A2,A3,A4)  CCALLSFFUN3(GBRELM,gbrelm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbreme.f
+------------------------------------------------------------------*/
+
+#define GBREME() CCALLSFSUB0(GBREME,gbreme)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbremm.f
+------------------------------------------------------------------*/
+
+#define GBREMM() CCALLSFSUB0(GBREMM,gbremm)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrsga.f
+------------------------------------------------------------------*/
+
+#define GBRSGA() CCALLSFSUB0(GBRSGA,gbrsga)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrsge.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRSGE,gbrsge,FLOAT,FLOAT,FLOAT)
+#define GBRSGE(A2,A3,A4)  CCALLSFFUN3(GBRSGE,gbrsge,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbrsgm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRSGM,gbrsgm,FLOAT,FLOAT,FLOAT)
+#define GBRSGM(A2,A3,A4)  CCALLSFFUN3(GBRSGM,gbrsgm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gbstat.f
+------------------------------------------------------------------*/
+
+#define GBSTAT() CCALLSFSUB0(GBSTAT,gbstat)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcderr.f
+------------------------------------------------------------------*/
+
+#define GCDERR(A1,A2,A3)  CCALLSFSUB3(GCDERR,gcderr,PINT,FLOAT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcdrif.f
+------------------------------------------------------------------*/
+
+#define GCDRIF(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GCDRIF,gcdrif,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcent.f
+------------------------------------------------------------------*/
+
+#define GCENT(A1,A2)  CCALLSFSUB2(GCENT,gcent,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gclose.f
+------------------------------------------------------------------*/
+
+#define GCLOSE(A1,A2)  CCALLSFSUB2(GCLOSE,gclose,INT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcmwpc.f
+------------------------------------------------------------------*/
+
+#define GCMWPC(A1,A2,A3)  CCALLSFSUB3(GCMWPC,gcmwpc,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcoeff.f
+------------------------------------------------------------------*/
+
+#define GCOEFF() CCALLSFSUB0(GCOEFF,gcoeff)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcomp.f
+------------------------------------------------------------------*/
+
+#define GCOMP() CCALLSFSUB0(GCOMP,gcomp)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcompi.f
+------------------------------------------------------------------*/
+
+#define GCOMPI() CCALLSFSUB0(GCOMPI,gcompi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gcubs.f
+------------------------------------------------------------------*/
+
+#define GCUBS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GCUBS,gcubs,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gd16v.f
+------------------------------------------------------------------*/
+
+#define GD16V(A1,A2)  CCALLSFSUB2(GD16V,gd16v,INT,INTV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gd3d3d.f
+------------------------------------------------------------------*/
+
+#define GD3D3D(A1,A2,A3,A4)  CCALLSFSUB4(GD3D3D,gd3d3d,PFLOAT,INT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdahit.f
+------------------------------------------------------------------*/
+
+#define GDAHIT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDAHIT,gdahit,FLOAT,FLOAT,FLOAT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdarc.f
+------------------------------------------------------------------*/
+
+#define GDARC(A1,A2,A3,A4)  CCALLSFSUB4(GDARC,gdarc,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdarr.f
+------------------------------------------------------------------*/
+/*
+#define gdarr_ELEMS_6          ZTRINGV_NUM(1)
+#define gdarr_ELEMLEN_6        ZTRINGV_NUM(255)
+*/
+
+#define GDARR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDARR,gdarr,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdaxis.f
+------------------------------------------------------------------*/
+
+#define GDAXIS(A1,A2,A3,A4)  CCALLSFSUB4(GDAXIS,gdaxis,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdbomb.f
+------------------------------------------------------------------*/
+
+#define GDBOMB(A1,A2)  CCALLSFSUB2(GDBOMB,gdbomb,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgcl.f
+------------------------------------------------------------------*/
+
+#define GDCGCL(A1)  CCALLSFSUB1(GDCGCL,gdcgcl,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgem.f
+------------------------------------------------------------------*/
+
+#define GDCGEM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GDCGEM,gdcgem,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcger.f
+------------------------------------------------------------------*/
+
+#define GDCGER(A1)  CCALLSFSUB1(GDCGER,gdcger,FLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcghi.f
+------------------------------------------------------------------*/
+
+#define GDCGHI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDCGHI,gdcghi,INT,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgob.f
+------------------------------------------------------------------*/
+
+#define GDCGOB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDCGOB,gdcgob,INT,PINT,FLOATV,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgpr.f
+------------------------------------------------------------------*/
+
+#define GDCGPR() CCALLSFSUB0(GDCGPR,gdcgpr)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgrs.f
+------------------------------------------------------------------*/
+
+#define GDCGRS() CCALLSFSUB0(GDCGRS,gdcgrs)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgsl.f
+------------------------------------------------------------------*/
+
+#define GDCGSL(A1,A2)  CCALLSFSUB2(GDCGSL,gdcgsl,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgvw.f
+------------------------------------------------------------------*/
+
+#define GDCGVW(A1,A2)  CCALLSFSUB2(GDCGVW,gdcgvw,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcgwv.f
+------------------------------------------------------------------*/
+
+#define GDCGWV(A1)  CCALLSFSUB1(GDCGWV,gdcgwv,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdchit.f
+------------------------------------------------------------------*/
+/*
+#define gdchit_ELEMS_1          ZTRINGV_NUM(1)
+#define gdchit_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdchit_ELEMS_2          ZTRINGV_NUM(1)
+#define gdchit_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDCHIT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GDCHIT,gdchit,STRING,STRING,INT,INT,FLOAT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcirc.f
+------------------------------------------------------------------*/
+
+#define GDCIRC(A1,A2)  CCALLSFSUB2(GDCIRC,gdcirc,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcirr.f
+------------------------------------------------------------------*/
+
+#define GDCIRR(A1,A2)  CCALLSFSUB2(GDCIRR,gdcirr,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdciry.f
+------------------------------------------------------------------*/
+
+#define GDCIRY(A1,A2)  CCALLSFSUB2(GDCIRY,gdciry,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdclos.f
+------------------------------------------------------------------*/
+
+#define GDCLOS() CCALLSFSUB0(GDCLOS,gdclos)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcol.f
+------------------------------------------------------------------*/
+
+#define GDCOL(A1)  CCALLSFSUB1(GDCOL,gdcol,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcol1.f
+------------------------------------------------------------------*/
+
+#define GDCOL1(A1)  CCALLSFSUB1(GDCOL1,gdcol1,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcota.f
+------------------------------------------------------------------*/
+
+#define GDCOTA() CCALLSFSUB0(GDCOTA,gdcota)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcurs.f
+------------------------------------------------------------------*/
+
+#define GDCURS(A1,A2,A3)  CCALLSFSUB3(GDCURS,gdcurs,FLOAT,FLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcut.f
+------------------------------------------------------------------*/
+
+#define GDCUT() CCALLSFSUB0(GDCUT,gdcut)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdcxyz.f
+------------------------------------------------------------------*/
+
+#define GDCXYZ() CCALLSFSUB0(GDCXYZ,gdcxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdebug.f
+------------------------------------------------------------------*/
+
+#define GDEBUG() CCALLSFSUB0(GDEBUG,gdebug)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdeca2.f
+------------------------------------------------------------------*/
+
+#define GDECA2(A1,A2,A3,A4)  CCALLSFSUB4(GDECA2,gdeca2,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdeca3.f
+------------------------------------------------------------------*/
+
+#define GDECA3(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDECA3,gdeca3,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdecay.f
+------------------------------------------------------------------*/
+
+#define GDECAY() CCALLSFSUB0(GDECAY,gdecay)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdelet.f
+------------------------------------------------------------------*/
+
+#define GDELET(A1)  CCALLSFSUB1(GDELET,gdelet,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdeltu.f
+------------------------------------------------------------------*/
+
+#define GDELTU(A1,A2,A3)  CCALLSFSUB3(GDELTU,gdeltu,FLOAT,FLOAT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdfr3d.f
+------------------------------------------------------------------*/
+
+#define GDFR3D(A1,A2,A3,A4)  CCALLSFSUB4(GDFR3D,gdfr3d,PFLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdfspc.f
+------------------------------------------------------------------*/
+/*
+#define gdfspc_ELEMS_1          ZTRINGV_NUM(1)
+#define gdfspc_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDFSPC(A1,A2,A3)  CCALLSFSUB3(GDFSPC,gdfspc,STRING,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdgirl.f
+------------------------------------------------------------------*/
+
+#define GDGIRL(A1,A2)  CCALLSFSUB2(GDGIRL,gdgirl,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdhead.f
+------------------------------------------------------------------*/
+/*
+#define gdhead_ELEMS_2          ZTRINGV_NUM(1)
+#define gdhead_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GDHEAD(A1,A2,A3)  CCALLSFSUB3(GDHEAD,gdhead,INT,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdhits.f
+------------------------------------------------------------------*/
+/*
+#define gdhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gdhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gdhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDHITS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDHITS,gdhits,STRING,STRING,INT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdinit.f
+------------------------------------------------------------------*/
+
+#define GDINIT() CCALLSFSUB0(GDINIT,gdinit)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdlcyl.f
+------------------------------------------------------------------*/
+
+#define GDLCYL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDLCYL,gdlcyl,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdlens.f
+------------------------------------------------------------------*/
+/*
+#define gdlens_ELEMS_2          ZTRINGV_NUM(1)
+#define gdlens_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDLENS(A1,A2)  CCALLSFSUB2(GDLENS,gdlens,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdline.f
+------------------------------------------------------------------*/
+
+#define GDLINE(A1,A2)  CCALLSFSUB2(GDLINE,gdline,FLOATV,FLOATV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdlw.f
+------------------------------------------------------------------*/
+
+#define GDLW(A1)  CCALLSFSUB1(GDLW,gdlw,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdlw1.f
+------------------------------------------------------------------*/
+
+#define GDLW1(A1)  CCALLSFSUB1(GDLW1,gdlw1,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdman.f
+------------------------------------------------------------------*/
+
+#define GDMAN(A1,A2)  CCALLSFSUB2(GDMAN,gdman,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdnson.f
+------------------------------------------------------------------*/
+/*
+#define gdnson_ELEMS_1          ZTRINGV_NUM(1)
+#define gdnson_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDNSON(A1,A2,A3)  CCALLSFSUB3(GDNSON,gdnson,STRING,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdopen.f
+------------------------------------------------------------------*/
+
+#define GDOPEN(A1)  CCALLSFSUB1(GDOPEN,gdopen,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdopt.f
+------------------------------------------------------------------*/
+/*
+#define gdopt_ELEMS_1          ZTRINGV_NUM(1)
+#define gdopt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdopt_ELEMS_2          ZTRINGV_NUM(1)
+#define gdopt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDOPT(A1,A2)  CCALLSFSUB2(GDOPT,gdopt,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdpart.f
+------------------------------------------------------------------*/
+
+#define GDPART(A1,A2,A3)  CCALLSFSUB3(GDPART,gdpart,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdpdk.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,GDPDK,gdpdk,DOUBLE,DOUBLE,DOUBLE)
+#define GDPDK(A2,A3,A4)  CCALLSFFUN3(GDPDK,gdpdk,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdplst.f
+------------------------------------------------------------------*/
+/*
+#define gdplst_ELEMS_2          ZTRINGV_NUM(1)
+#define gdplst_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDPLST(A1,A2,A3,A4)  CCALLSFSUB4(GDPLST,gdplst,INT,PSTRING,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdprtr.f
+------------------------------------------------------------------*/
+/*
+#define gdprtr_ELEMS_1          ZTRINGV_NUM(1)
+#define gdprtr_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDPRTR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GDPRTR,gdprtr,STRING,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdraw.f
+------------------------------------------------------------------*/
+/*
+#define gdraw_ELEMS_1          ZTRINGV_NUM(1)
+#define gdraw_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAW(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GDRAW,gdraw,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrawc.f
+------------------------------------------------------------------*/
+/*
+#define gdrawc_ELEMS_1          ZTRINGV_NUM(1)
+#define gdrawc_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAWC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDRAWC,gdrawc,STRING,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrawp.f
+------------------------------------------------------------------*/
+
+#define GDRAWP(A1,A2,A3)  CCALLSFSUB3(GDRAWP,gdrawp,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdraws.f
+------------------------------------------------------------------*/
+
+#define GDRAWS(A1,A2)  CCALLSFSUB2(GDRAWS,gdraws,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrawt.f
+------------------------------------------------------------------*/
+/*
+#define gdrawt_ELEMS_3          ZTRINGV_NUM(1)
+#define gdrawt_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GDRAWT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDRAWT,gdrawt,FLOAT,FLOAT,STRING,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrawv.f
+------------------------------------------------------------------*/
+
+#define GDRAWV(A1,A2,A3)  CCALLSFSUB3(GDRAWV,gdrawv,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrawx.f
+------------------------------------------------------------------*/
+/*
+#define gdrawx_ELEMS_1          ZTRINGV_NUM(1)
+#define gdrawx_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAWX(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GDRAWX,gdrawx,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdray.f
+------------------------------------------------------------------*/
+
+#define GDRAY() CCALLSFSUB0(GDRAY,gdray)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrcut.f
+------------------------------------------------------------------*/
+
+#define GDRCUT(A1,A2,A3,A4)  CCALLSFSUB4(GDRCUT,gdrcut,INT,FLOAT,PINT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrect.f
+------------------------------------------------------------------*/
+
+#define GDRECT(A1,A2,A3,A4)  CCALLSFSUB4(GDRECT,gdrect,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrela.f
+------------------------------------------------------------------*/
+
+#define GDRELA() CCALLSFSUB0(GDRELA,gdrela)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrele.f
+------------------------------------------------------------------*/
+
+#define GDRELE(A1,A2,A3,A4)  CCALLSFSUB4(GDRELE,gdrele,FLOAT,FLOAT,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrelm.f
+------------------------------------------------------------------*/
+
+#define GDRELM(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDRELM,gdrelm,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrelp.f
+------------------------------------------------------------------*/
+
+#define GDRELP(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDRELP,gdrelp,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrot.f
+------------------------------------------------------------------*/
+
+#define GDROT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDROT,gdrot,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrprt.f
+------------------------------------------------------------------*/
+
+#define GDRPRT(A1,A2,A3)  CCALLSFSUB3(GDRPRT,gdrprt,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrsga.f
+------------------------------------------------------------------*/
+
+#define GDRSGA() CCALLSFSUB0(GDRSGA,gdrsga)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrvol.f
+------------------------------------------------------------------*/
+
+#define GDRVOL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GDRVOL,gdrvol,INT,INTV,INTV,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdrwsc.f
+------------------------------------------------------------------*/
+
+#define GDRWSC(A1,A2)  CCALLSFSUB2(GDRWSC,gdrwsc,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdsarc.f
+------------------------------------------------------------------*/
+
+#define GDSARC(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDSARC,gdsarc,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdscal.f
+------------------------------------------------------------------*/
+
+#define GDSCAL(A1,A2)  CCALLSFSUB2(GDSCAL,gdscal,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdshad.f
+------------------------------------------------------------------*/
+
+#define GDSHAD(A1,A2)  CCALLSFSUB2(GDSHAD,gdshad,PINT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdshif.f
+------------------------------------------------------------------*/
+
+#define GDSHIF(A1,A2)  CCALLSFSUB2(GDSHIF,gdshif,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdshow.f
+------------------------------------------------------------------*/
+
+#define GDSHOW(A1)  CCALLSFSUB1(GDSHOW,gdshow,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdson.f
+------------------------------------------------------------------*/
+/*
+#define gdson_ELEMS_2          ZTRINGV_NUM(1)
+#define gdson_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gdson_ELEMS_3          ZTRINGV_NUM(1)
+#define gdson_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GDSON(A1,A2,A3)  CCALLSFSUB3(GDSON,gdson,INT,STRING,PSTRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdspec.f
+------------------------------------------------------------------*/
+/*
+#define gdspec_ELEMS_1          ZTRINGV_NUM(1)
+#define gdspec_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDSPEC(A1)  CCALLSFSUB1(GDSPEC,gdspec,STRING,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdssur.f
+------------------------------------------------------------------*/
+
+#define GDSSUR(A1,A2,A3,A4)  CCALLSFSUB4(GDSSUR,gdssur,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdsurf.f
+------------------------------------------------------------------*/
+
+#define GDSURF(A1)  CCALLSFSUB1(GDSURF,gdsurf,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdthrz.f
+------------------------------------------------------------------*/
+
+#define GDTHRZ(A1)  CCALLSFSUB1(GDTHRZ,gdthrz,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtom.f
+------------------------------------------------------------------*/
+
+#define GDTOM(A1,A2,A3)  CCALLSFSUB3(GDTOM,gdtom,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr0.f
+------------------------------------------------------------------*/
+
+#define GDTR0(A1,A2,A3,A4)  CCALLSFSUB4(GDTR0,gdtr0,INT,INT,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr1.f
+------------------------------------------------------------------*/
+
+#define GDTR1(A1,A2,A3,A4)  CCALLSFSUB4(GDTR1,gdtr1,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr10.f
+------------------------------------------------------------------*/
+
+#define GDTR10(A1)  CCALLSFSUB1(GDTR10,gdtr10,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr11.f
+------------------------------------------------------------------*/
+
+#define GDTR11(A1,A2,A3)  CCALLSFSUB3(GDTR11,gdtr11,PINT,PINT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr12.f
+------------------------------------------------------------------*/
+
+#define GDTR12(A1)  CCALLSFSUB1(GDTR12,gdtr12,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr2.f
+------------------------------------------------------------------*/
+
+#define GDTR2(A1,A2,A3,A4)  CCALLSFSUB4(GDTR2,gdtr2,INT,PINT,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr3.f
+------------------------------------------------------------------*/
+
+#define GDTR3(A1)  CCALLSFSUB1(GDTR3,gdtr3,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr4.f
+------------------------------------------------------------------*/
+
+#define GDTR4() CCALLSFSUB0(GDTR4,gdtr4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr5.f
+------------------------------------------------------------------*/
+
+#define GDTR5(A1)  CCALLSFSUB1(GDTR5,gdtr5,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr6.f
+------------------------------------------------------------------*/
+
+#define GDTR6(A1)  CCALLSFSUB1(GDTR6,gdtr6,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr8.f
+------------------------------------------------------------------*/
+/*
+#define gdtr8_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtr8_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdtr8_ELEMS_2          ZTRINGV_NUM(1)
+#define gdtr8_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDTR8(A1,A2,A3)  CCALLSFSUB3(GDTR8,gdtr8,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtr99.f
+------------------------------------------------------------------*/
+
+#define GDTR99(A1)  CCALLSFSUB1(GDTR99,gdtr99,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtrak.f
+------------------------------------------------------------------*/
+/*
+#define gdtrak_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtrak_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GDTRAK(A1)  CCALLSFSUB1(GDTRAK,gdtrak,STRING,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdtree.f
+------------------------------------------------------------------*/
+/*
+#define gdtree_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtree_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDTREE(A1,A2,A3)  CCALLSFSUB3(GDTREE,gdtree,PSTRING,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdxyz.f
+------------------------------------------------------------------*/
+
+#define GDXYZ(A1)  CCALLSFSUB1(GDXYZ,gdxyz,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdxzoo.f
+------------------------------------------------------------------*/
+
+#define GDXZOO(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDXZOO,gdxzoo,INT,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gdzoom.f
+------------------------------------------------------------------*/
+
+#define GDZOOM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDZOOM,gdzoom,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/geamon.f
+------------------------------------------------------------------*/
+/*
+#define geamon_ELEMS_2          ZTRINGV_NUM(1)
+#define geamon_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GEAMON(A1,A2)  CCALLSFSUB2(GEAMON,geamon,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/geditv.f
+------------------------------------------------------------------*/
+
+#define GEDITV(A1)  CCALLSFSUB1(GEDITV,geditv,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gekbin.f
+------------------------------------------------------------------*/
+
+#define GEKBIN() CCALLSFSUB0(GEKBIN,gekbin)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/genxpt.f
+------------------------------------------------------------------*/
+
+#define GENXPT(A1,A2,A3)  CCALLSFSUB3(GENXPT,genxpt,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/getnum.f
+------------------------------------------------------------------*/
+
+#define GETNUM(A1,A2)  CCALLSFSUB2(GETNUM,getnum,INTV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/getver.f
+------------------------------------------------------------------*/
+/*
+#define getver_ELEMS_1          ZTRINGV_NUM(1)
+#define getver_ELEMLEN_1        ZTRINGV_NUM(8)
+*/
+
+#define GETVER(A1,A2)  CCALLSFSUB2(GETVER,getver,PSTRING,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gevkev.f
+------------------------------------------------------------------*/
+/*
+#define gevkev_ELEMS_3          ZTRINGV_NUM(1)
+#define gevkev_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GEVKEV(A1,A2,A3)  CCALLSFSUB3(GEVKEV,gevkev,FLOAT,PFLOAT,PSTRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfatt.f
+------------------------------------------------------------------*/
+/*
+#define gfatt_ELEMS_1          ZTRINGV_NUM(1)
+#define gfatt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfatt_ELEMS_2          ZTRINGV_NUM(1)
+#define gfatt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFATT(A1,A2,A3)  CCALLSFSUB3(GFATT,gfatt,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfclim.f
+------------------------------------------------------------------*/
+
+#define GFCLIM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFCLIM,gfclim,INT,INT,INT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfcoor.f
+------------------------------------------------------------------*/
+
+#define GFCOOR(A1,A2,A3)  CCALLSFSUB3(GFCOOR,gfcoor,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfcord.f
+------------------------------------------------------------------*/
+
+#define GFCORD(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFCORD,gfcord,INT,FLOATV,FLOATV,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfcoul.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GFCOUL,gfcoul,FLOAT)
+#define GFCOUL(A2)  CCALLSFFUN1(GFCOUL,gfcoul,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfcvol.f
+------------------------------------------------------------------*/
+
+#define GFCVOL() CCALLSFSUB0(GFCVOL,gfcvol)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdet.f
+------------------------------------------------------------------*/
+/*
+#define gfdet_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdet_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdet_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDET(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GFDET,gfdet,STRING,STRING,PINT,STRINGV,PINT,INT,PINT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdeta.f
+------------------------------------------------------------------*/
+/*
+#define gfdeta_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdeta_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdeta_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdeta_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDETA(A1,A2,A3)  CCALLSFSUB3(GFDETA,gfdeta,STRING,STRING,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdetd.f
+------------------------------------------------------------------*/
+/*
+#define gfdetd_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdetd_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdetd_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDETD(A1,A2,A3,A4,A5)  CCALLSFSUB5(GFDETD,gfdetd,STRING,STRING,PINT,STRINGV,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdeth.f
+------------------------------------------------------------------*/
+/*
+#define gfdeth_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdeth_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdeth_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDETH(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFDETH,gfdeth,STRING,STRING,PINT,STRINGV,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdetu.f
+------------------------------------------------------------------*/
+/*
+#define gfdetu_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdetu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdetu_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdetu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDETU(A1,A2,A3,A4,A5)  CCALLSFSUB5(GFDETU,gfdetu,STRING,STRING,INT,PINT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfdigi.f
+------------------------------------------------------------------*/
+/*
+#define gfdigi_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdigi_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdigi_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdigi_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDIGI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(GFDIGI,gfdigi,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gffgo.f
+------------------------------------------------------------------*/
+
+#define GFFGO() CCALLSFSUB0(GFFGO,gffgo)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfhits.f
+------------------------------------------------------------------*/
+/*
+#define gfhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gfhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gfhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFHITS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GFHITS,gfhits,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfhsta.f
+------------------------------------------------------------------*/
+
+#define GFHSTA() CCALLSFSUB0(GFHSTA,gfhsta)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfin.f
+------------------------------------------------------------------*/
+/*
+#define gfin_ELEMS_2          ZTRINGV_NUM(#@#)
+#define gfin_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfin_ELEMS_5          ZTRINGV_NUM(1)
+#define gfin_ELEMLEN_5        ZTRINGV_NUM(255)
+*/
+
+#define GFIN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFIN,gfin,INT,STRINGV,INT,INT,STRING,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfinds.f
+------------------------------------------------------------------*/
+
+#define GFINDS() CCALLSFSUB0(GFINDS,gfinds)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfipar.f
+------------------------------------------------------------------*/
+
+#define GFIPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFIPAR,gfipar,INT,INT,INT,PINT,PINT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfkine.f
+------------------------------------------------------------------*/
+
+#define GFKINE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFKINE,gfkine,INT,PFLOAT,PFLOAT,PINT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gflcar.f
+------------------------------------------------------------------*/
+
+#define GFLCAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLCAR,gflcar,INT,INT,INT,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gflphi.f
+------------------------------------------------------------------*/
+
+#define GFLPHI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLPHI,gflphi,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gflrad.f
+------------------------------------------------------------------*/
+
+#define GFLRAD(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFLRAD,gflrad,INT,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gflthe.f
+------------------------------------------------------------------*/
+
+#define GFLTHE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLTHE,gflthe,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfmate.f
+------------------------------------------------------------------*/
+
+#define GFMATE(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GFMATE,gfmate,INT,BYTE,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOATV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfmoth.f
+------------------------------------------------------------------*/
+/*
+#define gfmoth_ELEMS_1          ZTRINGV_NUM(1)
+#define gfmoth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfmoth_ELEMS_2          ZTRINGV_NUM(1)
+#define gfmoth_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFMOTH(A1,A2,A3)  CCALLSFSUB3(GFMOTH,gfmoth,STRING,PSTRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfndig.f
+------------------------------------------------------------------*/
+/*
+#define gfndig_ELEMS_1          ZTRINGV_NUM(1)
+#define gfndig_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfndig_ELEMS_2          ZTRINGV_NUM(1)
+#define gfndig_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFNDIG(A1,A2,A3)  CCALLSFSUB3(GFNDIG,gfndig,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfnhit.f
+------------------------------------------------------------------*/
+/*
+#define gfnhit_ELEMS_1          ZTRINGV_NUM(1)
+#define gfnhit_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfnhit_ELEMS_2          ZTRINGV_NUM(1)
+#define gfnhit_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFNHIT(A1,A2,A3)  CCALLSFSUB3(GFNHIT,gfnhit,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfout.f
+------------------------------------------------------------------*/
+/*
+#define gfout_ELEMS_2          ZTRINGV_NUM(#@#)
+#define gfout_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfout_ELEMS_5          ZTRINGV_NUM(1)
+#define gfout_ELEMLEN_5        ZTRINGV_NUM(255)
+*/
+
+#define GFOUT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFOUT,gfout,INT,STRINGV,INT,INT,STRING,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfpara.f
+------------------------------------------------------------------*/
+/*
+#define gfpara_ELEMS_1          ZTRINGV_NUM(1)
+#define gfpara_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GFPARA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFPARA,gfpara,STRING,INT,INT,PINT,PINT,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfpart.f
+------------------------------------------------------------------*/
+/*
+#define gfpart_ELEMS_2          ZTRINGV_NUM(1)
+#define gfpart_ELEMLEN_2        ZTRINGV_NUM(20)
+*/
+
+#define GFPART(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFPART,gfpart,INT,STRING,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfpath.f
+------------------------------------------------------------------*/
+
+#define GFPATH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFPATH,gfpath,INT,INT,INTV,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfstat.f
+------------------------------------------------------------------*/
+
+#define GFSTAT(A1)  CCALLSFSUB1(GFSTAT,gfstat,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gftitl.f
+------------------------------------------------------------------*/
+
+#define GFTITL(A1,A2)  CCALLSFSUB2(GFTITL,gftitl,INTV,INTV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gftmat.f
+------------------------------------------------------------------*/
+/*
+#define gftmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gftmat_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GFTMAT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFTMAT,gftmat,INT,INT,STRING,INT,FLOATV,PFLOAT,FLOATV,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gftmed.f
+------------------------------------------------------------------*/
+/*
+#define gftmed_ELEMS_2          ZTRINGV_NUM(1)
+#define gftmed_ELEMLEN_2        ZTRINGV_NUM(20)
+*/
+
+#define GFTMED(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(GFTMED,gftmed,INT,STRING,PINT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gftrac.f
+------------------------------------------------------------------*/
+
+#define GFTRAC() CCALLSFSUB0(GFTRAC,gftrac)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfupar.f
+------------------------------------------------------------------*/
+
+#define GFUPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFUPAR,gfupar,INT,INT,PINT,PINT,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gfvert.f
+------------------------------------------------------------------*/
+
+#define GFVERT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFVERT,gfvert,INT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggcave.f
+------------------------------------------------------------------*/
+
+#define GGCAVE() CCALLSFSUB0(GGCAVE,ggcave)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggclos.f
+------------------------------------------------------------------*/
+
+#define GGCLOS() CCALLSFSUB0(GGCLOS,ggclos)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggdetv.f
+------------------------------------------------------------------*/
+
+#define GGDETV(A1,A2)  CCALLSFSUB2(GGDETV,ggdetv,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggdpar.f
+------------------------------------------------------------------*/
+
+#define GGDPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGDPAR,ggdpar,INT,INT,INT,INTV,INT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggdspe.f
+------------------------------------------------------------------*/
+
+#define GGDSPE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGDSPE,ggdspe,INT,INT,FLOATV,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggdvlp.f
+------------------------------------------------------------------*/
+
+#define GGDVLP() CCALLSFSUB0(GGDVLP,ggdvlp)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gget.f
+------------------------------------------------------------------*/
+/*
+#define gget_ELEMS_2          ZTRINGV_NUM(1)
+#define gget_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GGET(A1,A2,A3,A4,A5)  CCALLSFSUB5(GGET,gget,INT,STRINGV,INT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggnlev.f
+------------------------------------------------------------------*/
+
+#define GGNLEV() CCALLSFSUB0(GGNLEV,ggnlev)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggord.f
+------------------------------------------------------------------*/
+
+#define GGORD(A1)  CCALLSFSUB1(GGORD,ggord,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggordq.f
+------------------------------------------------------------------*/
+
+#define GGORDQ(A1)  CCALLSFSUB1(GGORDQ,ggordq,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggppar.f
+------------------------------------------------------------------*/
+
+#define GGPPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGPPAR,ggppar,INT,INT,INT,INTV,INT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ggvchk.f
+------------------------------------------------------------------*/
+
+#define GGVCHK(A1,A2,A3,A4)  CCALLSFSUB4(GGVCHK,ggvchk,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghadro.f
+------------------------------------------------------------------*/
+
+#define GHADRO(A1,A2,A3,A4)  CCALLSFSUB4(GHADRO,ghadro,FLOAT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghangl.f
+------------------------------------------------------------------*/
+
+#define GHANGL(A1,A2,A3,A4,A5)  CCALLSFSUB5(GHANGL,ghangl,INT,FLOAT,PFLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghclos.f
+------------------------------------------------------------------*/
+
+#define GHCLOS() CCALLSFSUB0(GHCLOS,ghclos)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghdca2.f
+------------------------------------------------------------------*/
+
+#define GHDCA2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GHDCA2,ghdca2,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghdca3.f
+------------------------------------------------------------------*/
+
+#define GHDCA3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GHDCA3,ghdca3,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gheini.f
+------------------------------------------------------------------*/
+
+#define GHEINI() CCALLSFSUB0(GHEINI,gheini)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gheish.f
+------------------------------------------------------------------*/
+
+#define GHEISH() CCALLSFSUB0(GHEISH,gheish)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghelix.f
+------------------------------------------------------------------*/
+
+#define GHELIX(A1,A2,A3,A4)  CCALLSFSUB4(GHELIX,ghelix,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghelx3.f
+------------------------------------------------------------------*/
+
+#define GHELX3(A1,A2,A3,A4)  CCALLSFSUB4(GHELX3,ghelx3,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghesig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN10(FLOAT,GHESIG,ghesig,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,INT)
+#define GHESIG(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(GHESIG,ghesig,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,INT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfacf.f
+------------------------------------------------------------------*/
+
+#define GHFACF() CCALLSFSUB0(GHFACF,ghfacf)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfake.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHFAKE,ghfake,INT,FLOAT,FLOAT)
+#define GHFAKE(A2,A3,A4)  CCALLSFFUN3(GHFAKE,ghfake,INT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfalt.f
+------------------------------------------------------------------*/
+
+#define GHFALT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(GHFALT,ghfalt,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfamg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GHFAMG,ghfamg,INT)
+#define GHFAMG(A2)  CCALLSFFUN1(GHFAMG,ghfamg,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfank.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GHFANK,ghfank,INT,FLOAT,FLOAT,FLOAT)
+#define GHFANK(A2,A3,A4,A5)  CCALLSFFUN4(GHFANK,ghfank,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfcal.f
+------------------------------------------------------------------*/
+
+#define GHFCAL(A1,A2)  CCALLSFSUB2(GHFCAL,ghfcal,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfcha.f
+------------------------------------------------------------------*/
+
+#define GHFCHA() CCALLSFSUB0(GHFCHA,ghfcha)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfcos.f
+------------------------------------------------------------------*/
+
+#define GHFCOS(A1,A2)  CCALLSFSUB2(GHFCOS,ghfcos,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfeex.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHFEEX,ghfeex,INT,FLOAT,FLOAT)
+#define GHFEEX(A2,A3,A4)  CCALLSFFUN3(GHFEEX,ghfeex,INT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfeke.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GHFEKE,ghfeke,INT,FLOAT,FLOAT,FLOAT)
+#define GHFEKE(A2,A3,A4,A5)  CCALLSFFUN4(GHFEKE,ghfeke,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghffer.f
+------------------------------------------------------------------*/
+
+#define GHFFER(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GHFFER,ghffer,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghffrm.f
+------------------------------------------------------------------*/
+
+#define GHFFRM(A1)  CCALLSFSUB1(GHFFRM,ghffrm,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfhad.f
+------------------------------------------------------------------*/
+
+#define GHFHAD(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GHFHAD,ghfhad,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfhdi.f
+------------------------------------------------------------------*/
+
+#define GHFHDI() CCALLSFSUB0(GHFHDI,ghfhdi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfhdn.f
+------------------------------------------------------------------*/
+
+#define GHFHDN(A1,A2,A3,A4)  CCALLSFSUB4(GHFHDN,ghfhdn,FLOAT,FLOAT,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfhyp.f
+------------------------------------------------------------------*/
+
+#define GHFHYP(A1,A2,A3,A4)  CCALLSFSUB4(GHFHYP,ghfhyp,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfief.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(INT,GHFIEF,ghfief,FLOAT,INT)
+#define GHFIEF(A2,A3)  CCALLSFFUN2(GHFIEF,ghfief,FLOAT,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfkin.f
+------------------------------------------------------------------*/
+
+#define GHFKIN(A1,A2,A3)  CCALLSFSUB3(GHFKIN,ghfkin,FLOATV,FLOATV,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfnuc.f
+------------------------------------------------------------------*/
+
+#define GHFNUC(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GHFNUC,ghfnuc,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfpof.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GHFPOF,ghfpof,FLOAT,INT)
+#define GHFPOF(A2,A3)  CCALLSFFUN2(GHFPOF,ghfpof,FLOAT,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfpol.f
+------------------------------------------------------------------*/
+
+#define GHFPOL(A1,A2)  CCALLSFSUB2(GHFPOL,ghfpol,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfrag.f
+------------------------------------------------------------------*/
+
+#define GHFRAG(A1)  CCALLSFSUB1(GHFRAG,ghfrag,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfrak.f
+------------------------------------------------------------------*/
+
+#define GHFRAK(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GHFRAK,ghfrak,INT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfsgi.f
+------------------------------------------------------------------*/
+
+#define GHFSGI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GHFSGI,ghfsgi,INT,FLOAT,INT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghftch.f
+------------------------------------------------------------------*/
+
+#define GHFTCH(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GHFTCH,ghftch,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfthr.f
+------------------------------------------------------------------*/
+
+#define GHFTHR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(GHFTHR,ghfthr,FLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghftra.f
+------------------------------------------------------------------*/
+
+#define GHFTRA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(GHFTRA,ghftra,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghftrn.f
+------------------------------------------------------------------*/
+
+#define GHFTRN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GHFTRN,ghftrn,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghftwd.f
+------------------------------------------------------------------*/
+
+#define GHFTWD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(GHFTWD,ghftwd,FLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghftwo.f
+------------------------------------------------------------------*/
+
+#define GHFTWO(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)  CCALLSFSUB18(GHFTWO,ghftwo,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT,FLOAT,PFLOAT,INT,INT,FLOAT,FLOAT,FLOAT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghfxla.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHFXLA,ghfxla,FLOAT,FLOAT,FLOAT)
+#define GHFXLA(A2,A3,A4)  CCALLSFFUN3(GHFXLA,ghfxla,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghgene.f
+------------------------------------------------------------------*/
+
+#define GHGENE(A1,A2,A3,A4,A5)  CCALLSFSUB5(GHGENE,ghgene,INT,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghisra.f
+------------------------------------------------------------------*/
+
+#define GHISRA(A1,A2,A3,A4,A5)  CCALLSFSUB5(GHISRA,ghisra,FLOATV,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghkind.f
+------------------------------------------------------------------*/
+
+#define GHKIND(A1,A2,A3)  CCALLSFSUB3(GHKIND,ghkind,FLOAT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghlead.f
+------------------------------------------------------------------*/
+
+#define GHLEAD(A1,A2,A3,A4)  CCALLSFSUB4(GHLEAD,ghlead,FLOAT,INT,INT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghmix.f
+------------------------------------------------------------------*/
+
+#define GHMIX(A1,A2,A3,A4)  CCALLSFSUB4(GHMIX,ghmix,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghmlg.f
+------------------------------------------------------------------*/
+
+#define GHMLG(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GHMLG,ghmlg,FLOAT,FLOAT,FLOAT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghmome.f
+------------------------------------------------------------------*/
+
+#define GHMOME(A1,A2,A3,A4)  CCALLSFSUB4(GHMOME,ghmome,FLOAT,INT,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghmult.f
+------------------------------------------------------------------*/
+
+#define GHMULT(A1,A2,A3,A4)  CCALLSFSUB4(GHMULT,ghmult,FLOAT,PINT,INT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghrear.f
+------------------------------------------------------------------*/
+
+#define GHREAR(A1,A2,A3,A4)  CCALLSFSUB4(GHREAR,ghrear,PINT,PINT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghsig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHSIG,ghsig,FLOAT,INT,FLOAT)
+#define GHSIG(A2,A3,A4)  CCALLSFFUN3(GHSIG,ghsig,FLOAT,INT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghsigm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHSIGM,ghsigm,FLOAT,INT,FLOAT)
+#define GHSIGM(A2,A3,A4)  CCALLSFFUN3(GHSIGM,ghsigm,FLOAT,INT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghstop.f
+------------------------------------------------------------------*/
+
+#define GHSTOP() CCALLSFSUB0(GHSTOP,ghstop)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghtati.f
+------------------------------------------------------------------*/
+
+#define GHTATI() CCALLSFSUB0(GHTATI,ghtati)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ghttra.f
+------------------------------------------------------------------*/
+
+#define GHTTRA(A1,A2,A3,A4)  CCALLSFSUB4(GHTTRA,ghttra,FLOAT,PFLOAT,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gicyl.f
+------------------------------------------------------------------*/
+
+#define GICYL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GICYL,gicyl,FLOAT,FLOATV,FLOATV,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginctu.f
+------------------------------------------------------------------*/
+
+#define GINCTU(A1,A2,A3)  CCALLSFSUB3(GINCTU,ginctu,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gingtr.f
+------------------------------------------------------------------*/
+
+#define GINGTR(A1,A2,A3)  CCALLSFSUB3(GINGTR,gingtr,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginit.f
+------------------------------------------------------------------*/
+
+#define GINIT() CCALLSFSUB0(GINIT,ginit)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginme.f
+------------------------------------------------------------------*/
+
+#define GINME(A1,A2,A3,A4)  CCALLSFSUB4(GINME,ginme,FLOATV,FLOAT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginpar.f
+------------------------------------------------------------------*/
+
+#define GINPAR(A1,A2,A3)  CCALLSFSUB3(GINPAR,ginpar,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginpco.f
+------------------------------------------------------------------*/
+
+#define GINPCO(A1,A2,A3)  CCALLSFSUB3(GINPCO,ginpco,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginpgo.f
+------------------------------------------------------------------*/
+
+#define GINPGO(A1,A2,A3)  CCALLSFSUB3(GINPGO,ginpgo,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginrot.f
+------------------------------------------------------------------*/
+
+#define GINROT(A1,A2,A3)  CCALLSFSUB3(GINROT,ginrot,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gintco.f
+------------------------------------------------------------------*/
+
+#define GINTCO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GINTCO,gintco,FLOATV,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gintrp.f
+------------------------------------------------------------------*/
+
+#define GINTRP(A1,A2,A3)  CCALLSFSUB3(GINTRP,gintrp,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ginvol.f
+------------------------------------------------------------------*/
+
+#define GINVOL(A1,A2)  CCALLSFSUB2(GINVOL,ginvol,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/giplan.f
+------------------------------------------------------------------*/
+
+#define GIPLAN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GIPLAN,giplan,FLOAT,FLOATV,FLOATV,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gitran.f
+------------------------------------------------------------------*/
+
+#define GITRAN(A1,A2,A3,A4)  CCALLSFSUB4(GITRAN,gitran,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gkhits.f
+------------------------------------------------------------------*/
+/*
+#define gkhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gkhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gkhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gkhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GKHITS(A1,A2,A3)  CCALLSFSUB3(GKHITS,gkhits,STRING,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gkxyz.f
+------------------------------------------------------------------*/
+
+#define GKXYZ(A1)  CCALLSFSUB1(GKXYZ,gkxyz,FLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glande.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDE,glande,FLOAT)
+#define GLANDE(A2)  CCALLSFFUN1(GLANDE,glande,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glandg.f
+------------------------------------------------------------------*/
+
+#define GLANDG(A1)  CCALLSFSUB1(GLANDG,glandg,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glando.f
+------------------------------------------------------------------*/
+
+#define GLANDO(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GLANDO,glando,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glandr.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDR,glandr,FLOAT)
+#define GLANDR(A2)  CCALLSFFUN1(GLANDR,glandr,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glands.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDS,glands,FLOAT)
+#define GLANDS(A2)  CCALLSFFUN1(GLANDS,glands,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glandz.f
+------------------------------------------------------------------*/
+
+#define GLANDZ(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GLANDZ,glandz,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glast.f
+------------------------------------------------------------------*/
+
+#define GLAST() CCALLSFSUB0(GLAST,glast)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glmoth.f
+------------------------------------------------------------------*/
+/*
+#define glmoth_ELEMS_1          ZTRINGV_NUM(1)
+#define glmoth_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GLMOTH(A1,A2,A3,A4,A5)  CCALLSFSUB5(GLMOTH,glmoth,STRING,INT,PINT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glook.f
+------------------------------------------------------------------*/
+/*
+#define glook_ELEMS_1          ZTRINGV_NUM(1)
+#define glook_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GLOOK(A1,A2,A3,A4)  CCALLSFSUB4(GLOOK,glook,STRING,INTV,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gloren.f
+------------------------------------------------------------------*/
+
+#define GLOREN(A1,A2,A3)  CCALLSFSUB3(GLOREN,gloren,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glsklt.f
+------------------------------------------------------------------*/
+
+#define GLSKLT() CCALLSFSUB0(GLSKLT,glsklt)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gltrac.f
+------------------------------------------------------------------*/
+
+#define GLTRAC() CCALLSFSUB0(GLTRAC,gltrac)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gludky.f
+------------------------------------------------------------------*/
+
+#define GLUDKY() CCALLSFSUB0(GLUDKY,gludky)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glund.f
+------------------------------------------------------------------*/
+
+#define GLUND() CCALLSFSUB0(GLUND,glund)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glundi.f
+------------------------------------------------------------------*/
+
+#define GLUNDI() CCALLSFSUB0(GLUNDI,glundi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/glvolu.f
+------------------------------------------------------------------*/
+
+#define GLVOLU(A1,A2,A3,A4)  CCALLSFSUB4(GLVOLU,glvolu,INT,INTV,INTV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gm3pol.f
+------------------------------------------------------------------*/
+
+#define GM3POL(A1,A2)  CCALLSFSUB2(GM3POL,gm3pol,FLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmail.f
+------------------------------------------------------------------*/
+
+#define GMAIL(A1,A2)  CCALLSFSUB2(GMAIL,gmail,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmate.f
+------------------------------------------------------------------*/
+
+#define GMATE() CCALLSFSUB0(GMATE,gmate)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmclos.f
+------------------------------------------------------------------*/
+
+#define GMCLOS() CCALLSFSUB0(GMCLOS,gmclos)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmcoul.f
+------------------------------------------------------------------*/
+
+#define GMCOUL(A1,A2)  CCALLSFSUB2(GMCOUL,gmcoul,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmedia.f
+------------------------------------------------------------------*/
+
+#define GMEDIA(A1,A2)  CCALLSFSUB2(GMEDIA,gmedia,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmedin.f
+------------------------------------------------------------------*/
+
+#define GMEDIN() CCALLSFSUB0(GMEDIN,gmedin)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmediv.f
+------------------------------------------------------------------*/
+
+#define GMEDIV(A1,A2,A3,A4)  CCALLSFSUB4(GMEDIV,gmediv,INT,PINT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmepos.f
+------------------------------------------------------------------*/
+
+#define GMEPOS(A1,A2,A3,A4)  CCALLSFSUB4(GMEPOS,gmepos,INT,INT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmgaus.f
+------------------------------------------------------------------*/
+
+#define GMGAUS(A1,A2)  CCALLSFSUB2(GMGAUS,gmgaus,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmol4.f
+------------------------------------------------------------------*/
+
+#define GMOL4(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GMOL4,gmol4,PFLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmoli.f
+------------------------------------------------------------------*/
+
+#define GMOLI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GMOLI,gmoli,FLOATV,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmolie.f
+------------------------------------------------------------------*/
+
+#define GMOLIE(A1,A2,A3)  CCALLSFSUB3(GMOLIE,gmolie,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmolio.f
+------------------------------------------------------------------*/
+
+#define GMOLIO(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GMOLIO,gmolio,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmopen.f
+------------------------------------------------------------------*/
+
+#define GMOPEN(A1,A2,A3)  CCALLSFSUB3(GMOPEN,gmopen,FLOAT,FLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmtod.f
+------------------------------------------------------------------*/
+
+#define GMTOD(A1,A2,A3)  CCALLSFSUB3(GMTOD,gmtod,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmulof.f
+------------------------------------------------------------------*/
+
+#define GMULOF() CCALLSFSUB0(GMULOF,gmulof)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmults.f
+------------------------------------------------------------------*/
+
+#define GMULTS() CCALLSFSUB0(GMULTS,gmults)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmunu.f
+------------------------------------------------------------------*/
+
+#define GMUNU() CCALLSFSUB0(GMUNU,gmunu)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmunui.f
+------------------------------------------------------------------*/
+
+#define GMUNUI() CCALLSFSUB0(GMUNUI,gmunui)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gmusig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GMUSIG,gmusig,FLOAT,FLOAT,FLOAT)
+#define GMUSIG(A2,A3,A4)  CCALLSFFUN3(GMUSIG,gmusig,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnbox.f
+------------------------------------------------------------------*/
+
+#define GNBOX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNBOX,gnbox,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gncone.f
+------------------------------------------------------------------*/
+
+#define GNCONE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNCONE,gncone,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnctub.f
+------------------------------------------------------------------*/
+
+#define GNCTUB(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNCTUB,gnctub,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gneltu.f
+------------------------------------------------------------------*/
+
+#define GNELTU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNELTU,gneltu,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnext.f
+------------------------------------------------------------------*/
+
+#define GNEXT(A1,A2,A3)  CCALLSFSUB3(GNEXT,gnext,FLOATV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnhype.f
+------------------------------------------------------------------*/
+
+#define GNHYPE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNHYPE,gnhype,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnobox.f
+------------------------------------------------------------------*/
+
+#define GNOBOX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOBOX,gnobox,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnocon.f
+------------------------------------------------------------------*/
+
+#define GNOCON(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOCON,gnocon,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnoctu.f
+------------------------------------------------------------------*/
+
+#define GNOCTU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOCTU,gnoctu,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnoelt.f
+------------------------------------------------------------------*/
+
+#define GNOELT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOELT,gnoelt,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnohyp.f
+------------------------------------------------------------------*/
+
+#define GNOHYP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOHYP,gnohyp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnopar.f
+------------------------------------------------------------------*/
+
+#define GNOPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPAR,gnopar,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnopco.f
+------------------------------------------------------------------*/
+
+#define GNOPCO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPCO,gnopco,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnopg1.f
+------------------------------------------------------------------*/
+
+#define GNOPG1(A1,A2,A3)  CCALLSFSUB3(GNOPG1,gnopg1,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnopgo.f
+------------------------------------------------------------------*/
+
+#define GNOPGO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPGO,gnopgo,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnosph.f
+------------------------------------------------------------------*/
+
+#define GNOSPH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOSPH,gnosph,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotr1.f
+------------------------------------------------------------------*/
+
+#define GNOTR1(A1)  CCALLSFSUB1(GNOTR1,gnotr1,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotr2.f
+------------------------------------------------------------------*/
+
+#define GNOTR2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GNOTR2,gnotr2,FLOATV,FLOATV,FLOATV,INT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotr9.f
+------------------------------------------------------------------*/
+
+#define GNOTR9(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTR9,gnotr9,FLOATV,FLOATV,FLOATV,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotra.f
+------------------------------------------------------------------*/
+
+#define GNOTRA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTRA,gnotra,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotrp.f
+------------------------------------------------------------------*/
+
+#define GNOTRP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOTRP,gnotrp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnotub.f
+------------------------------------------------------------------*/
+
+#define GNOTUB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTUB,gnotub,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnpara.f
+------------------------------------------------------------------*/
+
+#define GNPARA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPARA,gnpara,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnpcon.f
+------------------------------------------------------------------*/
+
+#define GNPCON(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPCON,gnpcon,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnpgo1.f
+------------------------------------------------------------------*/
+
+#define GNPGO1(A1,A2,A3)  CCALLSFSUB3(GNPGO1,gnpgo1,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnpgon.f
+------------------------------------------------------------------*/
+
+#define GNPGON(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPGON,gnpgon,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnslwd.f
+------------------------------------------------------------------*/
+
+#define GNSLWD(A1,A2,A3,A4)  CCALLSFSUB4(GNSLWD,gnslwd,PINT,INT,INT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gnsphr.f
+------------------------------------------------------------------*/
+
+#define GNSPHR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNSPHR,gnsphr,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gntrap.f
+------------------------------------------------------------------*/
+
+#define GNTRAP(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNTRAP,gntrap,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gntrp.f
+------------------------------------------------------------------*/
+
+#define GNTRP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNTRP,gntrp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gntube.f
+------------------------------------------------------------------*/
+
+#define GNTUBE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNTUBE,gntube,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gopen.f
+------------------------------------------------------------------*/
+/*
+#define gopen_ELEMS_2          ZTRINGV_NUM(1)
+#define gopen_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GOPEN(A1,A2,A3,A4)  CCALLSFSUB4(GOPEN,gopen,INT,STRING,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpairg.f
+------------------------------------------------------------------*/
+
+#define GPAIRG() CCALLSFSUB0(GPAIRG,gpairg)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpairm.f
+------------------------------------------------------------------*/
+
+#define GPAIRM() CCALLSFSUB0(GPAIRM,gpairm)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpart.f
+------------------------------------------------------------------*/
+
+#define GPART() CCALLSFSUB0(GPART,gpart)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpcxyz.f
+------------------------------------------------------------------*/
+
+#define GPCXYZ() CCALLSFSUB0(GPCXYZ,gpcxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpdigi.f
+------------------------------------------------------------------*/
+/*
+#define gpdigi_ELEMS_1          ZTRINGV_NUM(1)
+#define gpdigi_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gpdigi_ELEMS_2          ZTRINGV_NUM(1)
+#define gpdigi_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPDIGI(A1,A2)  CCALLSFSUB2(GPDIGI,gpdigi,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpdk.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPDK,gpdk,FLOAT,FLOAT,FLOAT)
+#define GPDK(A2,A3,A4)  CCALLSFFUN3(GPDK,gpdk,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpdrif.f
+------------------------------------------------------------------*/
+
+#define GPDRIF(A1,A2,A3)  CCALLSFSUB3(GPDRIF,gpdrif,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpfis.f
+------------------------------------------------------------------*/
+
+#define GPFIS() CCALLSFSUB0(GPFIS,gpfis)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpfisi.f
+------------------------------------------------------------------*/
+
+#define GPFISI() CCALLSFSUB0(GPFISI,gpfisi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpghei.f
+------------------------------------------------------------------*/
+
+#define GPGHEI() CCALLSFSUB0(GPGHEI,gpghei)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpgkin.f
+------------------------------------------------------------------*/
+
+#define GPGKIN() CCALLSFSUB0(GPGKIN,gpgkin)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphadr.f
+------------------------------------------------------------------*/
+
+#define GPHADR() CCALLSFSUB0(GPHADR,gphadr)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphits.f
+------------------------------------------------------------------*/
+/*
+#define gphits_ELEMS_1          ZTRINGV_NUM(1)
+#define gphits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gphits_ELEMS_2          ZTRINGV_NUM(1)
+#define gphits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPHITS(A1,A2)  CCALLSFSUB2(GPHITS,gphits,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphmfi.f
+------------------------------------------------------------------*/
+
+#define GPHMFI() CCALLSFSUB0(GPHMFI,gphmfi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphot.f
+------------------------------------------------------------------*/
+
+#define GPHOT() CCALLSFSUB0(GPHOT,gphot)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphoti.f
+------------------------------------------------------------------*/
+
+#define GPHOTI() CCALLSFSUB0(GPHOTI,gphoti)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphsig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GPHSIG,gphsig,FLOAT,FLOAT)
+#define GPHSIG(A2,A3)  CCALLSFFUN2(GPHSIG,gphsig,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gphysi.f
+------------------------------------------------------------------*/
+
+#define GPHYSI() CCALLSFSUB0(GPHYSI,gphysi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpions.f
+------------------------------------------------------------------*/
+
+#define GPIONS() CCALLSFSUB0(GPIONS,gpions)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpjxyz.f
+------------------------------------------------------------------*/
+
+#define GPJXYZ(A1)  CCALLSFSUB1(GPJXYZ,gpjxyz,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpkine.f
+------------------------------------------------------------------*/
+
+#define GPKINE(A1)  CCALLSFSUB1(GPKINE,gpkine,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gplmat.f
+------------------------------------------------------------------*/
+/*
+#define gplmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gplmat_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GPLMAT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GPLMAT,gplmat,INT,INT,STRING,INT,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpmate.f
+------------------------------------------------------------------*/
+
+#define GPMATE(A1)  CCALLSFSUB1(GPMATE,gpmate,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpmwpc.f
+------------------------------------------------------------------*/
+
+#define GPMWPC(A1,A2,A3)  CCALLSFSUB3(GPMWPC,gpmwpc,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpoiss.f
+------------------------------------------------------------------*/
+
+#define GPOISS(A1,A2,A3)  CCALLSFSUB3(GPOISS,gpoiss,FLOATV,PINT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gppart.f
+------------------------------------------------------------------*/
+
+#define GPPART(A1)  CCALLSFSUB1(GPPART,gppart,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprela.f
+------------------------------------------------------------------*/
+
+#define GPRELA() CCALLSFSUB0(GPRELA,gprela)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprelm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPRELM,gprelm,FLOAT,FLOAT,FLOAT)
+#define GPRELM(A2,A3,A4)  CCALLSFFUN3(GPRELM,gprelm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprint.f
+------------------------------------------------------------------*/
+/*
+#define gprint_ELEMS_1          ZTRINGV_NUM(1)
+#define gprint_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GPRINT(A1,A2)  CCALLSFSUB2(GPRINT,gprint,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprmat.f
+------------------------------------------------------------------*/
+/*
+#define gprmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gprmat_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GPRMAT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GPRMAT,gprmat,INT,INT,STRING,INT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprobi.f
+------------------------------------------------------------------*/
+
+#define GPROBI() CCALLSFSUB0(GPROBI,gprobi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprotm.f
+------------------------------------------------------------------*/
+
+#define GPROTM(A1)  CCALLSFSUB1(GPROTM,gprotm,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprsga.f
+------------------------------------------------------------------*/
+
+#define GPRSGA() CCALLSFSUB0(GPRSGA,gprsga)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprsgg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GPRSGG,gprsgg,FLOAT,FLOAT)
+#define GPRSGG(A2,A3)  CCALLSFFUN2(GPRSGG,gprsgg,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gprsgm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPRSGM,gprsgm,FLOAT,FLOAT,FLOAT)
+#define GPRSGM(A2,A3,A4)  CCALLSFFUN3(GPRSGM,gprsgm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpsets.f
+------------------------------------------------------------------*/
+/*
+#define gpsets_ELEMS_1          ZTRINGV_NUM(1)
+#define gpsets_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gpsets_ELEMS_2          ZTRINGV_NUM(1)
+#define gpsets_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPSETS(A1,A2)  CCALLSFSUB2(GPSETS,gpsets,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpstat.f
+------------------------------------------------------------------*/
+
+#define GPSTAT() CCALLSFSUB0(GPSTAT,gpstat)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gptmed.f
+------------------------------------------------------------------*/
+
+#define GPTMED(A1)  CCALLSFSUB1(GPTMED,gptmed,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpvert.f
+------------------------------------------------------------------*/
+
+#define GPVERT(A1)  CCALLSFSUB1(GPVERT,gpvert,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gpvolu.f
+------------------------------------------------------------------*/
+
+#define GPVOLU(A1)  CCALLSFSUB1(GPVOLU,gpvolu,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grangi.f
+------------------------------------------------------------------*/
+
+#define GRANGI() CCALLSFSUB0(GRANGI,grangi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/granor.f
+------------------------------------------------------------------*/
+
+#define GRANOR(A1,A2)  CCALLSFSUB2(GRANOR,granor,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grayl.f
+------------------------------------------------------------------*/
+
+#define GRAYL() CCALLSFSUB0(GRAYL,grayl)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grayli.f
+------------------------------------------------------------------*/
+
+#define GRAYLI() CCALLSFSUB0(GRAYLI,grayli)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grend.f
+------------------------------------------------------------------*/
+
+#define GREND(A1)  CCALLSFSUB1(GREND,grend,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grfile.f
+------------------------------------------------------------------*/
+/*
+#define grfile_ELEMS_2          ZTRINGV_NUM(1)
+#define grfile_ELEMLEN_2        ZTRINGV_NUM(255)
+#define grfile_ELEMS_3          ZTRINGV_NUM(1)
+#define grfile_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GRFILE(A1,A2,A3)  CCALLSFSUB3(GRFILE,grfile,INT,STRING,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grget.f
+------------------------------------------------------------------*/
+/*
+#define grget_ELEMS_1          ZTRINGV_NUM(1)
+#define grget_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GRGET(A1,A2,A3,A4,A5)  CCALLSFSUB5(GRGET,grget,STRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grhits.f
+------------------------------------------------------------------*/
+/*
+#define grhits_ELEMS_1          ZTRINGV_NUM(1)
+#define grhits_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grhits_ELEMS_2          ZTRINGV_NUM(1)
+#define grhits_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GRHITS(A1,A2,A3,A4)  CCALLSFSUB4(GRHITS,grhits,STRING,STRING,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grin.f
+------------------------------------------------------------------*/
+/*
+#define grin_ELEMS_1          ZTRINGV_NUM(1)
+#define grin_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grin_ELEMS_3          ZTRINGV_NUM(1)
+#define grin_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GRIN(A1,A2,A3)  CCALLSFSUB3(GRIN,grin,STRING,INT,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grkuta.f
+------------------------------------------------------------------*/
+
+#define GRKUTA(A1,A2,A3,A4)  CCALLSFSUB4(GRKUTA,grkuta,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grleas.f
+------------------------------------------------------------------*/
+
+#define GRLEAS(A1)  CCALLSFSUB1(GRLEAS,grleas,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grmdir.f
+------------------------------------------------------------------*/
+/*
+#define grmdir_ELEMS_1          ZTRINGV_NUM(1)
+#define grmdir_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grmdir_ELEMS_2          ZTRINGV_NUM(1)
+#define grmdir_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GRMDIR(A1,A2)  CCALLSFSUB2(GRMDIR,grmdir,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grmtd.f
+------------------------------------------------------------------*/
+
+#define GRMTD(A1,A2,A3)  CCALLSFSUB3(GRMTD,grmtd,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grmul.f
+------------------------------------------------------------------*/
+
+#define GRMUL(A1,A2,A3)  CCALLSFSUB3(GRMUL,grmul,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grndm.f
+------------------------------------------------------------------*/
+
+#define GRNDM(A1,A2)  CCALLSFSUB2(GRNDM,grndm,PFLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grndmq.f
+------------------------------------------------------------------*/
+/*
+#define grndmq_ELEMS_4          ZTRINGV_NUM(1)
+#define grndmq_ELEMLEN_4        ZTRINGV_NUM(255)
+*/
+
+#define GRNDMQ(A1,A2,A3,A4)  CCALLSFSUB4(GRNDMQ,grndmq,PINT,PINT,INT,STRING,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grot.f
+------------------------------------------------------------------*/
+
+#define GROT(A1,A2,A3)  CCALLSFSUB3(GROT,grot,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grout.f
+------------------------------------------------------------------*/
+/*
+#define grout_ELEMS_1          ZTRINGV_NUM(1)
+#define grout_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grout_ELEMS_3          ZTRINGV_NUM(1)
+#define grout_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GROUT(A1,A2,A3)  CCALLSFSUB3(GROUT,grout,STRING,INT,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grpar.f
+------------------------------------------------------------------*/
+
+#define GRPAR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GRPAR,grpar,FLOAT,INT,FLOATV,INT,FLOAT,FLOAT,INT,FLOATV,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grsave.f
+------------------------------------------------------------------*/
+/*
+#define grsave_ELEMS_1          ZTRINGV_NUM(1)
+#define grsave_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GRSAVE(A1,A2,A3,A4,A5)  CCALLSFSUB5(GRSAVE,grsave,STRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/grun.f
+------------------------------------------------------------------*/
+
+#define GRUN() CCALLSFSUB0(GRUN,grun)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsagtr.f
+------------------------------------------------------------------*/
+
+#define GSAGTR(A1,A2,A3,A4)  CCALLSFSUB4(GSAGTR,gsagtr,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsahit.f
+------------------------------------------------------------------*/
+
+#define GSAHIT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSAHIT,gsahit,INT,INT,INT,INTV,FLOATV,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsaphi.f
+------------------------------------------------------------------*/
+
+#define GSAPHI(A1,A2,A3,A4)  CCALLSFSUB4(GSAPHI,gsaphi,FLOATV,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsatt.f
+------------------------------------------------------------------*/
+/*
+#define gsatt_ELEMS_1          ZTRINGV_NUM(1)
+#define gsatt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsatt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsatt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSATT(A1,A2,A3)  CCALLSFSUB3(GSATT,gsatt,STRING,STRING,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsave.f
+------------------------------------------------------------------*/
+/*
+#define gsave_ELEMS_2          ZTRINGV_NUM(1)
+#define gsave_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSAVE(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSAVE,gsave,INT,STRINGV,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gscani.f
+------------------------------------------------------------------*/
+
+#define GSCANI() CCALLSFSUB0(GSCANI,gscani)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gscank.f
+------------------------------------------------------------------*/
+
+#define GSCANK() CCALLSFSUB0(GSCANK,gscank)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gscano.f
+------------------------------------------------------------------*/
+
+#define GSCANO() CCALLSFSUB0(GSCANO,gscano)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gscanu.f
+------------------------------------------------------------------*/
+
+#define GSCANU() CCALLSFSUB0(GSCANU,gscanu)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gschit.f
+------------------------------------------------------------------*/
+
+#define GSCHIT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSCHIT,gschit,INT,INT,INT,INTV,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gschk.f
+------------------------------------------------------------------*/
+/*
+#define gschk_ELEMS_1          ZTRINGV_NUM(1)
+#define gschk_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gschk_ELEMS_2          ZTRINGV_NUM(1)
+#define gschk_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSCHK(A1,A2,A3,A4)  CCALLSFSUB4(GSCHK,gschk,STRING,STRING,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gscvol.f
+------------------------------------------------------------------*/
+
+#define GSCVOL() CCALLSFSUB0(GSCVOL,gscvol)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdet.f
+------------------------------------------------------------------*/
+/*
+#define gsdet_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdet_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdet_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDET(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GSDET,gsdet,STRINGV,STRINGV,INT,STRINGV,INTV,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdeta.f
+------------------------------------------------------------------*/
+/*
+#define gsdeta_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdeta_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdeta_ELEMS_3          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GSDETA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDETA,gsdeta,STRING,STRING,STRING,INT,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdetd.f
+------------------------------------------------------------------*/
+/*
+#define gsdetd_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetd_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdetd_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDETD(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSDETD,gsdetd,STRING,STRING,INT,STRINGV,INTV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdeth.f
+------------------------------------------------------------------*/
+/*
+#define gsdeth_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdeth_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdeth_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDETH(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDETH,gsdeth,STRING,STRING,INT,STRINGV,INTV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdetu.f
+------------------------------------------------------------------*/
+/*
+#define gsdetu_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetu_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDETU(A1,A2,A3,A4)  CCALLSFSUB4(GSDETU,gsdetu,STRING,STRING,INT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdetv.f
+------------------------------------------------------------------*/
+/*
+#define gsdetv_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetv_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetv_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetv_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDETV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDETV,gsdetv,STRING,STRING,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdigi.f
+------------------------------------------------------------------*/
+
+#define GSDIGI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDIGI,gsdigi,INT,INT,INTV,INT,INTV,INTV,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdk.f
+------------------------------------------------------------------*/
+
+#define GSDK(A1,A2,A3)  CCALLSFSUB3(GSDK,gsdk,INT,FLOATV,INTV,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvn.f
+------------------------------------------------------------------*/
+/*
+#define gsdvn_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvn_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvn_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvn_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVN(A1,A2,A3,A4)  CCALLSFSUB4(GSDVN,gsdvn,STRING,STRING,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvn2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvn2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvn2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvn2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvn2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVN2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVN2,gsdvn2,STRING,STRING,INT,INT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvs.f
+------------------------------------------------------------------*/
+/*
+#define gsdvs_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvs_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvs_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvs_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSDVS,gsdvs,STRING,STRING,FLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvs2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvs2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvs2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvs2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvs2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVS2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVS2,gsdvs2,STRING,STRING,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvt.f
+------------------------------------------------------------------*/
+/*
+#define gsdvt_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVT,gsdvt,STRING,STRING,FLOAT,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvt2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvt2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvt2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvt2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvt2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVT2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDVT2,gsdvt2,STRING,STRING,FLOAT,INT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsdvx.f
+------------------------------------------------------------------*/
+/*
+#define gsdvx_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvx_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvx_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvx_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVX(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSDVX,gsdvx,STRING,STRING,INT,INT,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsipar.f
+------------------------------------------------------------------*/
+
+#define GSIPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSIPAR,gsipar,INT,INT,INT,INT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gskine.f
+------------------------------------------------------------------*/
+
+#define GSKINE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSKINE,gskine,FLOATV,INT,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsking.f
+------------------------------------------------------------------*/
+
+#define GSKING(A1)  CCALLSFSUB1(GSKING,gsking,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsmate.f
+------------------------------------------------------------------*/
+/*
+#define gsmate_ELEMS_2          ZTRINGV_NUM(1)
+#define gsmate_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSMATE(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GSMATE,gsmate,INT,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsmixt.f
+------------------------------------------------------------------*/
+/*
+#define gsmixt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsmixt_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSMIXT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSMIXT,gsmixt,INT,STRING,FLOATV,FLOATV,FLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsnear.f
+------------------------------------------------------------------*/
+/*
+#define gsnear_ELEMS_1          ZTRINGV_NUM(1)
+#define gsnear_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSNEAR(A1,A2,A3,A4)  CCALLSFSUB4(GSNEAR,gsnear,STRING,INT,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsnext.f
+------------------------------------------------------------------*/
+/*
+#define gsnext_ELEMS_1          ZTRINGV_NUM(1)
+#define gsnext_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSNEXT(A1,A2,A3,A4)  CCALLSFSUB4(GSNEXT,gsnext,STRING,INT,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsngtr.f
+------------------------------------------------------------------*/
+
+#define GSNGTR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSNGTR,gsngtr,FLOATV,FLOATV,INT,FLOAT,PFLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsord.f
+------------------------------------------------------------------*/
+/*
+#define gsord_ELEMS_1          ZTRINGV_NUM(1)
+#define gsord_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSORD(A1,A2)  CCALLSFSUB2(GSORD,gsord,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gspart.f
+------------------------------------------------------------------*/
+/*
+#define gspart_ELEMS_2          ZTRINGV_NUM(1)
+#define gspart_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSPART(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSPART,gspart,INT,STRING,INT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gspos.f
+------------------------------------------------------------------*/
+/*
+#define gspos_ELEMS_1          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gspos_ELEMS_3          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_3        ZTRINGV_NUM(4)
+#define gspos_ELEMS_8          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_8        ZTRINGV_NUM(4)
+*/
+
+#define GSPOS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSPOS,gspos,STRING,INT,STRING,FLOAT,FLOAT,FLOAT,INT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsposp.f
+------------------------------------------------------------------*/
+/*
+#define gsposp_ELEMS_1          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsposp_ELEMS_3          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_3        ZTRINGV_NUM(4)
+#define gsposp_ELEMS_8          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_8        ZTRINGV_NUM(4)
+*/
+
+#define GSPOSP(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GSPOSP,gsposp,STRING,INT,STRING,FLOAT,FLOAT,FLOAT,INT,STRING,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsrotm.f
+------------------------------------------------------------------*/
+
+#define GSROTM(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSROTM,gsrotm,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsscan.f
+------------------------------------------------------------------*/
+
+#define GSSCAN(A1,A2)  CCALLSFSUB2(GSSCAN,gsscan,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsstak.f
+------------------------------------------------------------------*/
+
+#define GSSTAK(A1)  CCALLSFSUB1(GSSTAK,gsstak,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gstmed.f
+------------------------------------------------------------------*/
+/*
+#define gstmed_ELEMS_2          ZTRINGV_NUM(1)
+#define gstmed_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSTMED(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(GSTMED,gstmed,INT,STRING,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gstpar.f
+------------------------------------------------------------------*/
+/*
+#define gstpar_ELEMS_2          ZTRINGV_NUM(1)
+#define gstpar_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSTPAR(A1,A2,A3)  CCALLSFSUB3(GSTPAR,gstpar,INT,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gstrac.f
+------------------------------------------------------------------*/
+
+#define GSTRAC() CCALLSFSUB0(GSTRAC,gstrac)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsunea.f
+------------------------------------------------------------------*/
+/*
+#define gsunea_ELEMS_1          ZTRINGV_NUM(1)
+#define gsunea_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSUNEA(A1,A2)  CCALLSFSUB2(GSUNEA,gsunea,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsvert.f
+------------------------------------------------------------------*/
+
+#define GSVERT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSVERT,gsvert,FLOATV,INT,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsvolu.f
+------------------------------------------------------------------*/
+/*
+#define gsvolu_ELEMS_1          ZTRINGV_NUM(1)
+#define gsvolu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsvolu_ELEMS_2          ZTRINGV_NUM(1)
+#define gsvolu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSVOLU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSVOLU,gsvolu,STRING,STRING,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gsxyz.f
+------------------------------------------------------------------*/
+
+#define GSXYZ() CCALLSFSUB0(GSXYZ,gsxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtau.f
+------------------------------------------------------------------*/
+
+#define GTAU() CCALLSFSUB0(GTAU,gtau)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtelec.f
+------------------------------------------------------------------*/
+
+#define GTELEC() CCALLSFSUB0(GTELEC,gtelec)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtgama.f
+------------------------------------------------------------------*/
+
+#define GTGAMA() CCALLSFSUB0(GTGAMA,gtgama)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gthadr.f
+------------------------------------------------------------------*/
+
+#define GTHADR() CCALLSFSUB0(GTHADR,gthadr)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtmedi.f
+------------------------------------------------------------------*/
+
+#define GTMEDI(A1,A2)  CCALLSFSUB2(GTMEDI,gtmedi,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtmuon.f
+------------------------------------------------------------------*/
+
+#define GTMUON() CCALLSFSUB0(GTMUON,gtmuon)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtneut.f
+------------------------------------------------------------------*/
+
+#define GTNEUT() CCALLSFSUB0(GTNEUT,gtneut)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtnext.f
+------------------------------------------------------------------*/
+
+#define GTNEXT() CCALLSFSUB0(GTNEXT,gtnext)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtnino.f
+------------------------------------------------------------------*/
+
+#define GTNINO() CCALLSFSUB0(GTNINO,gtnino)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrack.f
+------------------------------------------------------------------*/
+
+#define GTRACK() CCALLSFSUB0(GTRACK,gtrack)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrain.f
+------------------------------------------------------------------*/
+
+#define GTRAIN(A1,A2)  CCALLSFSUB2(GTRAIN,gtrain,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtreve.f
+------------------------------------------------------------------*/
+
+#define GTREVE() CCALLSFSUB0(GTREVE,gtreve)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrig.f
+------------------------------------------------------------------*/
+
+#define GTRIG() CCALLSFSUB0(GTRIG,gtrig)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrigc.f
+------------------------------------------------------------------*/
+
+#define GTRIGC() CCALLSFSUB0(GTRIGC,gtrigc)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrigi.f
+------------------------------------------------------------------*/
+
+#define GTRIGI() CCALLSFSUB0(GTRIGI,gtrigi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrmul.f
+------------------------------------------------------------------*/
+
+#define GTRMUL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GTRMUL,gtrmul,FLOATV,FLOATV,FLOATV,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gtrnsf.f
+------------------------------------------------------------------*/
+
+#define GTRNSF(A1,A2,A3,A4)  CCALLSFSUB4(GTRNSF,gtrnsf,FLOATV,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gudcay.f
+------------------------------------------------------------------*/
+
+#define GUDCAY() CCALLSFSUB0(GUDCAY,gudcay)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gudigi.f
+------------------------------------------------------------------*/
+
+#define GUDIGI() CCALLSFSUB0(GUDIGI,gudigi)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gudtim.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GUDTIM,gudtim,FLOAT,FLOAT,INT,FLOAT)
+#define GUDTIM(A2,A3,A4,A5)  CCALLSFFUN4(GUDTIM,gudtim,FLOAT,FLOAT,INT,FLOAT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gufld.f
+------------------------------------------------------------------*/
+
+#define GUFLD(A1,A2)  CCALLSFSUB2(GUFLD,gufld,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guhadr.f
+------------------------------------------------------------------*/
+
+#define GUHADR() CCALLSFSUB0(GUHADR,guhadr)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guiget.f
+------------------------------------------------------------------*/
+
+#define GUIGET(A1,A2,A3)  CCALLSFSUB3(GUIGET,guiget,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guinme.f
+------------------------------------------------------------------*/
+
+#define GUINME(A1,A2,A3,A4)  CCALLSFSUB4(GUINME,guinme,FLOATV,FLOAT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guinti.f
+------------------------------------------------------------------*/
+
+#define GUINTI() CCALLSFSUB0(GUINTI,guinti)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gukine.f
+------------------------------------------------------------------*/
+
+#define GUKINE() CCALLSFSUB0(GUKINE,gukine)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gunear.f
+------------------------------------------------------------------*/
+
+#define GUNEAR(A1,A2,A3,A4)  CCALLSFSUB4(GUNEAR,gunear,INT,INT,FLOATV,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gunliv.f
+------------------------------------------------------------------*/
+
+#define GUNLIV(A1,A2,A3)  CCALLSFSUB3(GUNLIV,gunliv,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guout.f
+------------------------------------------------------------------*/
+
+#define GUOUT() CCALLSFSUB0(GUOUT,guout)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gupara.f
+------------------------------------------------------------------*/
+
+#define GUPARA() CCALLSFSUB0(GUPARA,gupara)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guphad.f
+------------------------------------------------------------------*/
+
+#define GUPHAD() CCALLSFSUB0(GUPHAD,guphad)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guskip.f
+------------------------------------------------------------------*/
+
+#define GUSKIP(A1)  CCALLSFSUB1(GUSKIP,guskip,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gustep.f
+------------------------------------------------------------------*/
+
+#define GUSTEP() CCALLSFSUB0(GUSTEP,gustep)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guswim.f
+------------------------------------------------------------------*/
+
+#define GUSWIM(A1,A2,A3,A4)  CCALLSFSUB4(GUSWIM,guswim,FLOAT,FLOAT,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gutrak.f
+------------------------------------------------------------------*/
+
+#define GUTRAK() CCALLSFSUB0(GUTRAK,gutrak)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gutrev.f
+------------------------------------------------------------------*/
+
+#define GUTREV() CCALLSFSUB0(GUTREV,gutrev)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/guview.f
+------------------------------------------------------------------*/
+/*
+#define guview_ELEMS_3          ZTRINGV_NUM(1)
+#define guview_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GUVIEW(A1,A2,A3,A4)  CCALLSFSUB4(GUVIEW,guview,INT,INT,STRING,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gvaviv.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GVAVIV,gvaviv,FLOAT,FLOAT,FLOAT)
+#define GVAVIV(A2,A3,A4)  CCALLSFFUN3(GVAVIV,gvaviv,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gviewf.f
+------------------------------------------------------------------*/
+
+#define GVIEWF(A1,A2,A3)  CCALLSFSUB3(GVIEWF,gviewf,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gwork.f
+------------------------------------------------------------------*/
+
+#define GWORK(A1)  CCALLSFSUB1(GWORK,gwork,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gxsi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GXSI,gxsi,FLOAT)
+#define GXSI(A2)  CCALLSFFUN1(GXSI,gxsi,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gzebra.f
+------------------------------------------------------------------*/
+
+#define GZEBRA(A1)  CCALLSFSUB1(GZEBRA,gzebra,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/gzinit.f
+------------------------------------------------------------------*/
+
+#define GZINIT() CCALLSFSUB0(GZINIT,gzinit)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hadden.f
+------------------------------------------------------------------*/
+
+#define HADDEN() CCALLSFSUB0(HADDEN,hadden)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hadevv.f
+------------------------------------------------------------------*/
+
+#define HADEVV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HADEVV,hadevv,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hadrin.f
+------------------------------------------------------------------*/
+
+#define HADRIN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HADRIN,hadrin,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hadriv.f
+------------------------------------------------------------------*/
+
+#define HADRIV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HADRIV,hadriv,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hevhin.f
+------------------------------------------------------------------*/
+
+#define HEVHIN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HEVHIN,hevhin,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hinhev.f
+------------------------------------------------------------------*/
+
+#define HINHEV(A1,A2,A3,A4)  CCALLSFSUB4(HINHEV,hinhev,INT,DOUBLE,DOUBLE,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hklass.f
+------------------------------------------------------------------*/
+
+#define HKLASS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)  CCALLSFSUB24(HKLASS,hklass,PINT,INT,INT,INT,INTV,INTV,INT,INT,INT,INT,INTV,PINT,PINT,PINT,PINT,PINT,PINT,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/hypero.f
+------------------------------------------------------------------*/
+
+#define HYPERO(A1,A2,A3,A4)  CCALLSFSUB4(HYPERO,hypero,PINT,PINT,PDOUBLE,PDOUBLE,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/iefun.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(INT,IEFUN,iefun,DOUBLE,INT)
+#define IEFUN(A2,A3)  CCALLSFFUN2(IEFUN,iefun,DOUBLE,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/incini.f
+------------------------------------------------------------------*/
+
+#define INCINI() CCALLSFSUB0(INCINI,incini)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/index2.f
+------------------------------------------------------------------*/
+
+#define INDEX2(A1,A2,A3)  CCALLSFSUB3(INDEX2,index2,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/kinpar.f
+------------------------------------------------------------------*/
+
+#define KINPAR(A1,A2,A3)  CCALLSFSUB3(KINPAR,kinpar,DOUBLEV,DOUBLEV,DOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/kmabs.f
+------------------------------------------------------------------*/
+
+#define KMABS(A1)  CCALLSFSUB1(KMABS,kmabs,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/kpois.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(INT,KPOIS,kpois,DOUBLE)
+#define KPOIS(A2)  CCALLSFFUN1(KPOIS,kpois,DOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/limdat.f
+------------------------------------------------------------------*/
+
+#define LIMDAT() CCALLSFSUB0(LIMDAT,limdat)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/lortra.f
+------------------------------------------------------------------*/
+
+#define LORTRA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LORTRA,lortra,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/minv.f
+------------------------------------------------------------------*/
+
+#define MINV(A1,A2,A3,A4,A5)  CCALLSFSUB5(MINV,minv,PFLOAT,INT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nbanh.f
+------------------------------------------------------------------*/
+
+#define NBANH(A1)  CCALLSFSUB1(NBANH,nbanh,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nfac.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(INT,NFAC,nfac,INT)
+#define NFAC(A2)  CCALLSFFUN1(NFAC,nfac,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nizl.f
+------------------------------------------------------------------*/
+
+#define NIZL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NIZL,nizl,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/normal.f
+------------------------------------------------------------------*/
+
+#define NORMAL(A1)  CCALLSFSUB1(NORMAL,normal,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nucevv.f
+------------------------------------------------------------------*/
+
+#define NUCEVV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(NUCEVV,nucevv,PINT,INT,DOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nucrec.f
+------------------------------------------------------------------*/
+
+#define NUCREC(A1,A2)  CCALLSFSUB2(NUCREC,nucrec,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nucrel.f
+------------------------------------------------------------------*/
+
+#define NUCREL(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(NUCREL,nucrel,INT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nucriv.f
+------------------------------------------------------------------*/
+
+#define NUCRIV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(NUCRIV,nucriv,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nudisv.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN5(INT,NUDISV,nudisv,DOUBLE,INT,DOUBLE,PDOUBLE,PDOUBLE)
+#define NUDISV(A2,A3,A4,A5,A6)  CCALLSFFUN5(NUDISV,nudisv,DOUBLE,INT,DOUBLE,PDOUBLE,PDOUBLE,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/nuprel.f
+------------------------------------------------------------------*/
+
+#define NUPREL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NUPREL,nuprel,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/parjet.f
+------------------------------------------------------------------*/
+
+#define PARJET(A1,A2)  CCALLSFSUB2(PARJET,parjet,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/pbanh.f
+------------------------------------------------------------------*/
+
+#define PBANH(A1)  CCALLSFSUB1(PBANH,pbanh,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/pcsdat.f
+------------------------------------------------------------------*/
+
+#define PCSDAT(A1,A2,A3)  CCALLSFSUB3(PCSDAT,pcsdat,INT,INT,LOGICAL,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/phasp.f
+------------------------------------------------------------------*/
+
+#define PHASP() CCALLSFSUB0(PHASP,phasp)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/phpnuc.f
+------------------------------------------------------------------*/
+
+#define PHPNUC() CCALLSFSUB0(PHPNUC,phpnuc)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/pimabs.f
+------------------------------------------------------------------*/
+
+#define PIMABS(A1)  CCALLSFSUB1(PIMABS,pimabs,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/plot.f
+------------------------------------------------------------------*/
+
+#define PLOT(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(PLOT,plot,DOUBLEV,DOUBLEV,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/plotdt.f
+------------------------------------------------------------------*/
+
+#define PLOTDT(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(PLOTDT,plotdt,DOUBLEV,DOUBLEV,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/pmltpc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN6(FLOAT,PMLTPC,pmltpc,INT,INT,INT,INT,FLOAT,FLOAT)
+#define PMLTPC(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(PMLTPC,pmltpc,INT,INT,INT,INT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/pmprab.f
+------------------------------------------------------------------*/
+
+#define PMPRAB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(PMPRAB,pmprab,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/poisso.f
+------------------------------------------------------------------*/
+
+#define POISSO(A1,A2)  CCALLSFSUB2(POISSO,poisso,FLOAT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/qnrg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,QNRG,qnrg,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define QNRG(A2,A3,A4,A5)  CCALLSFFUN4(QNRG,qnrg,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/raco.f
+------------------------------------------------------------------*/
+
+#define RACO(A1,A2,A3)  CCALLSFSUB3(RACO,raco,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rakeka.f
+------------------------------------------------------------------*/
+
+#define RAKEKA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RAKEKA,rakeka,INT,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rakekv.f
+------------------------------------------------------------------*/
+
+#define RAKEKV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RAKEKV,rakekv,INT,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ranres.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,RANRES,ranres,FLOAT)
+#define RANRES(A2)  CCALLSFFUN1(RANRES,ranres,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rbkekv.f
+------------------------------------------------------------------*/
+
+#define RBKEKV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RBKEKV,rbkekv,INT,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rchanv.f
+------------------------------------------------------------------*/
+
+#define RCHANV() CCALLSFSUB0(RCHANV,rchanv)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rchanw.f
+------------------------------------------------------------------*/
+
+#define RCHANW() CCALLSFSUB0(RCHANW,rchanw)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rotes2.f
+------------------------------------------------------------------*/
+
+#define ROTES2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ROTES2,rotes2,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/rtmi.f
+------------------------------------------------------------------*/
+
+#define RTMI(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RTMI,rtmi,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/samcst.f
+------------------------------------------------------------------*/
+
+#define SAMCST(A1,A2,A3)  CCALLSFSUB3(SAMCST,samcst,INT,DOUBLE,PDOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/selfab.f
+------------------------------------------------------------------*/
+
+#define SELFAB(A1)  CCALLSFSUB1(SELFAB,selfab,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/setcur.f
+------------------------------------------------------------------*/
+
+#define SETCUR(A1)  CCALLSFSUB1(SETCUR,setcur,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/settrk.f
+------------------------------------------------------------------*/
+
+#define SETTRK(A1)  CCALLSFSUB1(SETTRK,settrk,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/sfecfe.f
+------------------------------------------------------------------*/
+
+#define SFECFE(A1,A2)  CCALLSFSUB2(SFECFE,sfecfe,DOUBLE,DOUBLE,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/shptot.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,SHPTOT,shptot,INT,DOUBLE)
+#define SHPTOT(A2,A3)  CCALLSFFUN2(SHPTOT,shptot,INT,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/sigel.f
+------------------------------------------------------------------*/
+
+#define SIGEL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(SIGEL,sigel,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/sihael.f
+------------------------------------------------------------------*/
+
+#define SIHAEL(A1,A2,A3,A4,A5)  CCALLSFSUB5(SIHAEL,sihael,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/steep.f
+------------------------------------------------------------------*/
+
+#define STEEP(A1)  CCALLSFSUB1(STEEP,steep,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/steeq.f
+------------------------------------------------------------------*/
+
+#define STEEQ(A1,A2)  CCALLSFSUB2(STEEQ,steeq,PFLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/steer.f
+------------------------------------------------------------------*/
+
+#define STEER(A1)  CCALLSFSUB1(STEER,steer,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/stees.f
+------------------------------------------------------------------*/
+
+#define STEES(A1,A2)  CCALLSFSUB2(STEES,stees,PFLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/stpair.f
+------------------------------------------------------------------*/
+
+#define STPAIR() CCALLSFSUB0(STPAIR,stpair)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/tchoic.f
+------------------------------------------------------------------*/
+
+#define TCHOIC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(TCHOIC,tchoic,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/tdelay.f
+------------------------------------------------------------------*/
+
+#define TDELAY(A1)  CCALLSFSUB1(TDELAY,tdelay,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/threpd.f
+------------------------------------------------------------------*/
+
+#define THREPD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(THREPD,threpd,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/trafo.f
+------------------------------------------------------------------*/
+
+#define TRAFO(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(TRAFO,trafo,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/trans.f
+------------------------------------------------------------------*/
+
+#define TRANS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(TRANS,trans,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/ttrans.f
+------------------------------------------------------------------*/
+
+#define TTRANS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(TTRANS,ttrans,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/twob.f
+------------------------------------------------------------------*/
+
+#define TWOB(A1,A2,A3)  CCALLSFSUB3(TWOB,twob,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/twoclu.f
+------------------------------------------------------------------*/
+
+#define TWOCLU(A1,A2,A3)  CCALLSFSUB3(TWOCLU,twoclu,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/twopad.f
+------------------------------------------------------------------*/
+
+#define TWOPAD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(TWOPAD,twopad,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/twopar.f
+------------------------------------------------------------------*/
+
+#define TWOPAR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)  CCALLSFSUB18(TWOPAR,twopar,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,DOUBLE,PDOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/vecsub.f
+------------------------------------------------------------------*/
+
+#define ADD(A1,A2,A3)  CCALLSFSUB3(ADD,add,INT,INT,INT,A1,A2,A3)
+
+
+#define SUB(A1,A2,A3)  CCALLSFSUB3(SUB,sub,INT,INT,INT,A1,A2,A3)
+
+
+#define LOR(A1,A2,A3)  CCALLSFSUB3(LOR,lor,INT,INT,INT,A1,A2,A3)
+
+
+#define LENGTX(A1,A2)  CCALLSFSUB2(LENGTX,lengtx,INT,PFLOAT,A1,A2)
+
+
+#define ANG(A1,A2,A3,A4)  CCALLSFSUB4(ANG,ang,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+
+#define DEFS(A1,A2,A3)  CCALLSFSUB3(DEFS,defs,INT,INT,INT,A1,A2,A3)
+
+
+#define TRAC(A1,A2,A3)  CCALLSFSUB3(TRAC,trac,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/verein.f
+------------------------------------------------------------------*/
+
+#define VEREIN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34)  CCALLSFSUB34(VEREIN,verein,PINT,PINT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,INT,PINT,INT,INTV,INTV,PINT,PINT,PINT,PINT,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/xlamb.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XLAMB,xlamb,DOUBLE,DOUBLE,DOUBLE)
+#define XLAMB(A2,A3,A4)  CCALLSFFUN3(XLAMB,xlamb,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : /cern/new/src/cfs/geant315/zeregs.f
+------------------------------------------------------------------*/
+
+#define ZEREGS() CCALLSFSUB0(ZEREGS,zeregs)
+
Index: trunk/SophyaExt/CodeMinuit/cfortran/geant321.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/geant321.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/geant321.h	(revision 2403)
@@ -0,0 +1,6101 @@
+/*------------------------------------------------------------------
+fortran filename   : abbrch.f
+------------------------------------------------------------------*/
+
+#define ABBRCH(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35)  CCALLSFSUB35(ABBRCH,abbrch,INT,INT,PINT,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,PDOUBLE,PINT,PINT,PINT,PINT,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35)
+
+/*------------------------------------------------------------------
+fortran filename   : ainel.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN5(DOUBLE,AINEL,ainel,INT,INT,DOUBLE,DOUBLE,DOUBLE)
+#define AINEL(A2,A3,A4,A5,A6)  CCALLSFFUN5(AINEL,ainel,INT,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : akeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,AKEKA,akeka,INT,DOUBLE,DOUBLE)
+#define AKEKA(A2,A3,A4)  CCALLSFFUN3(AKEKA,akeka,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : altra.f
+------------------------------------------------------------------*/
+
+#define ALTRA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(ALTRA,altra,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : altraf.f
+------------------------------------------------------------------*/
+
+#define ALTRAF(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(ALTRAF,altraf,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : amga.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,AMGA,amga,INT)
+#define AMGA(A2)  CCALLSFFUN1(AMGA,amga,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : angcdf.f
+------------------------------------------------------------------*/
+
+#define ANGCDF(A1,A2,A3)  CCALLSFSUB3(ANGCDF,angcdf,PFLOAT,INTV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ankeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,ANKEKA,ankeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define ANKEKA(A2,A3,A4,A5)  CCALLSFFUN4(ANKEKA,ankeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : atomas.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,ATOMAS,atomas,FLOAT,FLOAT)
+#define ATOMAS(A2,A3)  CCALLSFFUN2(ATOMAS,atomas,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : azirn.f
+------------------------------------------------------------------*/
+
+#define AZIRN(A1,A2)  CCALLSFSUB2(AZIRN,azirn,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : bamjev.f
+------------------------------------------------------------------*/
+
+#define BAMJEV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BAMJEV,bamjev,PINT,INT,INT,INT,INT,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : bankr.f
+------------------------------------------------------------------*/
+
+#define BANKR(A1,A2,A3)  CCALLSFSUB3(BANKR,bankr,FLOATV,INTV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : barier.f
+------------------------------------------------------------------*/
+
+#define BARIER(A1,A2,A3,A4,A5)  CCALLSFSUB5(BARIER,barier,INT,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : beexi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,BEEXI,beexi,INT,DOUBLE,DOUBLE)
+#define BEEXI(A2,A3,A4)  CCALLSFFUN3(BEEXI,beexi,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : bekeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BEKEKA,bekeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define BEKEKA(A2,A3,A4,A5)  CCALLSFFUN4(BEKEKA,bekeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : berttp.f
+------------------------------------------------------------------*/
+
+#define BERTTP() CCALLSFSUB0(BERTTP,berttp)
+
+/*------------------------------------------------------------------
+fortran filename   : beta.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,BETA,beta,DOUBLE,DOUBLE,DOUBLE)
+#define BETA(A2,A3,A4)  CCALLSFFUN3(BETA,beta,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : betarn.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,BETARN,betarn,DOUBLE,DOUBLE)
+#define BETARN(A2,A3)  CCALLSFFUN2(BETARN,betarn,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : betrst.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BETRST,betrst,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE)
+#define BETRST(A2,A3,A4,A5)  CCALLSFFUN4(BETRST,betrst,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : bimsel.f
+------------------------------------------------------------------*/
+
+#define BIMSEL(A1,A2,A3,A4,A5)  CCALLSFSUB5(BIMSEL,bimsel,INT,DOUBLE,DOUBLE,DOUBLE,LOGICAL,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : bkeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,BKEKA,bkeka,INT,DOUBLE,DOUBLE)
+#define BKEKA(A2,A3,A4)  CCALLSFFUN3(BKEKA,bkeka,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : bklass.f
+------------------------------------------------------------------*/
+
+#define BKLASS(A1,A2,A3,A4,A5)  CCALLSFSUB5(BKLASS,bklass,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : bnkeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,BNKEKA,bnkeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define BNKEKA(A2,A3,A4,A5)  CCALLSFFUN4(BNKEKA,bnkeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cadig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,CADIG,cadig,FLOAT)
+#define CADIG(A2)  CCALLSFFUN1(CADIG,cadig,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : calumo.f
+------------------------------------------------------------------*/
+
+#define CALUMO(A1,A2)  CCALLSFSUB2(CALUMO,calumo,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : calumv.f
+------------------------------------------------------------------*/
+
+#define CALUMV(A1,A2)  CCALLSFSUB2(CALUMV,calumv,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cangle.f
+------------------------------------------------------------------*/
+
+#define CANGLE(A1,A2,A3,A4,A5)  CCALLSFSUB5(CANGLE,cangle,FLOATV,INTV,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : captur.f
+------------------------------------------------------------------*/
+
+#define CAPTUR(A1)  CCALLSFSUB1(CAPTUR,captur,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : casal0.f
+------------------------------------------------------------------*/
+
+#define CASAL0(A1,A2,A3)  CCALLSFSUB3(CASAL0,casal0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casaom.f
+------------------------------------------------------------------*/
+
+#define CASAOM(A1,A2,A3)  CCALLSFSUB3(CASAOM,casaom,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casasm.f
+------------------------------------------------------------------*/
+
+#define CASASM(A1,A2,A3)  CCALLSFSUB3(CASASM,casasm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casasp.f
+------------------------------------------------------------------*/
+
+#define CASASP(A1,A2,A3)  CCALLSFSUB3(CASASP,casasp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casax0.f
+------------------------------------------------------------------*/
+
+#define CASAX0(A1,A2,A3)  CCALLSFSUB3(CASAX0,casax0,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casaxm.f
+------------------------------------------------------------------*/
+
+#define CASAXM(A1,A2,A3)  CCALLSFSUB3(CASAXM,casaxm,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casfrg.f
+------------------------------------------------------------------*/
+
+#define CASFRG(A1,A2,A3)  CCALLSFSUB3(CASFRG,casfrg,PINT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cask0.f
+------------------------------------------------------------------*/
+
+#define CASK0(A1,A2,A3)  CCALLSFSUB3(CASK0,cask0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cask0b.f
+------------------------------------------------------------------*/
+
+#define CASK0B(A1,A2,A3)  CCALLSFSUB3(CASK0B,cask0b,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : caskm.f
+------------------------------------------------------------------*/
+
+#define CASKM(A1,A2,A3)  CCALLSFSUB3(CASKM,caskm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : caskp.f
+------------------------------------------------------------------*/
+
+#define CASKP(A1,A2,A3)  CCALLSFSUB3(CASKP,caskp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casl0.f
+------------------------------------------------------------------*/
+
+#define CASL0(A1,A2,A3)  CCALLSFSUB3(CASL0,casl0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casn.f
+------------------------------------------------------------------*/
+
+#define CASN(A1,A2,A3)  CCALLSFSUB3(CASN,casn,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casnb.f
+------------------------------------------------------------------*/
+
+#define CASNB(A1,A2,A3)  CCALLSFSUB3(CASNB,casnb,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casom.f
+------------------------------------------------------------------*/
+
+#define CASOM(A1,A2,A3)  CCALLSFSUB3(CASOM,casom,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casp.f
+------------------------------------------------------------------*/
+
+#define CASP(A1,A2,A3)  CCALLSFSUB3(CASP,casp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : caspb.f
+------------------------------------------------------------------*/
+
+#define CASPB(A1,A2,A3)  CCALLSFSUB3(CASPB,caspb,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : caspim.f
+------------------------------------------------------------------*/
+
+#define CASPIM(A1,A2,A3)  CCALLSFSUB3(CASPIM,caspim,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : caspip.f
+------------------------------------------------------------------*/
+
+#define CASPIP(A1,A2,A3)  CCALLSFSUB3(CASPIP,caspip,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cassm.f
+------------------------------------------------------------------*/
+
+#define CASSM(A1,A2,A3)  CCALLSFSUB3(CASSM,cassm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cassp.f
+------------------------------------------------------------------*/
+
+#define CASSP(A1,A2,A3)  CCALLSFSUB3(CASSP,cassp,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casx0.f
+------------------------------------------------------------------*/
+
+#define CASX0(A1,A2,A3)  CCALLSFSUB3(CASX0,casx0,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : casxm.f
+------------------------------------------------------------------*/
+
+#define CASXM(A1,A2,A3)  CCALLSFSUB3(CASXM,casxm,INT,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cevap.f
+------------------------------------------------------------------*/
+
+#define CEVAP(A1,A2,A3,A4,A5)  CCALLSFSUB5(CEVAP,cevap,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cevap1.f
+------------------------------------------------------------------*/
+
+#define CEVAP1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CEVAP1,cevap1,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cgaffi.f
+------------------------------------------------------------------*/
+
+#define CGAFFI(A1,A2)  CCALLSFSUB2(CGAFFI,cgaffi,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbfit.f
+------------------------------------------------------------------*/
+
+#define CGBFIT(A1,A2,A3)  CCALLSFSUB3(CGBFIT,cgbfit,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbint.f
+------------------------------------------------------------------*/
+
+#define CGBINT(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBINT,cgbint,FLOATV,FLOATV,INT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbmmt.f
+------------------------------------------------------------------*/
+
+#define CGBMMT(A1,A2,A3)  CCALLSFSUB3(CGBMMT,cgbmmt,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbool.f
+------------------------------------------------------------------*/
+
+#define CGBOOL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGBOOL,cgbool,INT,INT,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbox.f
+------------------------------------------------------------------*/
+
+#define CGBOX(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBOX,cgbox,PFLOAT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbrik.f
+------------------------------------------------------------------*/
+
+#define CGBRIK(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBRIK,cgbrik,FLOAT,FLOAT,FLOAT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbsea.f
+------------------------------------------------------------------*/
+
+#define CGBSEA(A1,A2,A3,A4)  CCALLSFSUB4(CGBSEA,cgbsea,FLOATV,FLOATV,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbsec.f
+------------------------------------------------------------------*/
+
+#define CGBSEC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGBSEC,cgbsec,FLOATV,FLOATV,FLOATV,FLOATV,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbsor.f
+------------------------------------------------------------------*/
+
+#define CGBSOR(A1,A2)  CCALLSFSUB2(CGBSOR,cgbsor,PINT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbsub.f
+------------------------------------------------------------------*/
+
+#define CGBSUB(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGBSUB,cgbsub,INT,FLOATV,PFLOAT,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbtef.f
+------------------------------------------------------------------*/
+
+#define CGBTEF(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBTEF,cgbtef,INT,INT,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbtfp.f
+------------------------------------------------------------------*/
+
+#define CGBTFP(A1,A2,A3)  CCALLSFSUB3(CGBTFP,cgbtfp,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgbttt.f
+------------------------------------------------------------------*/
+/*
+#define cgbttt_ELEMS_1          ZTRINGV_NUM(1)
+#define cgbttt_ELEMLEN_1        ZTRINGV_NUM(2)
+*/
+
+#define CGBTTT(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGBTTT,cgbttt,STRING,FLOAT,FLOAT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgcev.f
+------------------------------------------------------------------*/
+
+#define CGCEV(A1,A2)  CCALLSFSUB2(CGCEV,cgcev,INT,FLOATV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgcopy.f
+------------------------------------------------------------------*/
+
+#define CGCOPY(A1,A2,A3)  CCALLSFSUB3(CGCOPY,cgcopy,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgelli.f
+------------------------------------------------------------------*/
+
+#define CGELLI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGELLI,cgelli,FLOAT,FLOAT,FLOAT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : cgfac2.f
+------------------------------------------------------------------*/
+
+#define CGFAC2(A1,A2,A3,A4)  CCALLSFSUB4(CGFAC2,cgfac2,PFLOAT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgfaco.f
+------------------------------------------------------------------*/
+
+#define CGFACO(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGFACO,cgfaco,PFLOAT,PFLOAT,INT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgfare.f
+------------------------------------------------------------------*/
+
+#define CGFARE(A1,A2,A3,A4)  CCALLSFSUB4(CGFARE,cgfare,INT,FLOATV,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgfvis.f
+------------------------------------------------------------------*/
+
+#define CGFVIS(A1,A2,A3,A4)  CCALLSFSUB4(CGFVIS,cgfvis,INT,FLOATV,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cghcre.f
+------------------------------------------------------------------*/
+
+#define CGHCRE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHCRE,cghcre,INT,INT,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cghdfa.f
+------------------------------------------------------------------*/
+
+#define CGHDFA(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGHDFA,cghdfa,INT,PFLOAT,INTV,INTV,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cghend.f
+------------------------------------------------------------------*/
+
+#define CGHEND(A1,A2,A3)  CCALLSFSUB3(CGHEND,cghend,PFLOAT,PINT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgheva.f
+------------------------------------------------------------------*/
+
+#define CGHEVA(A1,A2)  CCALLSFSUB2(CGHEVA,cgheva,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cghins.f
+------------------------------------------------------------------*/
+
+#define CGHINS(A1,A2,A3)  CCALLSFSUB3(CGHINS,cghins,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cghmov.f
+------------------------------------------------------------------*/
+
+#define CGHMOV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGHMOV,cghmov,PFLOAT,PFLOAT,INT,INT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : cghpla.f
+------------------------------------------------------------------*/
+
+#define CGHPLA(A1,A2,A3)  CCALLSFSUB3(CGHPLA,cghpla,INTV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cghren.f
+------------------------------------------------------------------*/
+
+#define CGHREN(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CGHREN,cghren,INT,INT,INT,INT,PFLOAT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : cghshi.f
+------------------------------------------------------------------*/
+
+#define CGHSHI(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHSHI,cghshi,INT,PINT,PINT,INTV,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cghsiz.f
+------------------------------------------------------------------*/
+
+#define CGHSIZ(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGHSIZ,cghsiz,FLOATV,INT,PINT,PINT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cghtre.f
+------------------------------------------------------------------*/
+
+#define CGHTRE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGHTRE,cghtre,INT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : cginve.f
+------------------------------------------------------------------*/
+
+#define CGINVE(A1)  CCALLSFSUB1(CGINVE,cginve,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : cgmnmx.f
+------------------------------------------------------------------*/
+
+#define CGMNMX(A1,A2,A3)  CCALLSFSUB3(CGMNMX,cgmnmx,FLOATV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgpers.f
+------------------------------------------------------------------*/
+
+#define CGPERS(A1)  CCALLSFSUB1(CGPERS,cgpers,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : cgrifl.f
+------------------------------------------------------------------*/
+
+#define CGRIFL(A1,A2)  CCALLSFSUB2(CGRIFL,cgrifl,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgsaan.f
+------------------------------------------------------------------*/
+
+#define CGSAAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGSAAN,cgsaan,FLOAT,FLOAT,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgscop.f
+------------------------------------------------------------------*/
+
+#define CGSCOP(A1,A2,A3,A4)  CCALLSFSUB4(CGSCOP,cgscop,INT,FLOATV,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgshel.f
+------------------------------------------------------------------*/
+
+#define CGSHEL(A1,A2,A3,A4)  CCALLSFSUB4(CGSHEL,cgshel,FLOAT,FLOAT,PINT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgshif.f
+------------------------------------------------------------------*/
+
+#define CGSHIF(A1,A2,A3,A4)  CCALLSFSUB4(CGSHIF,cgshif,FLOAT,FLOAT,FLOAT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgsize.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,CGSIZE,cgsize,INT,INT,INTV,INTV)
+#define CGSIZE(A2,A3,A4,A5)  CCALLSFFUN4(CGSIZE,cgsize,INT,INT,INTV,INTV,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgslic.f
+------------------------------------------------------------------*/
+
+#define CGSLIC(A1,A2,A3,A4)  CCALLSFSUB4(CGSLIC,cgslic,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgsnor.f
+------------------------------------------------------------------*/
+
+#define CGSNOR(A1)  CCALLSFSUB1(CGSNOR,cgsnor,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : cgsphe.f
+------------------------------------------------------------------*/
+
+#define CGSPHE(A1,A2,A3,A4,A5)  CCALLSFSUB5(CGSPHE,cgsphe,FLOAT,INT,INT,INT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : cgsub.f
+------------------------------------------------------------------*/
+
+#define CGSUB(A1,A2,A3,A4)  CCALLSFSUB4(CGSUB,cgsub,FLOATV,FLOATV,INT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgtset.f
+------------------------------------------------------------------*/
+
+#define CGTSET(A1,A2,A3)  CCALLSFSUB3(CGTSET,cgtset,INT,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgtstr.f
+------------------------------------------------------------------*/
+
+#define CGTSTR(A1,A2)  CCALLSFSUB2(CGTSTR,cgtstr,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgvedg.f
+------------------------------------------------------------------*/
+
+#define CGVEDG(A1,A2,A3,A4)  CCALLSFSUB4(CGVEDG,cgvedg,INT,FLOATV,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : cgvhed.f
+------------------------------------------------------------------*/
+
+#define CGVHED(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CGVHED,cgvhed,PFLOAT,INTV,INTV,PFLOAT,PINT,PINT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : cgvtef.f
+------------------------------------------------------------------*/
+
+#define CGVTEF(A1,A2,A3)  CCALLSFSUB3(CGVTEF,cgvtef,INTV,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgvtin.f
+------------------------------------------------------------------*/
+
+#define CGVTIN(A1,A2,A3)  CCALLSFSUB3(CGVTIN,cgvtin,FLOAT,FLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgwire.f
+------------------------------------------------------------------*/
+
+#define CGWIRE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CGWIRE,cgwire,FLOATV,INT,INT,INT,PFLOAT,INT,INTV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : cgwsor.f
+------------------------------------------------------------------*/
+
+#define CGWSOR(A1,A2)  CCALLSFSUB2(CGWSOR,cgwsor,PINT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cgzre.f
+------------------------------------------------------------------*/
+
+#define CGZRE(A1,A2,A3)  CCALLSFSUB3(CGZRE,cgzre,INT,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cgzrev.f
+------------------------------------------------------------------*/
+
+#define CGZREV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CGZREV,cgzrev,PFLOAT,FLOAT,FLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : chanwt.f
+------------------------------------------------------------------*/
+
+#define CHANWT() CCALLSFSUB0(CHANWT,chanwt)
+
+/*------------------------------------------------------------------
+fortran filename   : chkzeb.f
+------------------------------------------------------------------*/
+
+#define CHKZEB(A1,A2)  CCALLSFSUB2(CHKZEB,chkzeb,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cinema.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,CINEMA,cinema,FLOAT)
+#define CINEMA(A2)  CCALLSFFUN1(CINEMA,cinema,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : clear.f
+------------------------------------------------------------------*/
+
+#define CLEAR(A1,A2,A3)  CCALLSFSUB3(CLEAR,clear,PINT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : cmlabe.f
+------------------------------------------------------------------*/
+
+#define CMLABE(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CMLABE,cmlabe,FLOATV,INTV,FLOAT,INT,INT,PFLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : cmlabi.f
+------------------------------------------------------------------*/
+
+#define CMLABI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(CMLABI,cmlabi,FLOATV,INTV,FLOAT,INT,INT,PFLOAT,FLOAT,PINT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : cohert.f
+------------------------------------------------------------------*/
+
+#define COHERT(A1,A2,A3)  CCALLSFSUB3(COHERT,cohert,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : colisn.f
+------------------------------------------------------------------*/
+
+#define COLISN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48)  CCALLSFSUB48(COLISN,colisn,FLOATV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,PINT,PINT,INTV,INTV,PINT,PINT,FLOATV,PFLOAT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,INTV,PINT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48)
+
+/*------------------------------------------------------------------
+fortran filename   : compo.f
+------------------------------------------------------------------*/
+
+#define COMPO() CCALLSFSUB0(COMPO,compo)
+
+/*------------------------------------------------------------------
+fortran filename   : coranh.f
+------------------------------------------------------------------*/
+
+#define CORANH(A1,A2)  CCALLSFSUB2(CORANH,coranh,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : corevt.f
+------------------------------------------------------------------*/
+
+#define COREVT(A1,A2,A3,A4,A5)  CCALLSFSUB5(COREVT,corevt,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : corrin.f
+------------------------------------------------------------------*/
+
+#define CORRIN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CORRIN,corrin,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : coscat.f
+------------------------------------------------------------------*/
+
+#define COSCAT() CCALLSFSUB0(COSCAT,coscat)
+
+/*------------------------------------------------------------------
+fortran filename   : cosleg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,COSLEG,cosleg,PDOUBLE)
+#define COSLEG(A2)  CCALLSFFUN1(COSLEG,cosleg,PDOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : cterp.f
+------------------------------------------------------------------*/
+
+#define CTERP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CTERP,cterp,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : datar3.f
+------------------------------------------------------------------*/
+
+#define DATAR3() CCALLSFSUB0(DATAR3,datar3)
+
+/*------------------------------------------------------------------
+fortran filename   : decaux.f
+------------------------------------------------------------------*/
+
+#define DECAUX(A1,A2)  CCALLSFSUB2(DECAUX,decaux,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : defs1.f
+------------------------------------------------------------------*/
+
+#define DEFS1(A1,A2,A3)  CCALLSFSUB3(DEFS1,defs1,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : difevv.f
+------------------------------------------------------------------*/
+
+#define DIFEVV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DIFEVV,difevv,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : dlpnuc.f
+------------------------------------------------------------------*/
+
+#define DLPNUC(A1,A2)  CCALLSFSUB2(DLPNUC,dlpnuc,PDOUBLE,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : dlpsor.f
+------------------------------------------------------------------*/
+
+#define DLPSOR(A1,A2)  CCALLSFSUB2(DLPSOR,dlpsor,PDOUBLE,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : dost.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,DOST,dost,INT,DOUBLE)
+#define DOST(A2,A3)  CCALLSFFUN2(DOST,dost,INT,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : dotes2.f
+------------------------------------------------------------------*/
+
+#define DOTES2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DOTES2,dotes2,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : dotnuc.f
+------------------------------------------------------------------*/
+
+#define DOTNUC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DOTNUC,dotnuc,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : dpdnuc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,DPDNUC,dpdnuc,DOUBLE,DOUBLE,DOUBLE)
+#define DPDNUC(A2,A3,A4)  CCALLSFFUN3(DPDNUC,dpdnuc,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : drelab.f
+------------------------------------------------------------------*/
+
+#define DRELAB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DRELAB,drelab,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : eexi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,EEXI,eexi,INT,DOUBLE,DOUBLE)
+#define EEXI(A2,A3,A4)  CCALLSFFUN3(EEXI,eexi,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : eexlvl.f
+------------------------------------------------------------------*/
+
+#define EEXLVL(A1,A2,A3,A4,A5)  CCALLSFSUB5(EEXLVL,eexlvl,INT,INT,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : ekeka.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,EKEKA,ekeka,INT,DOUBLE,DOUBLE,DOUBLE)
+#define EKEKA(A2,A3,A4,A5)  CCALLSFFUN4(EKEKA,ekeka,INT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : energi.f
+------------------------------------------------------------------*/
+
+#define ENERGI(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(ENERGI,energi,INT,INT,INT,INTV,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : enrg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,ENRG,enrg,DOUBLE,DOUBLE)
+#define ENRG(A2,A3)  CCALLSFFUN2(ENRG,enrg,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : evaplr.f
+------------------------------------------------------------------*/
+
+#define EVAPLR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(EVAPLR,evaplr,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : evdeex.f
+------------------------------------------------------------------*/
+
+#define EVDEEX(A1)  CCALLSFSUB1(EVDEEX,evdeex,DOUBLE,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : eventv.f
+------------------------------------------------------------------*/
+
+#define EVENTV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(EVENTV,eventv,INT,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : evevap.f
+------------------------------------------------------------------*/
+
+#define EVEVAP(A1)  CCALLSFSUB1(EVEVAP,evevap,DOUBLE,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : evvini.f
+------------------------------------------------------------------*/
+/*
+#define evvini_ELEMS_2          ZTRINGV_NUM(1)
+#define evvini_ELEMLEN_2        ZTRINGV_NUM(8)
+*/
+
+#define EVVINI(A1,A2)  CCALLSFSUB2(EVVINI,evvini,DOUBLEV,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : exnu.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,EXNU,exnu,FLOAT)
+#define EXNU(A2)  CCALLSFFUN1(EXNU,exnu,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : exprnf.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,EXPRNF,exprnf,FLOAT)
+#define EXPRNF(A2)  CCALLSFFUN1(EXPRNF,exprnf,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : fctcos.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FCTCOS,fctcos,FLOAT)
+#define FCTCOS(A2)  CCALLSFFUN1(FCTCOS,fctcos,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : fdevap.f
+------------------------------------------------------------------*/
+
+#define FDEVAP() CCALLSFSUB0(FDEVAP,fdevap)
+
+/*------------------------------------------------------------------
+fortran filename   : fdnopt.f
+------------------------------------------------------------------*/
+
+#define FDNOPT() CCALLSFSUB0(FDNOPT,fdnopt)
+
+/*------------------------------------------------------------------
+fortran filename   : fdpree.f
+------------------------------------------------------------------*/
+
+#define FDPREE() CCALLSFSUB0(FDPREE,fdpree)
+
+/*------------------------------------------------------------------
+fortran filename   : fekfnc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,FEKFNC,fekfnc,DOUBLE,INT)
+#define FEKFNC(A2,A3)  CCALLSFFUN2(FEKFNC,fekfnc,DOUBLE,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ferevv.f
+------------------------------------------------------------------*/
+
+#define FEREVV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(FEREVV,ferevv,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : ferhav.f
+------------------------------------------------------------------*/
+
+#define FERHAV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(FERHAV,ferhav,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : fermi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FERMI,fermi,FLOAT)
+#define FERMI(A2)  CCALLSFFUN1(FERMI,fermi,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : fisfra.f
+------------------------------------------------------------------*/
+
+#define FISFRA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(FISFRA,fisfra,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : fisrnf.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,FISRNF,fisrnf,FLOAT,FLOAT)
+#define FISRNF(A2,A3)  CCALLSFFUN2(FISRNF,fisrnf,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : fissio.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FISSIO,fissio,FLOAT)
+#define FISSIO(A2)  CCALLSFFUN1(FISSIO,fissio,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : fkdeca.f
+------------------------------------------------------------------*/
+
+#define FKDECA(A1,A2)  CCALLSFSUB2(FKDECA,fkdeca,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : fkdres.f
+------------------------------------------------------------------*/
+
+#define FKDRES(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(FKDRES,fkdres,INT,INT,DOUBLE,PDOUBLE,PDOUBLE,PLOGICAL,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : fkener.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,FKENER,fkener,DOUBLE,DOUBLE)
+#define FKENER(A2,A3)  CCALLSFFUN2(FKENER,fkener,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : fkerup.f
+------------------------------------------------------------------*/
+
+#define FKERUP(A1)  CCALLSFSUB1(FKERUP,fkerup,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : fkflav.f
+------------------------------------------------------------------*/
+
+#define FKFLAV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(FKFLAV,fkflav,INT,INT,INT,DOUBLE,INTV,DOUBLEV,PINT,PINT,INT,DOUBLE,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : fkimpu.f
+------------------------------------------------------------------*/
+
+#define FKIMPU(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FKIMPU,fkimpu,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : fksigi.f
+------------------------------------------------------------------*/
+
+#define FKSIGI(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FKSIGI,fksigi,INT,DOUBLE,INT,PINT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : fkvert.f
+------------------------------------------------------------------*/
+
+#define FKVERT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(FKVERT,fkvert,INT,INT,INT,INT,DOUBLE,PINT,DOUBLEV,INTV,INTV,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : fkzero.f
+------------------------------------------------------------------*/
+
+#define FKZERO() CCALLSFSUB0(FKZERO,fkzero)
+
+/*------------------------------------------------------------------
+fortran filename   : fldist.f
+------------------------------------------------------------------*/
+
+#define FLDIST() CCALLSFSUB0(FLDIST,fldist)
+
+/*------------------------------------------------------------------
+fortran filename   : flinit.f
+------------------------------------------------------------------*/
+
+#define FLINIT() CCALLSFSUB0(FLINIT,flinit)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt1.f
+------------------------------------------------------------------*/
+
+#define FLKDT1() CCALLSFSUB0(FLKDT1,flkdt1)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt2.f
+------------------------------------------------------------------*/
+
+#define FLKDT2() CCALLSFSUB0(FLKDT2,flkdt2)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt3.f
+------------------------------------------------------------------*/
+
+#define FLKDT3() CCALLSFSUB0(FLKDT3,flkdt3)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt4.f
+------------------------------------------------------------------*/
+
+#define FLKDT4() CCALLSFSUB0(FLKDT4,flkdt4)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt5.f
+------------------------------------------------------------------*/
+
+#define FLKDT5() CCALLSFSUB0(FLKDT5,flkdt5)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt6.f
+------------------------------------------------------------------*/
+
+#define FLKDT6() CCALLSFSUB0(FLKDT6,flkdt6)
+
+/*------------------------------------------------------------------
+fortran filename   : flkdt7.f
+------------------------------------------------------------------*/
+
+#define FLKDT7() CCALLSFSUB0(FLKDT7,flkdt7)
+
+/*------------------------------------------------------------------
+fortran filename   : fltrnf.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,FLTRNF,fltrnf,INT)
+#define FLTRNF(A2)  CCALLSFFUN1(FLTRNF,fltrnf,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : flufin.f
+------------------------------------------------------------------*/
+
+#define FLUFIN() CCALLSFSUB0(FLUFIN,flufin)
+
+/*------------------------------------------------------------------
+fortran filename   : fpfrnc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,FPFRNC,fpfrnc,DOUBLE,INT)
+#define FPFRNC(A2,A3)  CCALLSFFUN2(FPFRNC,fpfrnc,DOUBLE,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : fpower.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,FPOWER,fpower,INT,INT,DOUBLE)
+#define FPOWER(A2,A3,A4)  CCALLSFFUN3(FPOWER,fpower,INT,INT,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : fprob.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,FPROB,fprob,DOUBLE,DOUBLE,DOUBLE)
+#define FPROB(A2,A3,A4)  CCALLSFFUN3(FPROB,fprob,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : fradnc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,FRADNC,fradnc,DOUBLE)
+#define FRADNC(A2)  CCALLSFFUN1(FRADNC,fradnc,DOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : frhinc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,FRHINC,frhinc,DOUBLE)
+#define FRHINC(A2)  CCALLSFFUN1(FRHINC,frhinc,DOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : frhonc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,FRHONC,frhonc,DOUBLE)
+#define FRHONC(A2)  CCALLSFFUN1(FRHONC,frhonc,DOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gamrn.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,GAMRN,gamrn,DOUBLE,DOUBLE)
+#define GAMRN(A2,A3)  CCALLSFFUN2(GAMRN,gamrn,DOUBLE,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ganni.f
+------------------------------------------------------------------*/
+
+#define GANNI() CCALLSFSUB0(GANNI,ganni)
+
+/*------------------------------------------------------------------
+fortran filename   : ganni2.f
+------------------------------------------------------------------*/
+
+#define GANNI2() CCALLSFSUB0(GANNI2,ganni2)
+
+/*------------------------------------------------------------------
+fortran filename   : gannii.f
+------------------------------------------------------------------*/
+
+#define GANNII() CCALLSFSUB0(GANNII,gannii)
+
+/*------------------------------------------------------------------
+fortran filename   : gannir.f
+------------------------------------------------------------------*/
+
+#define GANNIR() CCALLSFSUB0(GANNIR,gannir)
+
+/*------------------------------------------------------------------
+fortran filename   : garndm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GARNDM,garndm,FLOAT)
+#define GARNDM(A2)  CCALLSFFUN1(GARNDM,garndm,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gavrl2.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GAVRL2,gavrl2,FLOAT,FLOAT,FLOAT)
+#define GAVRL2(A2,A3,A4)  CCALLSFFUN3(GAVRL2,gavrl2,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gavrl3.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GAVRL3,gavrl3,FLOAT,FLOAT,FLOAT)
+#define GAVRL3(A2,A3,A4)  CCALLSFFUN3(GAVRL3,gavrl3,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gbflos.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GBFLOS,gbflos,FLOAT,FLOAT)
+#define GBFLOS(A2,A3)  CCALLSFFUN2(GBFLOS,gbflos,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gbfsig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GBFSIG,gbfsig,FLOAT,FLOAT)
+#define GBFSIG(A2,A3)  CCALLSFFUN2(GBFSIG,gbfsig,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gbhsta.f
+------------------------------------------------------------------*/
+
+#define GBHSTA() CCALLSFSUB0(GBHSTA,gbhsta)
+
+/*------------------------------------------------------------------
+fortran filename   : gbirk.f
+------------------------------------------------------------------*/
+
+#define GBIRK(A1)  CCALLSFSUB1(GBIRK,gbirk,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gboset.f
+------------------------------------------------------------------*/
+
+#define GBOSET(A1)  CCALLSFSUB1(GBOSET,gboset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrela.f
+------------------------------------------------------------------*/
+
+#define GBRELA() CCALLSFSUB0(GBRELA,gbrela)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrele.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRELE,gbrele,FLOAT,FLOAT,FLOAT)
+#define GBRELE(A2,A3,A4)  CCALLSFFUN3(GBRELE,gbrele,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrelm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRELM,gbrelm,FLOAT,FLOAT,FLOAT)
+#define GBRELM(A2,A3,A4)  CCALLSFFUN3(GBRELM,gbrelm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gbreme.f
+------------------------------------------------------------------*/
+
+#define GBREME() CCALLSFSUB0(GBREME,gbreme)
+
+/*------------------------------------------------------------------
+fortran filename   : gbremm.f
+------------------------------------------------------------------*/
+
+#define GBREMM() CCALLSFSUB0(GBREMM,gbremm)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrsga.f
+------------------------------------------------------------------*/
+
+#define GBRSGA() CCALLSFSUB0(GBRSGA,gbrsga)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrsge.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRSGE,gbrsge,FLOAT,FLOAT,FLOAT)
+#define GBRSGE(A2,A3,A4)  CCALLSFFUN3(GBRSGE,gbrsge,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gbrsgm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBRSGM,gbrsgm,FLOAT,FLOAT,FLOAT)
+#define GBRSGM(A2,A3,A4)  CCALLSFFUN3(GBRSGM,gbrsgm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gbstat.f
+------------------------------------------------------------------*/
+
+#define GBSTAT() CCALLSFSUB0(GBSTAT,gbstat)
+
+/*------------------------------------------------------------------
+fortran filename   : gbteth.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GBTETH,gbteth,FLOAT,FLOAT,FLOAT)
+#define GBTETH(A2,A3,A4)  CCALLSFFUN3(GBTETH,gbteth,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gcbrem.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GCBREM,gcbrem,FLOAT)
+#define GCBREM(A2)  CCALLSFFUN1(GCBREM,gcbrem,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gcderr.f
+------------------------------------------------------------------*/
+
+#define GCDERR(A1,A2,A3)  CCALLSFSUB3(GCDERR,gcderr,PINT,FLOAT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gcdrif.f
+------------------------------------------------------------------*/
+
+#define GCDRIF(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GCDRIF,gcdrif,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gcent.f
+------------------------------------------------------------------*/
+
+#define GCENT(A1,A2)  CCALLSFSUB2(GCENT,gcent,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gchnwk.f
+------------------------------------------------------------------*/
+
+#define GCHNWK() CCALLSFSUB0(GCHNWK,gchnwk)
+
+/*------------------------------------------------------------------
+fortran filename   : gckmat.f
+------------------------------------------------------------------*/
+/*
+#define gckmat_ELEMS_2          ZTRINGV_NUM(1)
+#define gckmat_ELEMLEN_2        ZTRINGV_NUM(20)
+*/
+
+#define GCKMAT(A1,A2)  CCALLSFSUB2(GCKMAT,gckmat,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gckpar.f
+------------------------------------------------------------------*/
+
+#define GCKPAR(A1,A2,A3)  CCALLSFSUB3(GCKPAR,gckpar,INT,PINT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gclose.f
+------------------------------------------------------------------*/
+
+#define GCLOSE(A1,A2)  CCALLSFSUB2(GCLOSE,gclose,INT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gcmwpc.f
+------------------------------------------------------------------*/
+
+#define GCMWPC(A1,A2,A3)  CCALLSFSUB3(GCMWPC,gcmwpc,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gcoeff.f
+------------------------------------------------------------------*/
+
+#define GCOEFF() CCALLSFSUB0(GCOEFF,gcoeff)
+
+/*------------------------------------------------------------------
+fortran filename   : gcomp.f
+------------------------------------------------------------------*/
+
+#define GCOMP() CCALLSFSUB0(GCOMP,gcomp)
+
+/*------------------------------------------------------------------
+fortran filename   : gcompi.f
+------------------------------------------------------------------*/
+
+#define GCOMPI() CCALLSFSUB0(GCOMPI,gcompi)
+
+/*------------------------------------------------------------------
+fortran filename   : gcoset.f
+------------------------------------------------------------------*/
+
+#define GCOSET(A1,A2)  CCALLSFSUB2(GCOSET,gcoset,FLOATV,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gctset.f
+------------------------------------------------------------------*/
+
+#define GCTSET(A1)  CCALLSFSUB1(GCTSET,gctset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gcubs.f
+------------------------------------------------------------------*/
+
+#define GCUBS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GCUBS,gcubs,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gd16v.f
+------------------------------------------------------------------*/
+
+#define GD16V(A1,A2)  CCALLSFSUB2(GD16V,gd16v,INT,INTV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gd3d3d.f
+------------------------------------------------------------------*/
+
+#define GD3D3D(A1,A2,A3,A4)  CCALLSFSUB4(GD3D3D,gd3d3d,PFLOAT,INT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdahit.f
+------------------------------------------------------------------*/
+
+#define GDAHIT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDAHIT,gdahit,FLOAT,FLOAT,FLOAT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdarc.f
+------------------------------------------------------------------*/
+
+#define GDARC(A1,A2,A3,A4)  CCALLSFSUB4(GDARC,gdarc,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdarr.f
+------------------------------------------------------------------*/
+/*
+#define gdarr_ELEMS_6          ZTRINGV_NUM(1)
+#define gdarr_ELEMLEN_6        ZTRINGV_NUM(255)
+*/
+
+#define GDARR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDARR,gdarr,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gdaxis.f
+------------------------------------------------------------------*/
+
+#define GDAXIS(A1,A2,A3,A4)  CCALLSFSUB4(GDAXIS,gdaxis,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdbomb.f
+------------------------------------------------------------------*/
+
+#define GDBOMB(A1,A2)  CCALLSFSUB2(GDBOMB,gdbomb,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgcl.f
+------------------------------------------------------------------*/
+
+#define GDCGCL(A1)  CCALLSFSUB1(GDCGCL,gdcgcl,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgem.f
+------------------------------------------------------------------*/
+
+#define GDCGEM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GDCGEM,gdcgem,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcger.f
+------------------------------------------------------------------*/
+
+#define GDCGER(A1)  CCALLSFSUB1(GDCGER,gdcger,FLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcghi.f
+------------------------------------------------------------------*/
+
+#define GDCGHI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDCGHI,gdcghi,INT,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgob.f
+------------------------------------------------------------------*/
+
+#define GDCGOB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDCGOB,gdcgob,INT,PINT,FLOATV,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgpr.f
+------------------------------------------------------------------*/
+
+#define GDCGPR() CCALLSFSUB0(GDCGPR,gdcgpr)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgrs.f
+------------------------------------------------------------------*/
+
+#define GDCGRS() CCALLSFSUB0(GDCGRS,gdcgrs)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgsl.f
+------------------------------------------------------------------*/
+
+#define GDCGSL(A1,A2)  CCALLSFSUB2(GDCGSL,gdcgsl,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgvw.f
+------------------------------------------------------------------*/
+
+#define GDCGVW(A1,A2)  CCALLSFSUB2(GDCGVW,gdcgvw,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcgwv.f
+------------------------------------------------------------------*/
+
+#define GDCGWV(A1)  CCALLSFSUB1(GDCGWV,gdcgwv,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdchit.f
+------------------------------------------------------------------*/
+/*
+#define gdchit_ELEMS_1          ZTRINGV_NUM(1)
+#define gdchit_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdchit_ELEMS_2          ZTRINGV_NUM(1)
+#define gdchit_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDCHIT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GDCHIT,gdchit,STRING,STRING,INT,INT,FLOAT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcirc.f
+------------------------------------------------------------------*/
+
+#define GDCIRC(A1,A2)  CCALLSFSUB2(GDCIRC,gdcirc,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcirr.f
+------------------------------------------------------------------*/
+
+#define GDCIRR(A1,A2)  CCALLSFSUB2(GDCIRR,gdcirr,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdciry.f
+------------------------------------------------------------------*/
+
+#define GDCIRY(A1,A2)  CCALLSFSUB2(GDCIRY,gdciry,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdclos.f
+------------------------------------------------------------------*/
+
+#define GDCLOS() CCALLSFSUB0(GDCLOS,gdclos)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcol.f
+------------------------------------------------------------------*/
+
+#define GDCOL(A1)  CCALLSFSUB1(GDCOL,gdcol,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcol1.f
+------------------------------------------------------------------*/
+
+#define GDCOL1(A1)  CCALLSFSUB1(GDCOL1,gdcol1,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcota.f
+------------------------------------------------------------------*/
+
+#define GDCOTA() CCALLSFSUB0(GDCOTA,gdcota)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcurs.f
+------------------------------------------------------------------*/
+
+#define GDCURS(A1,A2,A3)  CCALLSFSUB3(GDCURS,gdcurs,FLOAT,FLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcut.f
+------------------------------------------------------------------*/
+
+#define GDCUT() CCALLSFSUB0(GDCUT,gdcut)
+
+/*------------------------------------------------------------------
+fortran filename   : gdcxyz.f
+------------------------------------------------------------------*/
+
+#define GDCXYZ() CCALLSFSUB0(GDCXYZ,gdcxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : gdebug.f
+------------------------------------------------------------------*/
+
+#define GDEBUG() CCALLSFSUB0(GDEBUG,gdebug)
+
+/*------------------------------------------------------------------
+fortran filename   : gdeca2.f
+------------------------------------------------------------------*/
+
+#define GDECA2(A1,A2,A3,A4)  CCALLSFSUB4(GDECA2,gdeca2,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdeca3.f
+------------------------------------------------------------------*/
+
+#define GDECA3(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDECA3,gdeca3,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdecay.f
+------------------------------------------------------------------*/
+
+#define GDECAY() CCALLSFSUB0(GDECAY,gdecay)
+
+/*------------------------------------------------------------------
+fortran filename   : gdelet.f
+------------------------------------------------------------------*/
+
+#define GDELET(A1)  CCALLSFSUB1(GDELET,gdelet,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdeltu.f
+------------------------------------------------------------------*/
+
+#define GDELTU(A1,A2,A3)  CCALLSFSUB3(GDELTU,gdeltu,FLOAT,FLOAT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdexca.f
+------------------------------------------------------------------*/
+/*
+#define gdexca_ELEMS_1          ZTRINGV_NUM(1)
+#define gdexca_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDEXCA(A1,A2)  CCALLSFSUB2(GDEXCA,gdexca,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdfr3d.f
+------------------------------------------------------------------*/
+
+#define GDFR3D(A1,A2,A3,A4)  CCALLSFSUB4(GDFR3D,gdfr3d,PFLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdfspc.f
+------------------------------------------------------------------*/
+/*
+#define gdfspc_ELEMS_1          ZTRINGV_NUM(1)
+#define gdfspc_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDFSPC(A1,A2,A3)  CCALLSFSUB3(GDFSPC,gdfspc,STRING,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdhead.f
+------------------------------------------------------------------*/
+/*
+#define gdhead_ELEMS_2          ZTRINGV_NUM(1)
+#define gdhead_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GDHEAD(A1,A2,A3)  CCALLSFSUB3(GDHEAD,gdhead,INT,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdhits.f
+------------------------------------------------------------------*/
+/*
+#define gdhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gdhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gdhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDHITS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDHITS,gdhits,STRING,STRING,INT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdinit.f
+------------------------------------------------------------------*/
+
+#define GDINIT() CCALLSFSUB0(GDINIT,gdinit)
+
+/*------------------------------------------------------------------
+fortran filename   : gdkine.f
+------------------------------------------------------------------*/
+
+#define GDKINE() CCALLSFSUB0(GDKINE,gdkine)
+
+/*------------------------------------------------------------------
+fortran filename   : gdlcyl.f
+------------------------------------------------------------------*/
+
+#define GDLCYL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDLCYL,gdlcyl,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gdlens.f
+------------------------------------------------------------------*/
+/*
+#define gdlens_ELEMS_2          ZTRINGV_NUM(1)
+#define gdlens_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDLENS(A1,A2)  CCALLSFSUB2(GDLENS,gdlens,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdline.f
+------------------------------------------------------------------*/
+
+#define GDLINE(A1,A2)  CCALLSFSUB2(GDLINE,gdline,FLOATV,FLOATV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdlumi.f
+------------------------------------------------------------------*/
+
+#define GDLUMI(A1,A2)  CCALLSFSUB2(GDLUMI,gdlumi,PINT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdlw.f
+------------------------------------------------------------------*/
+
+#define GDLW(A1)  CCALLSFSUB1(GDLW,gdlw,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdlw1.f
+------------------------------------------------------------------*/
+
+#define GDLW1(A1)  CCALLSFSUB1(GDLW1,gdlw1,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdman.f
+------------------------------------------------------------------*/
+
+#define GDMAN(A1,A2)  CCALLSFSUB2(GDMAN,gdman,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdnino.f
+------------------------------------------------------------------*/
+
+#define GDNINO() CCALLSFSUB0(GDNINO,gdnino)
+
+/*------------------------------------------------------------------
+fortran filename   : gdnson.f
+------------------------------------------------------------------*/
+/*
+#define gdnson_ELEMS_1          ZTRINGV_NUM(1)
+#define gdnson_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDNSON(A1,A2,A3)  CCALLSFSUB3(GDNSON,gdnson,STRING,PINT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdopen.f
+------------------------------------------------------------------*/
+
+#define GDOPEN(A1)  CCALLSFSUB1(GDOPEN,gdopen,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdopt.f
+------------------------------------------------------------------*/
+/*
+#define gdopt_ELEMS_1          ZTRINGV_NUM(1)
+#define gdopt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdopt_ELEMS_2          ZTRINGV_NUM(1)
+#define gdopt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDOPT(A1,A2)  CCALLSFSUB2(GDOPT,gdopt,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdpart.f
+------------------------------------------------------------------*/
+
+#define GDPART(A1,A2,A3)  CCALLSFSUB3(GDPART,gdpart,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdpdk.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,GDPDK,gdpdk,DOUBLE,DOUBLE,DOUBLE)
+#define GDPDK(A2,A3,A4)  CCALLSFFUN3(GDPDK,gdpdk,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdplst.f
+------------------------------------------------------------------*/
+/*
+#define gdplst_ELEMS_2          ZTRINGV_NUM(1)
+#define gdplst_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDPLST(A1,A2,A3,A4)  CCALLSFSUB4(GDPLST,gdplst,INT,PSTRING,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdprtr.f
+------------------------------------------------------------------*/
+/*
+#define gdprtr_ELEMS_1          ZTRINGV_NUM(1)
+#define gdprtr_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDPRTR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GDPRTR,gdprtr,STRING,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrack.f
+------------------------------------------------------------------*/
+
+#define GDRACK() CCALLSFSUB0(GDRACK,gdrack)
+
+/*------------------------------------------------------------------
+fortran filename   : gdraw.f
+------------------------------------------------------------------*/
+/*
+#define gdraw_ELEMS_1          ZTRINGV_NUM(1)
+#define gdraw_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAW(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GDRAW,gdraw,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrawc.f
+------------------------------------------------------------------*/
+/*
+#define gdrawc_ELEMS_1          ZTRINGV_NUM(1)
+#define gdrawc_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAWC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDRAWC,gdrawc,STRING,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrawp.f
+------------------------------------------------------------------*/
+
+#define GDRAWP(A1,A2,A3)  CCALLSFSUB3(GDRAWP,gdrawp,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdraws.f
+------------------------------------------------------------------*/
+
+#define GDRAWS(A1,A2)  CCALLSFSUB2(GDRAWS,gdraws,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrawt.f
+------------------------------------------------------------------*/
+/*
+#define gdrawt_ELEMS_3          ZTRINGV_NUM(1)
+#define gdrawt_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GDRAWT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDRAWT,gdrawt,FLOAT,FLOAT,STRING,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrawv.f
+------------------------------------------------------------------*/
+
+#define GDRAWV(A1,A2,A3)  CCALLSFSUB3(GDRAWV,gdrawv,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrawx.f
+------------------------------------------------------------------*/
+/*
+#define gdrawx_ELEMS_1          ZTRINGV_NUM(1)
+#define gdrawx_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAWX(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GDRAWX,gdrawx,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gdray.f
+------------------------------------------------------------------*/
+
+#define GDRAY() CCALLSFSUB0(GDRAY,gdray)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrayt.f
+------------------------------------------------------------------*/
+/*
+#define gdrayt_ELEMS_1          ZTRINGV_NUM(1)
+#define gdrayt_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDRAYT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GDRAYT,gdrayt,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrect.f
+------------------------------------------------------------------*/
+
+#define GDRECT(A1,A2,A3,A4)  CCALLSFSUB4(GDRECT,gdrect,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrela.f
+------------------------------------------------------------------*/
+
+#define GDRELA() CCALLSFSUB0(GDRELA,gdrela)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrele.f
+------------------------------------------------------------------*/
+
+#define GDRELE(A1,A2,A3,A4)  CCALLSFSUB4(GDRELE,gdrele,FLOAT,FLOAT,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdreli.f
+------------------------------------------------------------------*/
+
+#define GDRELI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDRELI,gdreli,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrelm.f
+------------------------------------------------------------------*/
+
+#define GDRELM(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDRELM,gdrelm,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrelp.f
+------------------------------------------------------------------*/
+
+#define GDRELP(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDRELP,gdrelp,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrelx.f
+------------------------------------------------------------------*/
+
+#define GDRELX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDRELX,gdrelx,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrmat.f
+------------------------------------------------------------------*/
+/*
+#define gdrmat_ELEMS_3          ZTRINGV_NUM(ZTRINGV_ARGS(4))
+#define gdrmat_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GDRMAT(A1,A2,A3,A4)  CCALLSFSUB4(GDRMAT,gdrmat,INT,INT,STRINGV,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrot.f
+------------------------------------------------------------------*/
+
+#define GDROT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDROT,gdrot,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrprt.f
+------------------------------------------------------------------*/
+
+#define GDRPRT(A1,A2,A3,A4)  CCALLSFSUB4(GDRPRT,gdrprt,INT,INT,FLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrsga.f
+------------------------------------------------------------------*/
+
+#define GDRSGA() CCALLSFSUB0(GDRSGA,gdrsga)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrvol.f
+------------------------------------------------------------------*/
+
+#define GDRVOL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GDRVOL,gdrvol,INT,INTV,INTV,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : gdrwsc.f
+------------------------------------------------------------------*/
+
+#define GDRWSC(A1,A2)  CCALLSFSUB2(GDRWSC,gdrwsc,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdsarc.f
+------------------------------------------------------------------*/
+
+#define GDSARC(A1,A2,A3,A4,A5)  CCALLSFSUB5(GDSARC,gdsarc,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gdscal.f
+------------------------------------------------------------------*/
+
+#define GDSCAL(A1,A2)  CCALLSFSUB2(GDSCAL,gdscal,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdshad.f
+------------------------------------------------------------------*/
+
+#define GDSHAD(A1,A2)  CCALLSFSUB2(GDSHAD,gdshad,PINT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdshif.f
+------------------------------------------------------------------*/
+
+#define GDSHIF(A1,A2)  CCALLSFSUB2(GDSHIF,gdshif,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdshow.f
+------------------------------------------------------------------*/
+
+#define GDSHOW(A1)  CCALLSFSUB1(GDSHOW,gdshow,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdson.f
+------------------------------------------------------------------*/
+/*
+#define gdson_ELEMS_2          ZTRINGV_NUM(1)
+#define gdson_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gdson_ELEMS_3          ZTRINGV_NUM(1)
+#define gdson_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GDSON(A1,A2,A3)  CCALLSFSUB3(GDSON,gdson,INT,STRING,PSTRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdspec.f
+------------------------------------------------------------------*/
+/*
+#define gdspec_ELEMS_1          ZTRINGV_NUM(1)
+#define gdspec_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDSPEC(A1)  CCALLSFSUB1(GDSPEC,gdspec,STRING,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdssur.f
+------------------------------------------------------------------*/
+
+#define GDSSUR(A1,A2,A3,A4)  CCALLSFSUB4(GDSSUR,gdssur,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdstep.f
+------------------------------------------------------------------*/
+
+#define GDSTEP() CCALLSFSUB0(GDSTEP,gdstep)
+
+/*------------------------------------------------------------------
+fortran filename   : gdsurf.f
+------------------------------------------------------------------*/
+
+#define GDSURF(A1)  CCALLSFSUB1(GDSURF,gdsurf,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdthrz.f
+------------------------------------------------------------------*/
+
+#define GDTHRZ(A1)  CCALLSFSUB1(GDTHRZ,gdthrz,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtom.f
+------------------------------------------------------------------*/
+
+#define GDTOM(A1,A2,A3)  CCALLSFSUB3(GDTOM,gdtom,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr0.f
+------------------------------------------------------------------*/
+
+#define GDTR0(A1,A2,A3,A4)  CCALLSFSUB4(GDTR0,gdtr0,INT,INT,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr1.f
+------------------------------------------------------------------*/
+
+#define GDTR1(A1,A2,A3,A4)  CCALLSFSUB4(GDTR1,gdtr1,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr10.f
+------------------------------------------------------------------*/
+
+#define GDTR10(A1)  CCALLSFSUB1(GDTR10,gdtr10,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr11.f
+------------------------------------------------------------------*/
+
+#define GDTR11(A1,A2,A3)  CCALLSFSUB3(GDTR11,gdtr11,PINT,PINT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr12.f
+------------------------------------------------------------------*/
+
+#define GDTR12(A1)  CCALLSFSUB1(GDTR12,gdtr12,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr2.f
+------------------------------------------------------------------*/
+
+#define GDTR2(A1,A2,A3,A4)  CCALLSFSUB4(GDTR2,gdtr2,INT,PINT,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr3.f
+------------------------------------------------------------------*/
+
+#define GDTR3(A1)  CCALLSFSUB1(GDTR3,gdtr3,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr4.f
+------------------------------------------------------------------*/
+
+#define GDTR4() CCALLSFSUB0(GDTR4,gdtr4)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr5.f
+------------------------------------------------------------------*/
+
+#define GDTR5(A1)  CCALLSFSUB1(GDTR5,gdtr5,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr6.f
+------------------------------------------------------------------*/
+
+#define GDTR6(A1)  CCALLSFSUB1(GDTR6,gdtr6,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr8.f
+------------------------------------------------------------------*/
+/*
+#define gdtr8_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtr8_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gdtr8_ELEMS_2          ZTRINGV_NUM(1)
+#define gdtr8_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GDTR8(A1,A2,A3)  CCALLSFSUB3(GDTR8,gdtr8,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtr99.f
+------------------------------------------------------------------*/
+
+#define GDTR99(A1)  CCALLSFSUB1(GDTR99,gdtr99,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtrak.f
+------------------------------------------------------------------*/
+/*
+#define gdtrak_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtrak_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GDTRAK(A1)  CCALLSFSUB1(GDTRAK,gdtrak,STRING,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdtree.f
+------------------------------------------------------------------*/
+/*
+#define gdtree_ELEMS_1          ZTRINGV_NUM(1)
+#define gdtree_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GDTREE(A1,A2,A3)  CCALLSFSUB3(GDTREE,gdtree,PSTRING,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gdwmn1.f
+------------------------------------------------------------------*/
+
+#define GDWMN1(A1,A2)  CCALLSFSUB2(GDWMN1,gdwmn1,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdwmn2.f
+------------------------------------------------------------------*/
+
+#define GDWMN2(A1,A2)  CCALLSFSUB2(GDWMN2,gdwmn2,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdwmn3.f
+------------------------------------------------------------------*/
+
+#define GDWMN3(A1,A2)  CCALLSFSUB2(GDWMN3,gdwmn3,FLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gdxyz.f
+------------------------------------------------------------------*/
+
+#define GDXYZ(A1)  CCALLSFSUB1(GDXYZ,gdxyz,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gdxzoo.f
+------------------------------------------------------------------*/
+
+#define GDXZOO(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GDXZOO,gdxzoo,INT,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gdzoom.f
+------------------------------------------------------------------*/
+
+#define GDZOOM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GDZOOM,gdzoom,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : geamon.f
+------------------------------------------------------------------*/
+/*
+#define geamon_ELEMS_2          ZTRINGV_NUM(1)
+#define geamon_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GEAMON(A1,A2)  CCALLSFSUB2(GEAMON,geamon,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : geditv.f
+------------------------------------------------------------------*/
+
+#define GEDITV(A1)  CCALLSFSUB1(GEDITV,geditv,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gefch2.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GEFCH2,gefch2,FLOAT,FLOAT,FLOAT)
+#define GEFCH2(A2,A3,A4)  CCALLSFFUN3(GEFCH2,gefch2,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gekbin.f
+------------------------------------------------------------------*/
+
+#define GEKBIN() CCALLSFSUB0(GEKBIN,gekbin)
+
+/*------------------------------------------------------------------
+fortran filename   : gelset.f
+------------------------------------------------------------------*/
+
+#define GELSET(A1)  CCALLSFSUB1(GELSET,gelset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : genset.f
+------------------------------------------------------------------*/
+
+#define GENSET() CCALLSFSUB0(GENSET,genset)
+
+/*------------------------------------------------------------------
+fortran filename   : genxpt.f
+------------------------------------------------------------------*/
+
+#define GENXPT(A1,A2,A3)  CCALLSFSUB3(GENXPT,genxpt,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : geta.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN7(DOUBLE,GETA,geta,DOUBLE,INT,INT,INT,INT,PDOUBLE,PDOUBLE)
+#define GETA(A2,A3,A4,A5,A6,A7,A8)  CCALLSFFUN7(GETA,geta,DOUBLE,INT,INT,INT,INT,PDOUBLE,PDOUBLE,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : getene.f
+------------------------------------------------------------------*/
+
+#define GETENE(A1,A2,A3,A4)  CCALLSFSUB4(GETENE,getene,FLOAT,FLOATV,INTV,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : getnu.f
+------------------------------------------------------------------*/
+
+#define GETNU(A1,A2,A3,A4,A5)  CCALLSFSUB5(GETNU,getnu,FLOATV,INTV,FLOAT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : getnum.f
+------------------------------------------------------------------*/
+
+#define GETNUM(A1,A2)  CCALLSFSUB2(GETNUM,getnum,INTV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : getpar.f
+------------------------------------------------------------------*/
+
+#define GETPAR(A1,A2,A3)  CCALLSFSUB3(GETPAR,getpar,INT,INT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : getshp.f
+------------------------------------------------------------------*/
+
+#define GETSHP(A1,A2)  CCALLSFSUB2(GETSHP,getshp,INT,FLOATV,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : getver.f
+------------------------------------------------------------------*/
+/*
+#define getver_ELEMS_1          ZTRINGV_NUM(1)
+#define getver_ELEMLEN_1        ZTRINGV_NUM(8)
+*/
+
+#define GETVER(A1,A2)  CCALLSFSUB2(GETVER,getver,PSTRING,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gevkev.f
+------------------------------------------------------------------*/
+/*
+#define gevkev_ELEMS_3          ZTRINGV_NUM(1)
+#define gevkev_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GEVKEV(A1,A2,A3)  CCALLSFSUB3(GEVKEV,gevkev,FLOAT,PFLOAT,PSTRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfang.f
+------------------------------------------------------------------*/
+
+#define GFANG(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFANG,gfang,FLOATV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PLOGICAL,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfatt.f
+------------------------------------------------------------------*/
+/*
+#define gfatt_ELEMS_1          ZTRINGV_NUM(1)
+#define gfatt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfatt_ELEMS_2          ZTRINGV_NUM(1)
+#define gfatt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFATT(A1,A2,A3)  CCALLSFSUB3(GFATT,gfatt,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfclim.f
+------------------------------------------------------------------*/
+
+#define GFCLIM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFCLIM,gfclim,INT,INT,INT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfcoor.f
+------------------------------------------------------------------*/
+
+#define GFCOOR(A1,A2,A3)  CCALLSFSUB3(GFCOOR,gfcoor,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfcord.f
+------------------------------------------------------------------*/
+
+#define GFCORD(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFCORD,gfcord,INT,FLOATV,FLOATV,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfcoul.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GFCOUL,gfcoul,FLOAT)
+#define GFCOUL(A2)  CCALLSFFUN1(GFCOUL,gfcoul,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gfcvol.f
+------------------------------------------------------------------*/
+
+#define GFCVOL() CCALLSFSUB0(GFCVOL,gfcvol)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdet.f
+------------------------------------------------------------------*/
+/*
+#define gfdet_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdet_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdet_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdet_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDET(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GFDET,gfdet,STRING,STRING,PINT,STRINGV,PINT,INT,PINT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdeta.f
+------------------------------------------------------------------*/
+/*
+#define gfdeta_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdeta_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdeta_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdeta_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDETA(A1,A2,A3)  CCALLSFSUB3(GFDETA,gfdeta,STRING,STRING,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdetd.f
+------------------------------------------------------------------*/
+/*
+#define gfdetd_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdetd_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdetd_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdetd_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDETD(A1,A2,A3,A4,A5)  CCALLSFSUB5(GFDETD,gfdetd,STRING,STRING,PINT,STRINGV,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdeth.f
+------------------------------------------------------------------*/
+/*
+#define gfdeth_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdeth_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfdeth_ELEMS_4          ZTRINGV_NUM(1)
+#define gfdeth_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GFDETH(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFDETH,gfdeth,STRING,STRING,PINT,STRINGV,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdetu.f
+------------------------------------------------------------------*/
+/*
+#define gfdetu_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdetu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdetu_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdetu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDETU(A1,A2,A3,A4,A5)  CCALLSFSUB5(GFDETU,gfdetu,STRING,STRING,INT,PINT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gfdigi.f
+------------------------------------------------------------------*/
+/*
+#define gfdigi_ELEMS_1          ZTRINGV_NUM(1)
+#define gfdigi_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfdigi_ELEMS_2          ZTRINGV_NUM(1)
+#define gfdigi_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFDIGI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(GFDIGI,gfdigi,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+/*------------------------------------------------------------------
+fortran filename   : gffgo.f
+------------------------------------------------------------------*/
+
+#define GFFGO() CCALLSFSUB0(GFFGO,gffgo)
+
+/*------------------------------------------------------------------
+fortran filename   : gfhead.f
+------------------------------------------------------------------*/
+
+#define GFHEAD(A1,A2,A3,A4)  CCALLSFSUB4(GFHEAD,gfhead,PINT,PINT,PINT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gfhits.f
+------------------------------------------------------------------*/
+/*
+#define gfhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gfhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gfhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFHITS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GFHITS,gfhits,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : gfhsta.f
+------------------------------------------------------------------*/
+
+#define GFHSTA() CCALLSFSUB0(GFHSTA,gfhsta)
+
+/*------------------------------------------------------------------
+fortran filename   : gfin.f
+------------------------------------------------------------------*/
+/*
+#define gfin_ELEMS_2          ZTRINGV_NUM(#{58{4Ø#)
+#define gfin_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfin_ELEMS_5          ZTRINGV_NUM(1)
+#define gfin_ELEMLEN_5        ZTRINGV_NUM(255)
+*/
+
+#define GFIN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFIN,gfin,INT,STRINGV,INT,INT,STRING,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfind.f
+------------------------------------------------------------------*/
+/*
+#define gfind_ELEMS_1          ZTRINGV_NUM(1)
+#define gfind_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfind_ELEMS_2          ZTRINGV_NUM(1)
+#define gfind_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFIND(A1,A2,A3)  CCALLSFSUB3(GFIND,gfind,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfinds.f
+------------------------------------------------------------------*/
+
+#define GFINDS() CCALLSFSUB0(GFINDS,gfinds)
+
+/*------------------------------------------------------------------
+fortran filename   : gfipar.f
+------------------------------------------------------------------*/
+
+#define GFIPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFIPAR,gfipar,INT,INT,INT,PINT,PINT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfkine.f
+------------------------------------------------------------------*/
+
+#define GFKINE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFKINE,gfkine,INT,PFLOAT,PFLOAT,PINT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gflcar.f
+------------------------------------------------------------------*/
+
+#define GFLCAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLCAR,gflcar,INT,INT,INT,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gflphi.f
+------------------------------------------------------------------*/
+
+#define GFLPHI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLPHI,gflphi,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gflrad.f
+------------------------------------------------------------------*/
+
+#define GFLRAD(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFLRAD,gflrad,INT,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gflthe.f
+------------------------------------------------------------------*/
+
+#define GFLTHE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFLTHE,gflthe,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfluct.f
+------------------------------------------------------------------*/
+
+#define GFLUCT(A1,A2)  CCALLSFSUB2(GFLUCT,gfluct,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gfmate.f
+------------------------------------------------------------------*/
+
+#define GFMATE(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GFMATE,gfmate,INT,BYTE,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOATV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : gfmdis.f
+------------------------------------------------------------------*/
+
+#define GFMDIS() CCALLSFSUB0(GFMDIS,gfmdis)
+
+/*------------------------------------------------------------------
+fortran filename   : gfmfin.f
+------------------------------------------------------------------*/
+
+#define GFMFIN() CCALLSFSUB0(GFMFIN,gfmfin)
+
+/*------------------------------------------------------------------
+fortran filename   : gfmoth.f
+------------------------------------------------------------------*/
+/*
+#define gfmoth_ELEMS_1          ZTRINGV_NUM(1)
+#define gfmoth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfmoth_ELEMS_2          ZTRINGV_NUM(1)
+#define gfmoth_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFMOTH(A1,A2,A3)  CCALLSFSUB3(GFMOTH,gfmoth,STRING,PSTRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfndig.f
+------------------------------------------------------------------*/
+/*
+#define gfndig_ELEMS_1          ZTRINGV_NUM(1)
+#define gfndig_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfndig_ELEMS_2          ZTRINGV_NUM(1)
+#define gfndig_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFNDIG(A1,A2,A3)  CCALLSFSUB3(GFNDIG,gfndig,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfnhit.f
+------------------------------------------------------------------*/
+/*
+#define gfnhit_ELEMS_1          ZTRINGV_NUM(1)
+#define gfnhit_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gfnhit_ELEMS_2          ZTRINGV_NUM(1)
+#define gfnhit_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GFNHIT(A1,A2,A3)  CCALLSFSUB3(GFNHIT,gfnhit,STRING,STRING,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfnrdt.f
+------------------------------------------------------------------*/
+
+#define GFNRDT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFNRDT,gfnrdt,FLOAT,FLOATV,INT,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfout.f
+------------------------------------------------------------------*/
+/*
+#define gfout_ELEMS_2          ZTRINGV_NUM(#{5@{4à#)
+#define gfout_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfout_ELEMS_5          ZTRINGV_NUM(1)
+#define gfout_ELEMLEN_5        ZTRINGV_NUM(255)
+*/
+
+#define GFOUT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFOUT,gfout,INT,STRINGV,INT,INT,STRING,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfpara.f
+------------------------------------------------------------------*/
+/*
+#define gfpara_ELEMS_1          ZTRINGV_NUM(1)
+#define gfpara_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GFPARA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFPARA,gfpara,STRING,INT,INT,PINT,PINT,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfpart.f
+------------------------------------------------------------------*/
+/*
+#define gfpart_ELEMS_2          ZTRINGV_NUM(1)
+#define gfpart_ELEMLEN_2        ZTRINGV_NUM(20)
+*/
+
+#define GFPART(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFPART,gfpart,INT,STRING,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gfpath.f
+------------------------------------------------------------------*/
+
+#define GFPATH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFPATH,gfpath,INT,INT,INTV,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfrdt.f
+------------------------------------------------------------------*/
+
+#define GFRDT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFRDT,gfrdt,FLOAT,FLOATV,INT,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfrung.f
+------------------------------------------------------------------*/
+
+#define GFRUNG(A1,A2,A3,A4)  CCALLSFSUB4(GFRUNG,gfrung,PINT,PINT,PINT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gfsdpr.f
+------------------------------------------------------------------*/
+
+#define GFSDPR(A1,A2,A3)  CCALLSFSUB3(GFSDPR,gfsdpr,FLOAT,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfshdc.f
+------------------------------------------------------------------*/
+
+#define GFSHDC(A1,A2)  CCALLSFSUB2(GFSHDC,gfshdc,INT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gfshls.f
+------------------------------------------------------------------*/
+
+#define GFSHLS(A1,A2,A3)  CCALLSFSUB3(GFSHLS,gfshls,FLOAT,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gfstat.f
+------------------------------------------------------------------*/
+
+#define GFSTAT(A1)  CCALLSFSUB1(GFSTAT,gfstat,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gftmat.f
+------------------------------------------------------------------*/
+/*
+#define gftmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gftmat_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GFTMAT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GFTMAT,gftmat,INT,INT,STRING,INT,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gftmed.f
+------------------------------------------------------------------*/
+/*
+#define gftmed_ELEMS_2          ZTRINGV_NUM(1)
+#define gftmed_ELEMLEN_2        ZTRINGV_NUM(20)
+*/
+
+#define GFTMED(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(GFTMED,gftmed,INT,STRING,PINT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : gftrac.f
+------------------------------------------------------------------*/
+
+#define GFTRAC() CCALLSFSUB0(GFTRAC,gftrac)
+
+/*------------------------------------------------------------------
+fortran filename   : gfupar.f
+------------------------------------------------------------------*/
+
+#define GFUPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GFUPAR,gfupar,INT,INT,PINT,PINT,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gfvert.f
+------------------------------------------------------------------*/
+
+#define GFVERT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GFVERT,gfvert,INT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gfvolu.f
+------------------------------------------------------------------*/
+/*
+#define gfvolu_ELEMS_2          ZTRINGV_NUM(1)
+#define gfvolu_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gfvolu_ELEMS_3          ZTRINGV_NUM(1)
+#define gfvolu_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GFVOLU(A1,A2,A3)  CCALLSFSUB3(GFVOLU,gfvolu,INT,STRING,PSTRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ggcave.f
+------------------------------------------------------------------*/
+
+#define GGCAVE() CCALLSFSUB0(GGCAVE,ggcave)
+
+/*------------------------------------------------------------------
+fortran filename   : ggckov.f
+------------------------------------------------------------------*/
+
+#define GGCKOV() CCALLSFSUB0(GGCKOV,ggckov)
+
+/*------------------------------------------------------------------
+fortran filename   : ggclos.f
+------------------------------------------------------------------*/
+
+#define GGCLOS() CCALLSFSUB0(GGCLOS,ggclos)
+
+/*------------------------------------------------------------------
+fortran filename   : ggdetv.f
+------------------------------------------------------------------*/
+
+#define GGDETV(A1,A2)  CCALLSFSUB2(GGDETV,ggdetv,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : ggdpar.f
+------------------------------------------------------------------*/
+
+#define GGDPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGDPAR,ggdpar,INT,INT,INT,INTV,INT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : ggdspe.f
+------------------------------------------------------------------*/
+
+#define GGDSPE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGDSPE,ggdspe,INT,INT,FLOATV,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : ggdvlp.f
+------------------------------------------------------------------*/
+
+#define GGDVLP() CCALLSFSUB0(GGDVLP,ggdvlp)
+
+/*------------------------------------------------------------------
+fortran filename   : gget.f
+------------------------------------------------------------------*/
+/*
+#define gget_ELEMS_2          ZTRINGV_NUM(1)
+#define gget_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GGET(A1,A2,A3,A4,A5)  CCALLSFSUB5(GGET,gget,INT,STRINGV,INT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : ggnlev.f
+------------------------------------------------------------------*/
+
+#define GGNLEV() CCALLSFSUB0(GGNLEV,ggnlev)
+
+/*------------------------------------------------------------------
+fortran filename   : ggord.f
+------------------------------------------------------------------*/
+
+#define GGORD(A1)  CCALLSFSUB1(GGORD,ggord,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : ggordq.f
+------------------------------------------------------------------*/
+
+#define GGORDQ(A1)  CCALLSFSUB1(GGORDQ,ggordq,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : ggperp.f
+------------------------------------------------------------------*/
+
+#define GGPERP(A1,A2,A3)  CCALLSFSUB3(GGPERP,ggperp,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ggppar.f
+------------------------------------------------------------------*/
+
+#define GGPPAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GGPPAR,ggppar,INT,INT,INT,INTV,INT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : ggvchk.f
+------------------------------------------------------------------*/
+
+#define GGVCHK(A1,A2,A3,A4)  CCALLSFSUB4(GGVCHK,ggvchk,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghclos.f
+------------------------------------------------------------------*/
+
+#define GHCLOS() CCALLSFSUB0(GHCLOS,ghclos)
+
+/*------------------------------------------------------------------
+fortran filename   : gheini.f
+------------------------------------------------------------------*/
+
+#define GHEINI() CCALLSFSUB0(GHEINI,gheini)
+
+/*------------------------------------------------------------------
+fortran filename   : gheish.f
+------------------------------------------------------------------*/
+
+#define GHEISH() CCALLSFSUB0(GHEISH,gheish)
+
+/*------------------------------------------------------------------
+fortran filename   : ghelix.f
+------------------------------------------------------------------*/
+
+#define GHELIX(A1,A2,A3,A4)  CCALLSFSUB4(GHELIX,ghelix,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghelx3.f
+------------------------------------------------------------------*/
+
+#define GHELX3(A1,A2,A3,A4)  CCALLSFSUB4(GHELX3,ghelx3,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghepec.f
+------------------------------------------------------------------*/
+
+#define GHEPEC(A1)  CCALLSFSUB1(GHEPEC,ghepec,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : ghesig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN10(FLOAT,GHESIG,ghesig,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,INT)
+#define GHESIG(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(GHESIG,ghesig,FLOAT,FLOAT,FLOAT,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,INT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : ghetun.f
+------------------------------------------------------------------*/
+
+#define GHETUN(A1)  CCALLSFSUB1(GHETUN,ghetun,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : ghmix.f
+------------------------------------------------------------------*/
+
+#define GHMIX(A1,A2,A3,A4)  CCALLSFSUB4(GHMIX,ghmix,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghsig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHSIG,ghsig,FLOAT,INT,FLOAT)
+#define GHSIG(A2,A3,A4)  CCALLSFFUN3(GHSIG,ghsig,FLOAT,INT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghsigm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GHSIGM,ghsigm,FLOAT,INT,FLOAT)
+#define GHSIGM(A2,A3,A4)  CCALLSFFUN3(GHSIGM,ghsigm,FLOAT,INT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ghstop.f
+------------------------------------------------------------------*/
+
+#define GHSTOP() CCALLSFSUB0(GHSTOP,ghstop)
+
+/*------------------------------------------------------------------
+fortran filename   : gicyl.f
+------------------------------------------------------------------*/
+
+#define GICYL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GICYL,gicyl,FLOAT,FLOATV,FLOATV,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gidrop.f
+------------------------------------------------------------------*/
+
+#define GIDROP() CCALLSFSUB0(GIDROP,gidrop)
+
+/*------------------------------------------------------------------
+fortran filename   : ginctu.f
+------------------------------------------------------------------*/
+
+#define GINCTU(A1,A2,A3)  CCALLSFSUB3(GINCTU,ginctu,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gingtr.f
+------------------------------------------------------------------*/
+
+#define GINGTR(A1,A2,A3)  CCALLSFSUB3(GINGTR,gingtr,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ginit.f
+------------------------------------------------------------------*/
+
+#define GINIT() CCALLSFSUB0(GINIT,ginit)
+
+/*------------------------------------------------------------------
+fortran filename   : ginme.f
+------------------------------------------------------------------*/
+
+#define GINME(A1,A2,A3,A4)  CCALLSFSUB4(GINME,ginme,FLOATV,FLOAT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : ginpar.f
+------------------------------------------------------------------*/
+
+#define GINPAR(A1,A2,A3)  CCALLSFSUB3(GINPAR,ginpar,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ginpco.f
+------------------------------------------------------------------*/
+
+#define GINPCO(A1,A2,A3)  CCALLSFSUB3(GINPCO,ginpco,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ginpgo.f
+------------------------------------------------------------------*/
+
+#define GINPGO(A1,A2,A3)  CCALLSFSUB3(GINPGO,ginpgo,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ginrot.f
+------------------------------------------------------------------*/
+
+#define GINROT(A1,A2,A3)  CCALLSFSUB3(GINROT,ginrot,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gintco.f
+------------------------------------------------------------------*/
+
+#define GINTCO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GINTCO,gintco,FLOATV,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gintri.f
+------------------------------------------------------------------*/
+
+#define GINTRI() CCALLSFSUB0(GINTRI,gintri)
+
+/*------------------------------------------------------------------
+fortran filename   : gintrp.f
+------------------------------------------------------------------*/
+
+#define GINTRP(A1,A2,A3)  CCALLSFSUB3(GINTRP,gintrp,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : ginvol.f
+------------------------------------------------------------------*/
+
+#define GINVOL(A1,A2)  CCALLSFSUB2(GINVOL,ginvol,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : giplan.f
+------------------------------------------------------------------*/
+
+#define GIPLAN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GIPLAN,giplan,FLOAT,FLOATV,FLOATV,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gitran.f
+------------------------------------------------------------------*/
+
+#define GITRAN(A1,A2,A3,A4)  CCALLSFSUB4(GITRAN,gitran,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gjwrit.f
+------------------------------------------------------------------*/
+
+#define GJWRIT() CCALLSFSUB0(GJWRIT,gjwrit)
+
+/*------------------------------------------------------------------
+fortran filename   : gkhits.f
+------------------------------------------------------------------*/
+/*
+#define gkhits_ELEMS_1          ZTRINGV_NUM(1)
+#define gkhits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gkhits_ELEMS_2          ZTRINGV_NUM(1)
+#define gkhits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GKHITS(A1,A2,A3)  CCALLSFSUB3(GKHITS,gkhits,STRING,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gkokri.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GKOKRI,gkokri,FLOAT,FLOAT,FLOAT)
+#define GKOKRI(A2,A3,A4)  CCALLSFFUN3(GKOKRI,gkokri,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gkxyz.f
+------------------------------------------------------------------*/
+
+#define GKXYZ(A1)  CCALLSFSUB1(GKXYZ,gkxyz,FLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : glande.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDE,glande,FLOAT)
+#define GLANDE(A2)  CCALLSFFUN1(GLANDE,glande,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : glandg.f
+------------------------------------------------------------------*/
+
+#define GLANDG(A1)  CCALLSFSUB1(GLANDG,glandg,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : glando.f
+------------------------------------------------------------------*/
+
+#define GLANDO(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GLANDO,glando,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : glandr.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDR,glandr,FLOAT)
+#define GLANDR(A2)  CCALLSFFUN1(GLANDR,glandr,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : glands.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GLANDS,glands,FLOAT)
+#define GLANDS(A2)  CCALLSFFUN1(GLANDS,glands,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : glandz.f
+------------------------------------------------------------------*/
+
+#define GLANDZ(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GLANDZ,glandz,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : glast.f
+------------------------------------------------------------------*/
+
+#define GLAST() CCALLSFSUB0(GLAST,glast)
+
+/*------------------------------------------------------------------
+fortran filename   : glight.f
+------------------------------------------------------------------*/
+
+#define GLIGHT(A1,A2,A3,A4)  CCALLSFSUB4(GLIGHT,glight,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : glisur.f
+------------------------------------------------------------------*/
+
+#define GLISUR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GLISUR,glisur,FLOATV,FLOATV,INT,INT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : glmoth.f
+------------------------------------------------------------------*/
+/*
+#define glmoth_ELEMS_1          ZTRINGV_NUM(1)
+#define glmoth_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GLMOTH(A1,A2,A3,A4,A5)  CCALLSFSUB5(GLMOTH,glmoth,STRING,INT,PINT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : glook.f
+------------------------------------------------------------------*/
+/*
+#define glook_ELEMS_1          ZTRINGV_NUM(1)
+#define glook_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GLOOK(A1,A2,A3,A4)  CCALLSFSUB4(GLOOK,glook,STRING,INTV,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gloren.f
+------------------------------------------------------------------*/
+
+#define GLOREN(A1,A2,A3)  CCALLSFSUB3(GLOREN,gloren,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : glsklt.f
+------------------------------------------------------------------*/
+
+#define GLSKLT() CCALLSFSUB0(GLSKLT,glsklt)
+
+/*------------------------------------------------------------------
+fortran filename   : gltrac.f
+------------------------------------------------------------------*/
+
+#define GLTRAC() CCALLSFSUB0(GLTRAC,gltrac)
+
+/*------------------------------------------------------------------
+fortran filename   : gludky.f
+------------------------------------------------------------------*/
+
+#define GLUDKY() CCALLSFSUB0(GLUDKY,gludky)
+
+/*------------------------------------------------------------------
+fortran filename   : glund.f
+------------------------------------------------------------------*/
+
+#define GLUND() CCALLSFSUB0(GLUND,glund)
+
+/*------------------------------------------------------------------
+fortran filename   : glundi.f
+------------------------------------------------------------------*/
+
+#define GLUNDI() CCALLSFSUB0(GLUNDI,glundi)
+
+/*------------------------------------------------------------------
+fortran filename   : glvolu.f
+------------------------------------------------------------------*/
+
+#define GLVOLU(A1,A2,A3,A4)  CCALLSFSUB4(GLVOLU,glvolu,INT,INTV,INTV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gm3pol.f
+------------------------------------------------------------------*/
+
+#define GM3POL(A1,A2)  CCALLSFSUB2(GM3POL,gm3pol,FLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gmail.f
+------------------------------------------------------------------*/
+
+#define GMAIL(A1,A2)  CCALLSFSUB2(GMAIL,gmail,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gmate.f
+------------------------------------------------------------------*/
+
+#define GMATE() CCALLSFSUB0(GMATE,gmate)
+
+/*------------------------------------------------------------------
+fortran filename   : gmclos.f
+------------------------------------------------------------------*/
+
+#define GMCLOS() CCALLSFSUB0(GMCLOS,gmclos)
+
+/*------------------------------------------------------------------
+fortran filename   : gmcoul.f
+------------------------------------------------------------------*/
+
+#define GMCOUL(A1,A2)  CCALLSFSUB2(GMCOUL,gmcoul,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gmedia.f
+------------------------------------------------------------------*/
+
+#define GMEDIA(A1,A2)  CCALLSFSUB2(GMEDIA,gmedia,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gmedin.f
+------------------------------------------------------------------*/
+
+#define GMEDIN() CCALLSFSUB0(GMEDIN,gmedin)
+
+/*------------------------------------------------------------------
+fortran filename   : gmediv.f
+------------------------------------------------------------------*/
+
+#define GMEDIV(A1,A2,A3,A4)  CCALLSFSUB4(GMEDIV,gmediv,INT,PINT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gmepos.f
+------------------------------------------------------------------*/
+
+#define GMEPOS(A1,A2,A3,A4)  CCALLSFSUB4(GMEPOS,gmepos,INT,INT,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gmgaus.f
+------------------------------------------------------------------*/
+
+#define GMGAUS(A1,A2)  CCALLSFSUB2(GMGAUS,gmgaus,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gmicap.f
+------------------------------------------------------------------*/
+
+#define GMICAP() CCALLSFSUB0(GMICAP,gmicap)
+
+/*------------------------------------------------------------------
+fortran filename   : gmol4.f
+------------------------------------------------------------------*/
+
+#define GMOL4(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GMOL4,gmol4,PFLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gmoli.f
+------------------------------------------------------------------*/
+
+#define GMOLI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GMOLI,gmoli,FLOATV,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gmolie.f
+------------------------------------------------------------------*/
+
+#define GMOLIE(A1,A2,A3)  CCALLSFSUB3(GMOLIE,gmolie,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gmolio.f
+------------------------------------------------------------------*/
+
+#define GMOLIO(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GMOLIO,gmolio,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gmopen.f
+------------------------------------------------------------------*/
+
+#define GMOPEN(A1,A2,A3)  CCALLSFSUB3(GMOPEN,gmopen,FLOAT,FLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gmorin.f
+------------------------------------------------------------------*/
+
+#define GMORIN() CCALLSFSUB0(GMORIN,gmorin)
+
+/*------------------------------------------------------------------
+fortran filename   : gmplxs.f
+------------------------------------------------------------------*/
+
+#define GMPLXS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50)  CCALLSFSUB50(GMPLXS,gmplxs,FLOATV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,PINT,PINT,INTV,INTV,PINT,PINT,FLOATV,PFLOAT,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,INTV,PINT,PINT,INTV,PINT,PFLOAT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50)
+
+/*------------------------------------------------------------------
+fortran filename   : gmtod.f
+------------------------------------------------------------------*/
+
+#define GMTOD(A1,A2,A3)  CCALLSFSUB3(GMTOD,gmtod,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gmulof.f
+------------------------------------------------------------------*/
+
+#define GMULOF() CCALLSFSUB0(GMULOF,gmulof)
+
+/*------------------------------------------------------------------
+fortran filename   : gmults.f
+------------------------------------------------------------------*/
+
+#define GMULTS() CCALLSFSUB0(GMULTS,gmults)
+
+/*------------------------------------------------------------------
+fortran filename   : gmunu.f
+------------------------------------------------------------------*/
+
+#define GMUNU() CCALLSFSUB0(GMUNU,gmunu)
+
+/*------------------------------------------------------------------
+fortran filename   : gmunui.f
+------------------------------------------------------------------*/
+
+#define GMUNUI() CCALLSFSUB0(GMUNUI,gmunui)
+
+/*------------------------------------------------------------------
+fortran filename   : gmusig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GMUSIG,gmusig,FLOAT,FLOAT,FLOAT)
+#define GMUSIG(A2,A3,A4)  CCALLSFFUN3(GMUSIG,gmusig,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gmxsec.f
+------------------------------------------------------------------*/
+
+#define GMXSEC(A1,A2)  CCALLSFSUB2(GMXSEC,gmxsec,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gnbox.f
+------------------------------------------------------------------*/
+
+#define GNBOX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNBOX,gnbox,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnckov.f
+------------------------------------------------------------------*/
+
+#define GNCKOV() CCALLSFSUB0(GNCKOV,gnckov)
+
+/*------------------------------------------------------------------
+fortran filename   : gncone.f
+------------------------------------------------------------------*/
+
+#define GNCONE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNCONE,gncone,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gnctub.f
+------------------------------------------------------------------*/
+
+#define GNCTUB(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNCTUB,gnctub,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gneltu.f
+------------------------------------------------------------------*/
+
+#define GNELTU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNELTU,gneltu,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnext.f
+------------------------------------------------------------------*/
+
+#define GNEXT(A1,A2,A3)  CCALLSFSUB3(GNEXT,gnext,FLOATV,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gnhype.f
+------------------------------------------------------------------*/
+
+#define GNHYPE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNHYPE,gnhype,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnobox.f
+------------------------------------------------------------------*/
+
+#define GNOBOX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOBOX,gnobox,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnocon.f
+------------------------------------------------------------------*/
+
+#define GNOCON(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOCON,gnocon,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gnoctu.f
+------------------------------------------------------------------*/
+
+#define GNOCTU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOCTU,gnoctu,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnoelt.f
+------------------------------------------------------------------*/
+
+#define GNOELT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOELT,gnoelt,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnohyp.f
+------------------------------------------------------------------*/
+
+#define GNOHYP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOHYP,gnohyp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnopar.f
+------------------------------------------------------------------*/
+
+#define GNOPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPAR,gnopar,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnopco.f
+------------------------------------------------------------------*/
+
+#define GNOPCO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPCO,gnopco,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnopg1.f
+------------------------------------------------------------------*/
+
+#define GNOPG1(A1,A2,A3)  CCALLSFSUB3(GNOPG1,gnopg1,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gnopgo.f
+------------------------------------------------------------------*/
+
+#define GNOPGO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOPGO,gnopgo,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnosph.f
+------------------------------------------------------------------*/
+
+#define GNOSPH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOSPH,gnosph,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotr1.f
+------------------------------------------------------------------*/
+
+#define GNOTR1(A1)  CCALLSFSUB1(GNOTR1,gnotr1,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotr2.f
+------------------------------------------------------------------*/
+
+#define GNOTR2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GNOTR2,gnotr2,FLOATV,FLOATV,FLOATV,INT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotr9.f
+------------------------------------------------------------------*/
+
+#define GNOTR9(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTR9,gnotr9,FLOATV,FLOATV,FLOATV,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotra.f
+------------------------------------------------------------------*/
+
+#define GNOTRA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTRA,gnotra,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotrp.f
+------------------------------------------------------------------*/
+
+#define GNOTRP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNOTRP,gnotrp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnotub.f
+------------------------------------------------------------------*/
+
+#define GNOTUB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNOTUB,gnotub,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gnpara.f
+------------------------------------------------------------------*/
+
+#define GNPARA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPARA,gnpara,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnpcon.f
+------------------------------------------------------------------*/
+
+#define GNPCON(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPCON,gnpcon,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnpgo1.f
+------------------------------------------------------------------*/
+
+#define GNPGO1(A1,A2,A3)  CCALLSFSUB3(GNPGO1,gnpgo1,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gnpgon.f
+------------------------------------------------------------------*/
+
+#define GNPGON(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNPGON,gnpgon,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gnslwd.f
+------------------------------------------------------------------*/
+
+#define GNSLWD(A1,A2,A3,A4)  CCALLSFSUB4(GNSLWD,gnslwd,PINT,INT,INT,FLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gnsphr.f
+------------------------------------------------------------------*/
+
+#define GNSPHR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNSPHR,gnsphr,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gntrap.f
+------------------------------------------------------------------*/
+
+#define GNTRAP(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNTRAP,gntrap,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gntrp.f
+------------------------------------------------------------------*/
+
+#define GNTRP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GNTRP,gntrp,FLOATV,FLOATV,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gntube.f
+------------------------------------------------------------------*/
+
+#define GNTUBE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GNTUBE,gntube,FLOATV,FLOATV,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gopen.f
+------------------------------------------------------------------*/
+/*
+#define gopen_ELEMS_2          ZTRINGV_NUM(1)
+#define gopen_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GOPEN(A1,A2,A3,A4)  CCALLSFSUB4(GOPEN,gopen,INT,STRING,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : goptim.f
+------------------------------------------------------------------*/
+
+#define GOPTIM(A1)  CCALLSFSUB1(GOPTIM,goptim,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : goscin.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GOSCIN,goscin,FLOAT,FLOAT)
+#define GOSCIN(A2,A3)  CCALLSFFUN2(GOSCIN,goscin,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gpairg.f
+------------------------------------------------------------------*/
+/*------------------------------------------------------------------
+fortran filename   : gpairm.f
+------------------------------------------------------------------*/
+
+#define GPAIRM() CCALLSFSUB0(GPAIRM,gpairm)
+
+/*------------------------------------------------------------------
+fortran filename   : gpart.f
+------------------------------------------------------------------*/
+
+#define GPART() CCALLSFSUB0(GPART,gpart)
+
+/*------------------------------------------------------------------
+fortran filename   : gpaset.f
+------------------------------------------------------------------*/
+
+#define GPASET(A1)  CCALLSFSUB1(GPASET,gpaset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpaw.f
+------------------------------------------------------------------*/
+
+#define GPAW(A1,A2)  CCALLSFSUB2(GPAW,gpaw,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gpawpp.f
+------------------------------------------------------------------*/
+
+#define GPAWPP(A1,A2)  CCALLSFSUB2(GPAWPP,gpawpp,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gpcset.f
+------------------------------------------------------------------*/
+
+#define GPCSET(A1)  CCALLSFSUB1(GPCSET,gpcset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpcxyz.f
+------------------------------------------------------------------*/
+
+#define GPCXYZ() CCALLSFSUB0(GPCXYZ,gpcxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : gpdigi.f
+------------------------------------------------------------------*/
+/*
+#define gpdigi_ELEMS_1          ZTRINGV_NUM(1)
+#define gpdigi_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gpdigi_ELEMS_2          ZTRINGV_NUM(1)
+#define gpdigi_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPDIGI(A1,A2)  CCALLSFSUB2(GPDIGI,gpdigi,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gpdk.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPDK,gpdk,FLOAT,FLOAT,FLOAT)
+#define GPDK(A2,A3,A4)  CCALLSFFUN3(GPDK,gpdk,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gpdrif.f
+------------------------------------------------------------------*/
+
+#define GPDRIF(A1,A2,A3)  CCALLSFSUB3(GPDRIF,gpdrif,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gpfis.f
+------------------------------------------------------------------*/
+
+#define GPFIS() CCALLSFSUB0(GPFIS,gpfis)
+
+/*------------------------------------------------------------------
+fortran filename   : gpfisi.f
+------------------------------------------------------------------*/
+
+#define GPFISI() CCALLSFSUB0(GPFISI,gpfisi)
+
+/*------------------------------------------------------------------
+fortran filename   : gpghei.f
+------------------------------------------------------------------*/
+
+#define GPGHEI() CCALLSFSUB0(GPGHEI,gpghei)
+
+/*------------------------------------------------------------------
+fortran filename   : gpgkin.f
+------------------------------------------------------------------*/
+
+#define GPGKIN() CCALLSFSUB0(GPGKIN,gpgkin)
+
+/*------------------------------------------------------------------
+fortran filename   : gpgset.f
+------------------------------------------------------------------*/
+
+#define GPGSET(A1)  CCALLSFSUB1(GPGSET,gpgset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gphak.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GPHAK,gphak,FLOAT)
+#define GPHAK(A2)  CCALLSFFUN1(GPHAK,gphak,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphal2.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GPHAL2,gphal2,FLOAT)
+#define GPHAL2(A2)  CCALLSFFUN1(GPHAL2,gphal2,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphal3.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GPHAL3,gphal3,FLOAT)
+#define GPHAL3(A2)  CCALLSFFUN1(GPHAL3,gphal3,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphead.f
+------------------------------------------------------------------*/
+
+#define GPHEAD() CCALLSFSUB0(GPHEAD,gphead)
+
+/*------------------------------------------------------------------
+fortran filename   : gphini.f
+------------------------------------------------------------------*/
+
+#define GPHINI() CCALLSFSUB0(GPHINI,gphini)
+
+/*------------------------------------------------------------------
+fortran filename   : gphits.f
+------------------------------------------------------------------*/
+/*
+#define gphits_ELEMS_1          ZTRINGV_NUM(1)
+#define gphits_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gphits_ELEMS_2          ZTRINGV_NUM(1)
+#define gphits_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPHITS(A1,A2)  CCALLSFSUB2(GPHITS,gphits,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphmfi.f
+------------------------------------------------------------------*/
+
+#define GPHMFI() CCALLSFSUB0(GPHMFI,gphmfi)
+
+/*------------------------------------------------------------------
+fortran filename   : gphot.f
+------------------------------------------------------------------*/
+
+#define GPHOT() CCALLSFSUB0(GPHOT,gphot)
+
+/*------------------------------------------------------------------
+fortran filename   : gphoti.f
+------------------------------------------------------------------*/
+
+#define GPHOTI() CCALLSFSUB0(GPHOTI,gphoti)
+
+/*------------------------------------------------------------------
+fortran filename   : gphrin.f
+------------------------------------------------------------------*/
+
+#define GPHRIN() CCALLSFSUB0(GPHRIN,gphrin)
+
+/*------------------------------------------------------------------
+fortran filename   : gphsg1.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GPHSG1,gphsg1,FLOAT)
+#define GPHSG1(A2)  CCALLSFFUN1(GPHSG1,gphsg1,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphsg2.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GPHSG2,gphsg2,FLOAT)
+#define GPHSG2(A2)  CCALLSFFUN1(GPHSG2,gphsg2,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gphsgp.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GPHSGP,gphsgp,INT,FLOAT)
+#define GPHSGP(A2,A3)  CCALLSFFUN2(GPHSGP,gphsgp,INT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gphsig.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GPHSIG,gphsig,FLOAT,FLOAT)
+#define GPHSIG(A2,A3)  CCALLSFFUN2(GPHSIG,gphsig,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gphxin.f
+------------------------------------------------------------------*/
+
+#define GPHXIN() CCALLSFSUB0(GPHXIN,gphxin)
+
+/*------------------------------------------------------------------
+fortran filename   : gphxsi.f
+------------------------------------------------------------------*/
+
+#define GPHXSI() CCALLSFSUB0(GPHXSI,gphxsi)
+
+/*------------------------------------------------------------------
+fortran filename   : gphysi.f
+------------------------------------------------------------------*/
+
+#define GPHYSI() CCALLSFSUB0(GPHYSI,gphysi)
+
+/*------------------------------------------------------------------
+fortran filename   : gpions.f
+------------------------------------------------------------------*/
+
+#define GPIONS() CCALLSFSUB0(GPIONS,gpions)
+
+/*------------------------------------------------------------------
+fortran filename   : gpjxyz.f
+------------------------------------------------------------------*/
+
+#define GPJXYZ(A1)  CCALLSFSUB1(GPJXYZ,gpjxyz,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpkine.f
+------------------------------------------------------------------*/
+
+#define GPKINE(A1)  CCALLSFSUB1(GPKINE,gpkine,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpkinx.f
+------------------------------------------------------------------*/
+
+#define GPKINX(A1)  CCALLSFSUB1(GPKINX,gpkinx,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gplmat.f
+------------------------------------------------------------------*/
+/*
+#define gplmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gplmat_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GPLMAT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GPLMAT,gplmat,INT,INT,STRING,INT,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gpmate.f
+------------------------------------------------------------------*/
+
+#define GPMATE(A1)  CCALLSFSUB1(GPMATE,gpmate,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpmatx.f
+------------------------------------------------------------------*/
+
+#define GPMATX(A1)  CCALLSFSUB1(GPMATX,gpmatx,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpmwpc.f
+------------------------------------------------------------------*/
+
+#define GPMWPC(A1,A2,A3)  CCALLSFSUB3(GPMWPC,gpmwpc,FLOATV,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gpoiss.f
+------------------------------------------------------------------*/
+
+#define GPOISS(A1,A2,A3)  CCALLSFSUB3(GPOISS,gpoiss,FLOATV,PINT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gposi.f
+------------------------------------------------------------------*/
+/*
+#define gposi_ELEMS_3          ZTRINGV_NUM(1)
+#define gposi_ELEMLEN_3        ZTRINGV_NUM(10)
+*/
+
+#define GPOSI(A1,A2,A3,A4)  CCALLSFSUB4(GPOSI,gposi,FLOATV,FLOATV,STRING,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gppart.f
+------------------------------------------------------------------*/
+
+#define GPPART(A1)  CCALLSFSUB1(GPPART,gppart,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpparx.f
+------------------------------------------------------------------*/
+
+#define GPPARX(A1)  CCALLSFSUB1(GPPARX,gpparx,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gprela.f
+------------------------------------------------------------------*/
+
+#define GPRELA() CCALLSFSUB0(GPRELA,gprela)
+
+/*------------------------------------------------------------------
+fortran filename   : gprelm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPRELM,gprelm,FLOAT,FLOAT,FLOAT)
+#define GPRELM(A2,A3,A4)  CCALLSFFUN3(GPRELM,gprelm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gprint.f
+------------------------------------------------------------------*/
+/*
+#define gprint_ELEMS_1          ZTRINGV_NUM(1)
+#define gprint_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GPRINT(A1,A2)  CCALLSFSUB2(GPRINT,gprint,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gprmat.f
+------------------------------------------------------------------*/
+/*
+#define gprmat_ELEMS_3          ZTRINGV_NUM(1)
+#define gprmat_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GPRMAT(A1,A2,A3,A4,A5)  CCALLSFSUB5(GPRMAT,gprmat,INT,INT,STRING,INT,FLOATV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gprobi.f
+------------------------------------------------------------------*/
+
+#define GPROBI() CCALLSFSUB0(GPROBI,gprobi)
+
+/*------------------------------------------------------------------
+fortran filename   : gprotm.f
+------------------------------------------------------------------*/
+
+#define GPROTM(A1)  CCALLSFSUB1(GPROTM,gprotm,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gprotx.f
+------------------------------------------------------------------*/
+
+#define GPROTX(A1)  CCALLSFSUB1(GPROTX,gprotx,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gprsga.f
+------------------------------------------------------------------*/
+
+#define GPRSGA() CCALLSFSUB0(GPRSGA,gprsga)
+
+/*------------------------------------------------------------------
+fortran filename   : gprsgg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GPRSGG,gprsgg,FLOAT,FLOAT)
+#define GPRSGG(A2,A3)  CCALLSFFUN2(GPRSGG,gprsgg,FLOAT,FLOAT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gprsgm.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GPRSGM,gprsgm,FLOAT,FLOAT,FLOAT)
+#define GPRSGM(A2,A3,A4)  CCALLSFFUN3(GPRSGM,gprsgm,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gprung.f
+------------------------------------------------------------------*/
+
+#define GPRUNG() CCALLSFSUB0(GPRUNG,gprung)
+
+/*------------------------------------------------------------------
+fortran filename   : gpscin.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,GPSCIN,gpscin,DOUBLE,DOUBLE,DOUBLE,FLOATV)
+#define GPSCIN(A2,A3,A4,A5)  CCALLSFFUN4(GPSCIN,gpscin,DOUBLE,DOUBLE,DOUBLE,FLOATV,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gpsets.f
+------------------------------------------------------------------*/
+/*
+#define gpsets_ELEMS_1          ZTRINGV_NUM(1)
+#define gpsets_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gpsets_ELEMS_2          ZTRINGV_NUM(1)
+#define gpsets_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GPSETS(A1,A2)  CCALLSFSUB2(GPSETS,gpsets,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gpstat.f
+------------------------------------------------------------------*/
+
+#define GPSTAT() CCALLSFSUB0(GPSTAT,gpstat)
+
+/*------------------------------------------------------------------
+fortran filename   : gptmed.f
+------------------------------------------------------------------*/
+
+#define GPTMED(A1)  CCALLSFSUB1(GPTMED,gptmed,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gptmex.f
+------------------------------------------------------------------*/
+
+#define GPTMEX(A1)  CCALLSFSUB1(GPTMEX,gptmex,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gptset.f
+------------------------------------------------------------------*/
+
+#define GPTSET(A1,A2)  CCALLSFSUB2(GPTSET,gptset,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gpvert.f
+------------------------------------------------------------------*/
+
+#define GPVERT(A1)  CCALLSFSUB1(GPVERT,gpvert,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpvolu.f
+------------------------------------------------------------------*/
+
+#define GPVOLU(A1)  CCALLSFSUB1(GPVOLU,gpvolu,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gpvolx.f
+------------------------------------------------------------------*/
+
+#define GPVOLX(A1)  CCALLSFSUB1(GPVOLX,gpvolx,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : grangi.f
+------------------------------------------------------------------*/
+
+#define GRANGI() CCALLSFSUB0(GRANGI,grangi)
+
+/*------------------------------------------------------------------
+fortran filename   : granor.f
+------------------------------------------------------------------*/
+
+#define GRANOR(A1,A2)  CCALLSFSUB2(GRANOR,granor,PFLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : grayl.f
+------------------------------------------------------------------*/
+
+#define GRAYL() CCALLSFSUB0(GRAYL,grayl)
+
+/*------------------------------------------------------------------
+fortran filename   : grayli.f
+------------------------------------------------------------------*/
+
+#define GRAYLI() CCALLSFSUB0(GRAYLI,grayli)
+
+/*------------------------------------------------------------------
+fortran filename   : grend.f
+------------------------------------------------------------------*/
+
+#define GREND(A1)  CCALLSFSUB1(GREND,grend,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : greswk.f
+------------------------------------------------------------------*/
+
+#define GRESWK() CCALLSFSUB0(GRESWK,greswk)
+
+/*------------------------------------------------------------------
+fortran filename   : greucl.f
+------------------------------------------------------------------*/
+/*
+#define greucl_ELEMS_2          ZTRINGV_NUM(1)
+#define greucl_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GREUCL(A1,A2)  CCALLSFSUB2(GREUCL,greucl,INT,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : grfile.f
+------------------------------------------------------------------*/
+/*
+#define grfile_ELEMS_2          ZTRINGV_NUM(1)
+#define grfile_ELEMLEN_2        ZTRINGV_NUM(255)
+#define grfile_ELEMS_3          ZTRINGV_NUM(1)
+#define grfile_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GRFILE(A1,A2,A3)  CCALLSFSUB3(GRFILE,grfile,INT,STRING,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grget.f
+------------------------------------------------------------------*/
+/*
+#define grget_ELEMS_1          ZTRINGV_NUM(1)
+#define grget_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GRGET(A1,A2,A3,A4,A5)  CCALLSFSUB5(GRGET,grget,STRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : grhits.f
+------------------------------------------------------------------*/
+/*
+#define grhits_ELEMS_1          ZTRINGV_NUM(1)
+#define grhits_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grhits_ELEMS_2          ZTRINGV_NUM(1)
+#define grhits_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GRHITS(A1,A2,A3,A4)  CCALLSFSUB4(GRHITS,grhits,STRING,STRING,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : grin.f
+------------------------------------------------------------------*/
+/*
+#define grin_ELEMS_1          ZTRINGV_NUM(1)
+#define grin_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grin_ELEMS_3          ZTRINGV_NUM(1)
+#define grin_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GRIN(A1,A2,A3)  CCALLSFSUB3(GRIN,grin,STRING,INT,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grkuta.f
+------------------------------------------------------------------*/
+
+#define GRKUTA(A1,A2,A3,A4)  CCALLSFSUB4(GRKUTA,grkuta,FLOAT,FLOAT,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : grleas.f
+------------------------------------------------------------------*/
+
+#define GRLEAS(A1)  CCALLSFSUB1(GRLEAS,grleas,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : grmdir.f
+------------------------------------------------------------------*/
+/*
+#define grmdir_ELEMS_1          ZTRINGV_NUM(1)
+#define grmdir_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grmdir_ELEMS_2          ZTRINGV_NUM(1)
+#define grmdir_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GRMDIR(A1,A2)  CCALLSFSUB2(GRMDIR,grmdir,STRING,STRING,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : grmtd.f
+------------------------------------------------------------------*/
+
+#define GRMTD(A1,A2,A3)  CCALLSFSUB3(GRMTD,grmtd,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grmul.f
+------------------------------------------------------------------*/
+
+#define GRMUL(A1,A2,A3)  CCALLSFSUB3(GRMUL,grmul,FLOATV,INT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grndm.f
+------------------------------------------------------------------*/
+
+#define GRNDM(A1,A2)  CCALLSFSUB2(GRNDM,grndm,PFLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : grndmq.f
+------------------------------------------------------------------*/
+/*
+#define grndmq_ELEMS_4          ZTRINGV_NUM(1)
+#define grndmq_ELEMLEN_4        ZTRINGV_NUM(255)
+*/
+
+#define GRNDMQ(A1,A2,A3,A4)  CCALLSFSUB4(GRNDMQ,grndmq,PINT,PINT,INT,STRING,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : grndst.f
+------------------------------------------------------------------*/
+
+#define GRNDST(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(GRNDST,grndst,FLOATV,INTV,INT,INT,FLOAT,PFLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : grot.f
+------------------------------------------------------------------*/
+
+#define GROT(A1,A2,A3)  CCALLSFSUB3(GROT,grot,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grout.f
+------------------------------------------------------------------*/
+/*
+#define grout_ELEMS_1          ZTRINGV_NUM(1)
+#define grout_ELEMLEN_1        ZTRINGV_NUM(255)
+#define grout_ELEMS_3          ZTRINGV_NUM(1)
+#define grout_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GROUT(A1,A2,A3)  CCALLSFSUB3(GROUT,grout,STRING,INT,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : grpar.f
+------------------------------------------------------------------*/
+
+#define GRPAR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GRPAR,grpar,FLOAT,INT,FLOATV,INT,FLOAT,FLOAT,INT,FLOATV,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : grsave.f
+------------------------------------------------------------------*/
+/*
+#define grsave_ELEMS_1          ZTRINGV_NUM(1)
+#define grsave_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GRSAVE(A1,A2,A3,A4,A5)  CCALLSFSUB5(GRSAVE,grsave,STRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : grun.f
+------------------------------------------------------------------*/
+
+#define GRUN() CCALLSFSUB0(GRUN,grun)
+
+/*------------------------------------------------------------------
+fortran filename   : gsagtr.f
+------------------------------------------------------------------*/
+
+#define GSAGTR(A1,A2,A3,A4)  CCALLSFSUB4(GSAGTR,gsagtr,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsahit.f
+------------------------------------------------------------------*/
+
+#define GSAHIT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSAHIT,gsahit,INT,INT,INT,INTV,FLOATV,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsaphi.f
+------------------------------------------------------------------*/
+
+#define GSAPHI(A1,A2,A3,A4)  CCALLSFSUB4(GSAPHI,gsaphi,FLOATV,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsatt.f
+------------------------------------------------------------------*/
+/*
+#define gsatt_ELEMS_1          ZTRINGV_NUM(1)
+#define gsatt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsatt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsatt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSATT(A1,A2,A3)  CCALLSFSUB3(GSATT,gsatt,STRING,STRING,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gsave.f
+------------------------------------------------------------------*/
+/*
+#define gsave_ELEMS_2          ZTRINGV_NUM(1)
+#define gsave_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSAVE(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSAVE,gsave,INT,STRINGV,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gscani.f
+------------------------------------------------------------------*/
+
+#define GSCANI() CCALLSFSUB0(GSCANI,gscani)
+
+/*------------------------------------------------------------------
+fortran filename   : gscank.f
+------------------------------------------------------------------*/
+
+#define GSCANK() CCALLSFSUB0(GSCANK,gscank)
+
+/*------------------------------------------------------------------
+fortran filename   : gscano.f
+------------------------------------------------------------------*/
+
+#define GSCANO() CCALLSFSUB0(GSCANO,gscano)
+
+/*------------------------------------------------------------------
+fortran filename   : gscanu.f
+------------------------------------------------------------------*/
+
+#define GSCANU() CCALLSFSUB0(GSCANU,gscanu)
+
+/*------------------------------------------------------------------
+fortran filename   : gschit.f
+------------------------------------------------------------------*/
+
+#define GSCHIT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSCHIT,gschit,INT,INT,INT,INTV,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gschk.f
+------------------------------------------------------------------*/
+/*
+#define gschk_ELEMS_1          ZTRINGV_NUM(1)
+#define gschk_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gschk_ELEMS_2          ZTRINGV_NUM(1)
+#define gschk_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSCHK(A1,A2,A3,A4)  CCALLSFSUB4(GSCHK,gschk,STRING,STRING,INT,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsckov.f
+------------------------------------------------------------------*/
+
+#define GSCKOV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSCKOV,gsckov,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gscvol.f
+------------------------------------------------------------------*/
+
+#define GSCVOL() CCALLSFSUB0(GSCVOL,gscvol)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdet.f
+------------------------------------------------------------------*/
+/*
+#define gsdet_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdet_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdet_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdet_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDET(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GSDET,gsdet,STRING,STRING,INT,STRING,INTV,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdeta.f
+------------------------------------------------------------------*/
+/*
+#define gsdeta_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdeta_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdeta_ELEMS_3          ZTRINGV_NUM(1)
+#define gsdeta_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GSDETA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDETA,gsdeta,STRING,STRING,STRING,INT,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdetd.f
+------------------------------------------------------------------*/
+/*
+#define gsdetd_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetd_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdetd_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdetd_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDETD(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSDETD,gsdetd,STRING,STRING,INT,STRINGV,INTV,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdeth.f
+------------------------------------------------------------------*/
+/*
+#define gsdeth_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdeth_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gsdeth_ELEMS_4          ZTRINGV_NUM(1)
+#define gsdeth_ELEMLEN_4        ZTRINGV_NUM(4)
+*/
+
+#define GSDETH(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDETH,gsdeth,STRING,STRING,INT,STRINGV,INTV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdetu.f
+------------------------------------------------------------------*/
+/*
+#define gsdetu_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetu_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDETU(A1,A2,A3,A4)  CCALLSFSUB4(GSDETU,gsdetu,STRING,STRING,INT,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdetv.f
+------------------------------------------------------------------*/
+/*
+#define gsdetv_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdetv_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdetv_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdetv_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDETV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDETV,gsdetv,STRING,STRING,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdigi.f
+------------------------------------------------------------------*/
+
+#define GSDIGI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDIGI,gsdigi,INT,INT,INTV,INT,INTV,INTV,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdk.f
+------------------------------------------------------------------*/
+
+#define GSDK(A1,A2,A3)  CCALLSFSUB3(GSDK,gsdk,INT,FLOATV,INTV,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvn.f
+------------------------------------------------------------------*/
+/*
+#define gsdvn_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvn_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvn_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvn_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVN(A1,A2,A3,A4)  CCALLSFSUB4(GSDVN,gsdvn,STRING,STRING,INT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvn2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvn2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvn2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvn2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvn2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVN2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVN2,gsdvn2,STRING,STRING,INT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvs.f
+------------------------------------------------------------------*/
+/*
+#define gsdvs_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvs_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvs_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvs_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVS(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSDVS,gsdvs,STRING,STRING,FLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvs2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvs2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvs2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvs2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvs2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVS2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVS2,gsdvs2,STRING,STRING,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvt.f
+------------------------------------------------------------------*/
+/*
+#define gsdvt_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvt_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvt_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSDVT,gsdvt,STRING,STRING,FLOAT,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvt2.f
+------------------------------------------------------------------*/
+/*
+#define gsdvt2_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvt2_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvt2_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvt2_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVT2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSDVT2,gsdvt2,STRING,STRING,FLOAT,INT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsdvx.f
+------------------------------------------------------------------*/
+/*
+#define gsdvx_ELEMS_1          ZTRINGV_NUM(1)
+#define gsdvx_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsdvx_ELEMS_2          ZTRINGV_NUM(1)
+#define gsdvx_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSDVX(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSDVX,gsdvx,STRING,STRING,INT,INT,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gshead.f
+------------------------------------------------------------------*/
+
+#define GSHEAD(A1,A2,A3)  CCALLSFSUB3(GSHEAD,gshead,INT,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gshlin.f
+------------------------------------------------------------------*/
+
+#define GSHLIN() CCALLSFSUB0(GSHLIN,gshlin)
+
+/*------------------------------------------------------------------
+fortran filename   : gsipar.f
+------------------------------------------------------------------*/
+
+#define GSIPAR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSIPAR,gsipar,INT,INT,INT,INT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gskine.f
+------------------------------------------------------------------*/
+
+#define GSKINE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSKINE,gskine,FLOATV,INT,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsking.f
+------------------------------------------------------------------*/
+
+#define GSKING(A1)  CCALLSFSUB1(GSKING,gsking,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gskinu.f
+------------------------------------------------------------------*/
+
+#define GSKINU(A1,A2,A3,A4)  CCALLSFSUB4(GSKINU,gskinu,INT,INT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gskpho.f
+------------------------------------------------------------------*/
+
+#define GSKPHO(A1)  CCALLSFSUB1(GSKPHO,gskpho,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gsmate.f
+------------------------------------------------------------------*/
+/*
+#define gsmate_ELEMS_2          ZTRINGV_NUM(1)
+#define gsmate_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSMATE(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GSMATE,gsmate,INT,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : gsmixt.f
+------------------------------------------------------------------*/
+/*
+#define gsmixt_ELEMS_2          ZTRINGV_NUM(1)
+#define gsmixt_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSMIXT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSMIXT,gsmixt,INT,STRING,FLOATV,FLOATV,FLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsnear.f
+------------------------------------------------------------------*/
+/*
+#define gsnear_ELEMS_1          ZTRINGV_NUM(1)
+#define gsnear_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSNEAR(A1,A2,A3,A4)  CCALLSFSUB4(GSNEAR,gsnear,STRING,INT,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsnext.f
+------------------------------------------------------------------*/
+/*
+#define gsnext_ELEMS_1          ZTRINGV_NUM(1)
+#define gsnext_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSNEXT(A1,A2,A3,A4)  CCALLSFSUB4(GSNEXT,gsnext,STRING,INT,INT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsngtr.f
+------------------------------------------------------------------*/
+
+#define GSNGTR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSNGTR,gsngtr,FLOATV,FLOATV,INT,FLOAT,PFLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsord.f
+------------------------------------------------------------------*/
+/*
+#define gsord_ELEMS_1          ZTRINGV_NUM(1)
+#define gsord_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSORD(A1,A2)  CCALLSFSUB2(GSORD,gsord,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gspart.f
+------------------------------------------------------------------*/
+/*
+#define gspart_ELEMS_2          ZTRINGV_NUM(1)
+#define gspart_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSPART(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSPART,gspart,INT,STRING,INT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gspe3d.f
+------------------------------------------------------------------*/
+/*
+#define gspe3d_ELEMS_1          ZTRINGV_NUM(1)
+#define gspe3d_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSPE3D(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSPE3D,gspe3d,STRING,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gspos.f
+------------------------------------------------------------------*/
+/*
+#define gspos_ELEMS_1          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gspos_ELEMS_3          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_3        ZTRINGV_NUM(4)
+#define gspos_ELEMS_8          ZTRINGV_NUM(1)
+#define gspos_ELEMLEN_8        ZTRINGV_NUM(4)
+*/
+
+#define GSPOS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GSPOS,gspos,STRING,INT,STRING,FLOAT,FLOAT,FLOAT,INT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gsposp.f
+------------------------------------------------------------------*/
+/*
+#define gsposp_ELEMS_1          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsposp_ELEMS_3          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_3        ZTRINGV_NUM(4)
+#define gsposp_ELEMS_8          ZTRINGV_NUM(1)
+#define gsposp_ELEMLEN_8        ZTRINGV_NUM(4)
+*/
+
+#define GSPOSP(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(GSPOSP,gsposp,STRING,INT,STRING,FLOAT,FLOAT,FLOAT,INT,STRING,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : gspset.f
+------------------------------------------------------------------*/
+
+#define GSPSET(A1)  CCALLSFSUB1(GSPSET,gspset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gsrotm.f
+------------------------------------------------------------------*/
+
+#define GSROTM(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSROTM,gsrotm,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gsrung.f
+------------------------------------------------------------------*/
+
+#define GSRUNG(A1,A2,A3)  CCALLSFSUB3(GSRUNG,gsrung,INT,FLOATV,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gsscan.f
+------------------------------------------------------------------*/
+
+#define GSSCAN(A1,A2)  CCALLSFSUB2(GSSCAN,gsscan,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gsstak.f
+------------------------------------------------------------------*/
+
+#define GSSTAK(A1)  CCALLSFSUB1(GSSTAK,gsstak,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gstcor.f
+------------------------------------------------------------------*/
+
+#define GSTCOR(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSTCOR,gstcor,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gstdn.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GSTDN,gstdn,FLOAT)
+#define GSTDN(A2)  CCALLSFFUN1(GSTDN,gstdn,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gstini.f
+------------------------------------------------------------------*/
+
+#define GSTINI() CCALLSFSUB0(GSTINI,gstini)
+
+/*------------------------------------------------------------------
+fortran filename   : gstint.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GSTINT,gstint,FLOAT,FLOATV,FLOATV,INT)
+#define GSTINT(A2,A3,A4,A5)  CCALLSFFUN4(GSTINT,gstint,FLOAT,FLOATV,FLOATV,INT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gstmat.f
+------------------------------------------------------------------*/
+/*
+#define gstmat_ELEMS_1          ZTRINGV_NUM(1)
+#define gstmat_ELEMLEN_1        ZTRINGV_NUM(24)
+*/
+
+#define GSTMAT(A1)  CCALLSFSUB1(GSTMAT,gstmat,STRING,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gstmed.f
+------------------------------------------------------------------*/
+/*
+#define gstmed_ELEMS_2          ZTRINGV_NUM(1)
+#define gstmed_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSTMED(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(GSTMED,gstmed,INT,STRING,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : gstord.f
+------------------------------------------------------------------*/
+
+#define GSTORD() CCALLSFSUB0(GSTORD,gstord)
+
+/*------------------------------------------------------------------
+fortran filename   : gstpar.f
+------------------------------------------------------------------*/
+/*
+#define gstpar_ELEMS_2          ZTRINGV_NUM(1)
+#define gstpar_ELEMLEN_2        ZTRINGV_NUM(255)
+*/
+
+#define GSTPAR(A1,A2,A3)  CCALLSFSUB3(GSTPAR,gstpar,INT,STRING,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gstrac.f
+------------------------------------------------------------------*/
+
+#define GSTRAC() CCALLSFSUB0(GSTRAC,gstrac)
+
+/*------------------------------------------------------------------
+fortran filename   : gstren.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GSTREN,gstren,FLOAT,FLOAT,FLOAT)
+#define GSTREN(A2,A3,A4)  CCALLSFFUN3(GSTREN,gstren,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gstset.f
+------------------------------------------------------------------*/
+/*
+#define gstset_ELEMS_1          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_1        ZTRINGV_NUM(24)
+#define gstset_ELEMS_2          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gstset_ELEMS_3          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_3        ZTRINGV_NUM(24)
+#define gstset_ELEMS_4          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_4        ZTRINGV_NUM(24)
+#define gstset_ELEMS_5          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_5        ZTRINGV_NUM(24)
+#define gstset_ELEMS_6          ZTRINGV_NUM(1)
+#define gstset_ELEMLEN_6        ZTRINGV_NUM(24)
+*/
+
+#define GSTSET(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSTSET,gstset,STRING,STRING,STRING,STRING,STRING,STRING,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsttab.f
+------------------------------------------------------------------*/
+
+#define GSTTAB(A1,A2,A3,A4)  CCALLSFSUB4(GSTTAB,gsttab,FLOAT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gstxin.f
+------------------------------------------------------------------*/
+
+#define GSTXIN() CCALLSFSUB0(GSTXIN,gstxin)
+
+/*------------------------------------------------------------------
+fortran filename   : gsunea.f
+------------------------------------------------------------------*/
+/*
+#define gsunea_ELEMS_1          ZTRINGV_NUM(1)
+#define gsunea_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GSUNEA(A1,A2)  CCALLSFSUB2(GSUNEA,gsunea,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gsvert.f
+------------------------------------------------------------------*/
+
+#define GSVERT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSVERT,gsvert,FLOATV,INT,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsveru.f
+------------------------------------------------------------------*/
+
+#define GSVERU(A1,A2,A3,A4)  CCALLSFSUB4(GSVERU,gsveru,INT,INT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gsvolu.f
+------------------------------------------------------------------*/
+/*
+#define gsvolu_ELEMS_1          ZTRINGV_NUM(1)
+#define gsvolu_ELEMLEN_1        ZTRINGV_NUM(4)
+#define gsvolu_ELEMS_2          ZTRINGV_NUM(1)
+#define gsvolu_ELEMLEN_2        ZTRINGV_NUM(4)
+*/
+
+#define GSVOLU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GSVOLU,gsvolu,STRING,STRING,INT,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gsxyz.f
+------------------------------------------------------------------*/
+
+#define GSXYZ() CCALLSFSUB0(GSXYZ,gsxyz)
+
+/*------------------------------------------------------------------
+fortran filename   : gsync.f
+------------------------------------------------------------------*/
+
+#define GSYNC() CCALLSFSUB0(GSYNC,gsync)
+
+/*------------------------------------------------------------------
+fortran filename   : gsynge.f
+------------------------------------------------------------------*/
+
+#define GSYNGE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GSYNGE,gsynge,FLOAT,FLOAT,FLOAT,FLOAT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gtau.f
+------------------------------------------------------------------*/
+
+#define GTAU() CCALLSFSUB0(GTAU,gtau)
+
+/*------------------------------------------------------------------
+fortran filename   : gtckov.f
+------------------------------------------------------------------*/
+
+#define GTCKOV() CCALLSFSUB0(GTCKOV,gtckov)
+
+/*------------------------------------------------------------------
+fortran filename   : gtelec.f
+------------------------------------------------------------------*/
+
+#define GTELEC() CCALLSFSUB0(GTELEC,gtelec)
+
+/*------------------------------------------------------------------
+fortran filename   : gtgama.f
+------------------------------------------------------------------*/
+
+#define GTGAMA() CCALLSFSUB0(GTGAMA,gtgama)
+
+/*------------------------------------------------------------------
+fortran filename   : gthadr.f
+------------------------------------------------------------------*/
+
+#define GTHADR() CCALLSFSUB0(GTHADR,gthadr)
+
+/*------------------------------------------------------------------
+fortran filename   : gthion.f
+------------------------------------------------------------------*/
+
+#define GTHION() CCALLSFSUB0(GTHION,gthion)
+
+/*------------------------------------------------------------------
+fortran filename   : gtiso.f
+------------------------------------------------------------------*/
+
+#define GTISO(A1,A2,A3)  CCALLSFSUB3(GTISO,gtiso,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gtmed.f
+------------------------------------------------------------------*/
+
+#define GTMED(A1,A2)  CCALLSFSUB2(GTMED,gtmed,INT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gtmedi.f
+------------------------------------------------------------------*/
+
+#define GTMEDI(A1,A2)  CCALLSFSUB2(GTMEDI,gtmedi,FLOATV,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gtmuon.f
+------------------------------------------------------------------*/
+
+#define GTMUON() CCALLSFSUB0(GTMUON,gtmuon)
+
+/*------------------------------------------------------------------
+fortran filename   : gtneut.f
+------------------------------------------------------------------*/
+
+#define GTNEUT() CCALLSFSUB0(GTNEUT,gtneut)
+
+/*------------------------------------------------------------------
+fortran filename   : gtnext.f
+------------------------------------------------------------------*/
+
+#define GTNEXT() CCALLSFSUB0(GTNEXT,gtnext)
+
+/*------------------------------------------------------------------
+fortran filename   : gtnino.f
+------------------------------------------------------------------*/
+
+#define GTNINO() CCALLSFSUB0(GTNINO,gtnino)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrack.f
+------------------------------------------------------------------*/
+
+#define GTRACK() CCALLSFSUB0(GTRACK,gtrack)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrain.f
+------------------------------------------------------------------*/
+
+#define GTRAIN(A1,A2)  CCALLSFSUB2(GTRAIN,gtrain,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrase.f
+------------------------------------------------------------------*/
+
+#define GTRASE(A1)  CCALLSFSUB1(GTRASE,gtrase,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrdse.f
+------------------------------------------------------------------*/
+
+#define GTRDSE(A1,A2)  CCALLSFSUB2(GTRDSE,gtrdse,FLOATV,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gtreve.f
+------------------------------------------------------------------*/
+
+#define GTREVE() CCALLSFSUB0(GTREVE,gtreve)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrig.f
+------------------------------------------------------------------*/
+
+#define GTRIG() CCALLSFSUB0(GTRIG,gtrig)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrigc.f
+------------------------------------------------------------------*/
+
+#define GTRIGC() CCALLSFSUB0(GTRIGC,gtrigc)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrigi.f
+------------------------------------------------------------------*/
+
+#define GTRIGI() CCALLSFSUB0(GTRIGI,gtrigi)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrmul.f
+------------------------------------------------------------------*/
+
+#define GTRMUL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GTRMUL,gtrmul,FLOATV,FLOATV,FLOATV,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrnsf.f
+------------------------------------------------------------------*/
+
+#define GTRNSF(A1,A2,A3,A4)  CCALLSFSUB4(GTRNSF,gtrnsf,FLOATV,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gtrset.f
+------------------------------------------------------------------*/
+
+#define GTRSET(A1)  CCALLSFSUB1(GTRSET,gtrset,FLOATV,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gtuset.f
+------------------------------------------------------------------*/
+
+#define GTUSET(A1,A2)  CCALLSFSUB2(GTUSET,gtuset,FLOATV,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gtxset.f
+------------------------------------------------------------------*/
+/*
+#define gtxset_ELEMS_1          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_1        ZTRINGV_NUM(24)
+#define gtxset_ELEMS_2          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_2        ZTRINGV_NUM(4)
+#define gtxset_ELEMS_6          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_6        ZTRINGV_NUM(24)
+#define gtxset_ELEMS_7          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_7        ZTRINGV_NUM(24)
+#define gtxset_ELEMS_8          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_8        ZTRINGV_NUM(24)
+#define gtxset_ELEMS_9          ZTRINGV_NUM(1)
+#define gtxset_ELEMLEN_9        ZTRINGV_NUM(24)
+*/
+
+#define GTXSET(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GTXSET,gtxset,STRING,STRING,INT,INT,INT,STRING,STRING,STRING,STRING,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : gudcay.f
+------------------------------------------------------------------*/
+
+#define GUDCAY() CCALLSFSUB0(GUDCAY,gudcay)
+
+/*------------------------------------------------------------------
+fortran filename   : gudigi.f
+------------------------------------------------------------------*/
+
+#define GUDIGI() CCALLSFSUB0(GUDIGI,gudigi)
+
+/*------------------------------------------------------------------
+fortran filename   : gudtim.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GUDTIM,gudtim,FLOAT,FLOAT,INT,FLOAT)
+#define GUDTIM(A2,A3,A4,A5)  CCALLSFFUN4(GUDTIM,gudtim,FLOAT,FLOAT,INT,FLOAT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gufld.f
+------------------------------------------------------------------*/
+
+#define GUFLD(A1,A2)  CCALLSFSUB2(GUFLD,gufld,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : guhadr.f
+------------------------------------------------------------------*/
+
+#define GUHADR() CCALLSFSUB0(GUHADR,guhadr)
+
+/*------------------------------------------------------------------
+fortran filename   : guiget.f
+------------------------------------------------------------------*/
+
+#define GUIGET(A1,A2,A3)  CCALLSFSUB3(GUIGET,guiget,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : guinme.f
+------------------------------------------------------------------*/
+
+#define GUINME(A1,A2,A3,A4)  CCALLSFSUB4(GUINME,guinme,FLOATV,FLOAT,FLOATV,PINT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : guinti.f
+------------------------------------------------------------------*/
+
+#define GUINTI() CCALLSFSUB0(GUINTI,guinti)
+
+/*------------------------------------------------------------------
+fortran filename   : gukine.f
+------------------------------------------------------------------*/
+
+#define GUKINE() CCALLSFSUB0(GUKINE,gukine)
+
+/*------------------------------------------------------------------
+fortran filename   : gunear.f
+------------------------------------------------------------------*/
+
+#define GUNEAR(A1,A2,A3,A4)  CCALLSFSUB4(GUNEAR,gunear,INT,INT,FLOATV,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gunliv.f
+------------------------------------------------------------------*/
+
+#define GUNLIV(A1,A2,A3)  CCALLSFSUB3(GUNLIV,gunliv,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : guout.f
+------------------------------------------------------------------*/
+
+#define GUOUT() CCALLSFSUB0(GUOUT,guout)
+
+/*------------------------------------------------------------------
+fortran filename   : gupara.f
+------------------------------------------------------------------*/
+
+#define GUPARA() CCALLSFSUB0(GUPARA,gupara)
+
+/*------------------------------------------------------------------
+fortran filename   : guphad.f
+------------------------------------------------------------------*/
+
+#define GUPHAD() CCALLSFSUB0(GUPHAD,guphad)
+
+/*------------------------------------------------------------------
+fortran filename   : guplsh.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,GUPLSH,guplsh,INT,INT)
+#define GUPLSH(A2,A3)  CCALLSFFUN2(GUPLSH,guplsh,INT,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : guskip.f
+------------------------------------------------------------------*/
+
+#define GUSKIP(A1)  CCALLSFSUB1(GUSKIP,guskip,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gustep.f
+------------------------------------------------------------------*/
+
+#define GUSTEP() CCALLSFSUB0(GUSTEP,gustep)
+
+/*------------------------------------------------------------------
+fortran filename   : guswim.f
+------------------------------------------------------------------*/
+
+#define GUSWIM(A1,A2,A3,A4)  CCALLSFSUB4(GUSWIM,guswim,FLOAT,FLOAT,FLOATV,FLOATV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gutrak.f
+------------------------------------------------------------------*/
+
+#define GUTRAK() CCALLSFSUB0(GUTRAK,gutrak)
+
+/*------------------------------------------------------------------
+fortran filename   : gutrev.f
+------------------------------------------------------------------*/
+
+#define GUTREV() CCALLSFSUB0(GUTREV,gutrev)
+
+/*------------------------------------------------------------------
+fortran filename   : guview.f
+------------------------------------------------------------------*/
+/*
+#define guview_ELEMS_3          ZTRINGV_NUM(1)
+#define guview_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GUVIEW(A1,A2,A3,A4)  CCALLSFSUB4(GUVIEW,guview,INT,INT,STRING,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gvaviv.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(FLOAT,GVAVIV,gvaviv,FLOAT,FLOAT,FLOAT)
+#define GVAVIV(A2,A3,A4)  CCALLSFFUN3(GVAVIV,gvaviv,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gvdcar.f
+------------------------------------------------------------------*/
+
+#define GVDCAR(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GVDCAR,gvdcar,INT,INT,INT,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gvdlim.f
+------------------------------------------------------------------*/
+
+#define GVDLIM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GVDLIM,gvdlim,INT,INT,INT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : gvdphi.f
+------------------------------------------------------------------*/
+
+#define GVDPHI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GVDPHI,gvdphi,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gvdrad.f
+------------------------------------------------------------------*/
+
+#define GVDRAD(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(GVDRAD,gvdrad,INT,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : gvdthe.f
+------------------------------------------------------------------*/
+
+#define GVDTHE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GVDTHE,gvdthe,INT,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gvgrad.f
+------------------------------------------------------------------*/
+
+#define GVGRAD(A1,A2,A3,A4)  CCALLSFSUB4(GVGRAD,gvgrad,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gviewf.f
+------------------------------------------------------------------*/
+
+#define GVIEWF(A1,A2,A3)  CCALLSFSUB3(GVIEWF,gviewf,FLOATV,FLOATV,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gvlong.f
+------------------------------------------------------------------*/
+
+#define GVLONG(A1,A2,A3,A4,A5)  CCALLSFSUB5(GVLONG,gvlong,FLOATV,FLOATV,INT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gvpsqr.f
+------------------------------------------------------------------*/
+
+#define GVPSQR(A1,A2,A3)  CCALLSFSUB3(GVPSQR,gvpsqr,FLOATV,PFLOAT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gvrot.f
+------------------------------------------------------------------*/
+
+#define GVROT(A1,A2)  CCALLSFSUB2(GVROT,gvrot,FLOATV,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gvsafe.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GVSAFE,gvsafe,FLOATV,FLOAT,FLOATV,INT)
+#define GVSAFE(A2,A3,A4,A5)  CCALLSFFUN4(GVSAFE,gvsafe,FLOATV,FLOAT,FLOATV,INT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gvsign.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(INT,GVSIGN,gvsign,FLOATV,FLOAT,FLOATV,INT)
+#define GVSIGN(A2,A3,A4,A5)  CCALLSFFUN4(GVSIGN,gvsign,FLOATV,FLOAT,FLOATV,INT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gweucl.f
+------------------------------------------------------------------*/
+/*
+#define gweucl_ELEMS_2          ZTRINGV_NUM(1)
+#define gweucl_ELEMLEN_2        ZTRINGV_NUM(255)
+#define gweucl_ELEMS_3          ZTRINGV_NUM(1)
+#define gweucl_ELEMLEN_3        ZTRINGV_NUM(4)
+*/
+
+#define GWEUCL(A1,A2,A3,A4,A5)  CCALLSFSUB5(GWEUCL,gweucl,INT,STRING,STRING,INT,INT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gwork.f
+------------------------------------------------------------------*/
+
+#define GWORK(A1)  CCALLSFSUB1(GWORK,gwork,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gwrtre.f
+------------------------------------------------------------------*/
+/*
+#define gwrtre_ELEMS_1          ZTRINGV_NUM(1)
+#define gwrtre_ELEMLEN_1        ZTRINGV_NUM(4)
+*/
+
+#define GWRTRE(A1,A2)  CCALLSFSUB2(GWRTRE,gwrtre,STRING,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gxclos.f
+------------------------------------------------------------------*/
+
+#define GXCLOS(A1)  CCALLSFSUB1(GXCLOS,gxclos,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gxcont.f
+------------------------------------------------------------------*/
+
+#define GXCONT() CCALLSFSUB0(GXCONT,gxcont)
+
+/*------------------------------------------------------------------
+fortran filename   : gxcs.f
+------------------------------------------------------------------*/
+
+#define GXCS() CCALLSFSUB0(GXCS,gxcs)
+
+/*------------------------------------------------------------------
+fortran filename   : gxdraw.f
+------------------------------------------------------------------*/
+
+#define GXDRAW() CCALLSFSUB0(GXDRAW,gxdraw)
+
+/*------------------------------------------------------------------
+fortran filename   : gxdz.f
+------------------------------------------------------------------*/
+
+#define GXDZ() CCALLSFSUB0(GXDZ,gxdz)
+
+/*------------------------------------------------------------------
+fortran filename   : gxfca.f
+------------------------------------------------------------------*/
+/*
+#define gxfca_ELEMS_1          ZTRINGV_NUM(1)
+#define gxfca_ELEMLEN_1        ZTRINGV_NUM(255)
+*/
+
+#define GXFCA(A1,A2,A3,A4)  CCALLSFSUB4(GXFCA,gxfca,PSTRING,PINT,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : gxfort.f
+------------------------------------------------------------------*/
+
+#define GXFORT() CCALLSFSUB0(GXFORT,gxfort)
+
+/*------------------------------------------------------------------
+fortran filename   : gxfz.f
+------------------------------------------------------------------*/
+
+#define GXFZ() CCALLSFSUB0(GXFZ,gxfz)
+
+/*------------------------------------------------------------------
+fortran filename   : gxgcon.f
+------------------------------------------------------------------*/
+
+#define GXGCON() CCALLSFSUB0(GXGCON,gxgcon)
+
+/*------------------------------------------------------------------
+fortran filename   : gxgeom.f
+------------------------------------------------------------------*/
+
+#define GXGEOM() CCALLSFSUB0(GXGEOM,gxgeom)
+
+/*------------------------------------------------------------------
+fortran filename   : gxgint.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(FLOAT,GXGINT,gxgint,FLOAT,FLOAT,FLOAT,FLOAT)
+#define GXGINT(A2,A3,A4,A5)  CCALLSFFUN4(GXGINT,gxgint,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : gxlist.f
+------------------------------------------------------------------*/
+
+#define GXLIST() CCALLSFSUB0(GXLIST,gxlist)
+
+/*------------------------------------------------------------------
+fortran filename   : gxlunf.f
+------------------------------------------------------------------*/
+
+#define GXLUNF(A1,A2,A3)  CCALLSFSUB3(GXLUNF,gxlunf,INT,INT,PINT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gxobj.f
+------------------------------------------------------------------*/
+/*
+#define gxobj_ELEMS_1          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_1        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_2          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_2        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_3          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_3        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_4          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_4        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_5          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_5        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_6          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_6        ZTRINGV_NUM(255)
+#define gxobj_ELEMS_7          ZTRINGV_NUM(1)
+#define gxobj_ELEMLEN_7        ZTRINGV_NUM(255)
+*/
+
+#define GXOBJ(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GXOBJ,gxobj,STRING,STRING,STRING,PSTRING,PSTRING,STRING,PSTRING,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : gxphys.f
+------------------------------------------------------------------*/
+
+#define GXPHYS() CCALLSFSUB0(GXPHYS,gxphys)
+
+/*------------------------------------------------------------------
+fortran filename   : gxpick.f
+------------------------------------------------------------------*/
+
+#define GXPICK() CCALLSFSUB0(GXPICK,gxpick)
+
+/*------------------------------------------------------------------
+fortran filename   : gxrz.f
+------------------------------------------------------------------*/
+
+#define GXRZ() CCALLSFSUB0(GXRZ,gxrz)
+
+/*------------------------------------------------------------------
+fortran filename   : gxscah.f
+------------------------------------------------------------------*/
+/*
+#define gxscah_ELEMS_2          ZTRINGV_NUM(1)
+#define gxscah_ELEMLEN_2        ZTRINGV_NUM(255)
+#define gxscah_ELEMS_3          ZTRINGV_NUM(1)
+#define gxscah_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GXSCAH(A1,A2,A3)  CCALLSFSUB3(GXSCAH,gxscah,INT,STRING,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gxscal.f
+------------------------------------------------------------------*/
+/*
+#define gxscal_ELEMS_2          ZTRINGV_NUM(1)
+#define gxscal_ELEMLEN_2        ZTRINGV_NUM(255)
+#define gxscal_ELEMS_3          ZTRINGV_NUM(1)
+#define gxscal_ELEMLEN_3        ZTRINGV_NUM(255)
+*/
+
+#define GXSCAL(A1,A2,A3)  CCALLSFSUB3(GXSCAL,gxscal,PINT,STRING,STRING,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : gxscan.f
+------------------------------------------------------------------*/
+
+#define GXSCAN() CCALLSFSUB0(GXSCAN,gxscan)
+
+/*------------------------------------------------------------------
+fortran filename   : gxsi.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,GXSI,gxsi,FLOAT)
+#define GXSI(A2)  CCALLSFFUN1(GXSI,gxsi,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : gzebra.f
+------------------------------------------------------------------*/
+
+#define GZEBRA(A1)  CCALLSFSUB1(GZEBRA,gzebra,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : gzinit.f
+------------------------------------------------------------------*/
+
+#define GZINIT() CCALLSFSUB0(GZINIT,gzinit)
+
+/*------------------------------------------------------------------
+fortran filename   : hadden.f
+------------------------------------------------------------------*/
+
+#define HADDEN() CCALLSFSUB0(HADDEN,hadden)
+
+/*------------------------------------------------------------------
+fortran filename   : hadevv.f
+------------------------------------------------------------------*/
+
+#define HADEVV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HADEVV,hadevv,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : hadrin.f
+------------------------------------------------------------------*/
+
+#define HADRIN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HADRIN,hadrin,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : hadriv.f
+------------------------------------------------------------------*/
+
+#define HADRIV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HADRIV,hadriv,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : hevhin.f
+------------------------------------------------------------------*/
+
+#define HEVHIN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HEVHIN,hevhin,PINT,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : higclu.f
+------------------------------------------------------------------*/
+
+#define HIGCLU(A1,A2,A3)  CCALLSFSUB3(HIGCLU,higclu,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : highab.f
+------------------------------------------------------------------*/
+
+#define HIGHAB(A1)  CCALLSFSUB1(HIGHAB,highab,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : higsel.f
+------------------------------------------------------------------*/
+
+#define HIGSEL(A1)  CCALLSFSUB1(HIGSEL,higsel,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : higxpt.f
+------------------------------------------------------------------*/
+
+#define HIGXPT(A1,A2,A3)  CCALLSFSUB3(HIGXPT,higxpt,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : hinhev.f
+------------------------------------------------------------------*/
+
+#define HINHEV(A1,A2,A3,A4)  CCALLSFSUB4(HINHEV,hinhev,INT,DOUBLE,DOUBLE,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : hklass.f
+------------------------------------------------------------------*/
+
+#define HKLASS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)  CCALLSFSUB24(HKLASS,hklass,PINT,INT,INT,INT,INTV,INTV,INT,INT,INT,INT,INTV,PINT,PINT,PINT,PINT,PINT,PINT,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)
+
+/*------------------------------------------------------------------
+fortran filename   : hypero.f
+------------------------------------------------------------------*/
+
+#define HYPERO(A1,A2,A3,A4)  CCALLSFSUB4(HYPERO,hypero,PINT,PINT,PDOUBLE,PDOUBLE,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : iefun.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(INT,IEFUN,iefun,DOUBLE,INT)
+#define IEFUN(A2,A3)  CCALLSFFUN2(IEFUN,iefun,DOUBLE,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : incini.f
+------------------------------------------------------------------*/
+
+#define INCINI() CCALLSFSUB0(INCINI,incini)
+
+/*------------------------------------------------------------------
+fortran filename   : index2.f
+------------------------------------------------------------------*/
+
+#define INDEX2(A1,A2,A3)  CCALLSFSUB3(INDEX2,index2,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : interp.f
+------------------------------------------------------------------*/
+
+#define INTERP(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(INTERP,interp,FLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : intsch.f
+------------------------------------------------------------------*/
+
+#define INTSCH(A1,A2,A3,A4)  CCALLSFSUB4(INTSCH,intsch,INTV,INT,PINT,INT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : isotpe.f
+------------------------------------------------------------------*/
+
+#define ISOTPE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(ISOTPE,isotpe,FLOATV,INTV,INTV,FLOATV,INTV,PINT,PINT,FLOAT,FLOAT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+/*------------------------------------------------------------------
+fortran filename   : kinpar.f
+------------------------------------------------------------------*/
+
+#define KINPAR(A1,A2,A3)  CCALLSFSUB3(KINPAR,kinpar,DOUBLEV,DOUBLEV,DOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : kmabs.f
+------------------------------------------------------------------*/
+
+#define KMABS(A1)  CCALLSFSUB1(KMABS,kmabs,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : kpois.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(INT,KPOIS,kpois,DOUBLE)
+#define KPOIS(A2)  CCALLSFFUN1(KPOIS,kpois,DOUBLE,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : labnf.f
+------------------------------------------------------------------*/
+
+#define LABNF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(LABNF,labnf,FLOATV,INTV,FLOATV,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : limdat.f
+------------------------------------------------------------------*/
+
+#define LIMDAT() CCALLSFSUB0(LIMDAT,limdat)
+
+/*------------------------------------------------------------------
+fortran filename   : lortra.f
+------------------------------------------------------------------*/
+
+#define LORTRA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LORTRA,lortra,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : lr2bod.f
+------------------------------------------------------------------*/
+
+#define LR2BOD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(LR2BOD,lr2bod,FLOATV,INTV,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : lrnorm.f
+------------------------------------------------------------------*/
+
+#define LRNORM(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(LRNORM,lrnorm,FLOATV,INTV,PINT,PINT,PINT,FLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : minv.f
+------------------------------------------------------------------*/
+
+#define MINV(A1,A2,A3,A4,A5)  CCALLSFSUB5(MINV,minv,PFLOAT,INT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : moxsec.f
+------------------------------------------------------------------*/
+
+#define MOXSEC() CCALLSFSUB0(MOXSEC,moxsec)
+
+/*------------------------------------------------------------------
+fortran filename   : n2nn3n.f
+------------------------------------------------------------------*/
+
+#define N2NN3N(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(N2NN3N,n2nn3n,FLOATV,INTV,FLOAT,INT,INT,FLOATV,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : nbanh.f
+------------------------------------------------------------------*/
+
+#define NBANH(A1)  CCALLSFSUB1(NBANH,nbanh,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : nclvin.f
+------------------------------------------------------------------*/
+
+#define NCLVIN() CCALLSFSUB0(NCLVIN,nclvin)
+
+/*------------------------------------------------------------------
+fortran filename   : nclvst.f
+------------------------------------------------------------------*/
+
+#define NCLVST(A1,A2)  CCALLSFSUB2(NCLVST,nclvst,INT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : nfac.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(INT,NFAC,nfac,INT)
+#define NFAC(A2)  CCALLSFFUN1(NFAC,nfac,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : nghevy.f
+------------------------------------------------------------------*/
+
+#define NGHEVY(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NGHEVY,nghevy,FLOATV,INTV,INT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : nizl.f
+------------------------------------------------------------------*/
+
+#define NIZL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NIZL,nizl,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : nizlnw.f
+------------------------------------------------------------------*/
+
+#define NIZLNW(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(NIZLNW,nizlnw,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : nn2bod.f
+------------------------------------------------------------------*/
+
+#define NN2BOD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(NN2BOD,nn2bod,FLOATV,INTV,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : normal.f
+------------------------------------------------------------------*/
+
+#define NORMAL(A1)  CCALLSFSUB1(NORMAL,normal,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : nsigta.f
+------------------------------------------------------------------*/
+
+#define NSIGTA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NSIGTA,nsigta,FLOAT,INT,PFLOAT,FLOATV,INTV,INTV,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : nucevv.f
+------------------------------------------------------------------*/
+
+#define NUCEVV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(NUCEVV,nucevv,PINT,INT,DOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : nucnuc.f
+------------------------------------------------------------------*/
+
+#define NUCNUC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(NUCNUC,nucnuc,INT,INT,DOUBLE,PDOUBLE,PLOGICAL,PLOGICAL,PINT,PINT,PINT,PINT,PLOGICAL,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+/*------------------------------------------------------------------
+fortran filename   : nucrec.f
+------------------------------------------------------------------*/
+
+#define NUCREC(A1,A2)  CCALLSFSUB2(NUCREC,nucrec,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : nucrel.f
+------------------------------------------------------------------*/
+
+#define NUCREL(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(NUCREL,nucrel,INT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : nucriv.f
+------------------------------------------------------------------*/
+
+#define NUCRIV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(NUCRIV,nucriv,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : nudisv.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN6(INT,NUDISV,nudisv,DOUBLE,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define NUDISV(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(NUDISV,nudisv,DOUBLE,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : nuprel.f
+------------------------------------------------------------------*/
+
+#define NUPREL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NUPREL,nuprel,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : nwisel.f
+------------------------------------------------------------------*/
+
+#define NWISEL(A1,A2)  CCALLSFSUB2(NWISEL,nwisel,INT,LOGICAL,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : parjet.f
+------------------------------------------------------------------*/
+
+#define PARJET(A1,A2)  CCALLSFSUB2(PARJET,parjet,PINT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : partxs.f
+------------------------------------------------------------------*/
+
+#define PARTXS(A1,A2,A3,A4,A5)  CCALLSFSUB5(PARTXS,partxs,FLOATV,INTV,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : pbanh.f
+------------------------------------------------------------------*/
+
+#define PBANH(A1)  CCALLSFSUB1(PBANH,pbanh,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : pcsdat.f
+------------------------------------------------------------------*/
+
+#define PCSDAT(A1,A2,A3)  CCALLSFSUB3(PCSDAT,pcsdat,INT,INT,LOGICAL,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : peanut.f
+------------------------------------------------------------------*/
+
+#define PEANUT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(PEANUT,peanut,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : pfnclv.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,PFNCLV,pfnclv,INT,LOGICAL)
+#define PFNCLV(A2,A3)  CCALLSFFUN2(PFNCLV,pfnclv,INT,LOGICAL,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : phasp.f
+------------------------------------------------------------------*/
+
+#define PHASP() CCALLSFSUB0(PHASP,phasp)
+
+/*------------------------------------------------------------------
+fortran filename   : phdset.f
+------------------------------------------------------------------*/
+
+#define PHDSET(A1)  CCALLSFSUB1(PHDSET,phdset,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : phdwll.f
+------------------------------------------------------------------*/
+
+#define PHDWLL(A1,A2,A3)  CCALLSFSUB3(PHDWLL,phdwll,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : photon.f
+------------------------------------------------------------------*/
+
+#define PHOTON(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(PHOTON,photon,FLOATV,INTV,PINT,PINT,INTV,INTV,PINT,PINT,FLOATV,PINT,PINT,PINT,INTV,INTV,FLOAT,PINT,INT,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+/*------------------------------------------------------------------
+fortran filename   : phpnuc.f
+------------------------------------------------------------------*/
+
+#define PHPNUC() CCALLSFSUB0(PHPNUC,phpnuc)
+
+/*------------------------------------------------------------------
+fortran filename   : pimabs.f
+------------------------------------------------------------------*/
+
+#define PIMABS(A1)  CCALLSFSUB1(PIMABS,pimabs,PINT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : pioabs.f
+------------------------------------------------------------------*/
+
+#define PIOABS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(PIOABS,pioabs,INT,INT,DOUBLE,PDOUBLE,PLOGICAL,PLOGICAL,PINT,PINT,INT,INT,PLOGICAL,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+/*------------------------------------------------------------------
+fortran filename   : pmltpc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN6(FLOAT,PMLTPC,pmltpc,INT,INT,INT,INT,FLOAT,FLOAT)
+#define PMLTPC(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(PMLTPC,pmltpc,INT,INT,INT,INT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : pmprab.f
+------------------------------------------------------------------*/
+
+#define PMPRAB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(PMPRAB,pmprab,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+/*------------------------------------------------------------------
+fortran filename   : poisso.f
+------------------------------------------------------------------*/
+
+#define POISSO(A1,A2)  CCALLSFSUB2(POISSO,poisso,FLOAT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : poli.f
+------------------------------------------------------------------*/
+
+#define POLI(A1,A2)  CCALLSFSUB2(POLI,poli,PDOUBLE,PDOUBLE,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : prepre.f
+------------------------------------------------------------------*/
+/*------------------------------------------------------------------
+fortran filename   : qnrg.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN4(DOUBLE,QNRG,qnrg,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define QNRG(A2,A3,A4,A5)  CCALLSFFUN4(QNRG,qnrg,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : raco.f
+------------------------------------------------------------------*/
+
+#define RACO(A1,A2,A3)  CCALLSFSUB3(RACO,raco,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : rakekv.f
+------------------------------------------------------------------*/
+
+#define RAKEKV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RAKEKV,rakekv,INT,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : randc.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(DOUBLE,RANDC,randc,INT)
+#define RANDC(A2)  CCALLSFFUN1(RANDC,randc,INT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : ranres.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,RANRES,ranres,FLOAT)
+#define RANRES(A2)  CCALLSFFUN1(RANRES,ranres,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : rbkekv.f
+------------------------------------------------------------------*/
+
+#define RBKEKV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RBKEKV,rbkekv,INT,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : rchanv.f
+------------------------------------------------------------------*/
+
+#define RCHANV() CCALLSFSUB0(RCHANV,rchanv)
+
+/*------------------------------------------------------------------
+fortran filename   : rnmaxf.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,RNMAXF,rnmaxf,FLOAT)
+#define RNMAXF(A2)  CCALLSFFUN1(RNMAXF,rnmaxf,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : rotat.f
+------------------------------------------------------------------*/
+
+#define ROTAT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(ROTAT,rotat,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : rotes2.f
+------------------------------------------------------------------*/
+
+#define ROTES2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ROTES2,rotes2,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : rstsel.f
+------------------------------------------------------------------*/
+
+#define RSTSEL(A1)  CCALLSFSUB1(RSTSEL,rstsel,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : rtmi.f
+------------------------------------------------------------------*/
+
+#define RTMI(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RTMI,rtmi,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+/*------------------------------------------------------------------
+fortran filename   : samcst.f
+------------------------------------------------------------------*/
+
+#define SAMCST(A1,A2,A3)  CCALLSFSUB3(SAMCST,samcst,INT,DOUBLE,PDOUBLE,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : sbcomp.f
+------------------------------------------------------------------*/
+
+#define SBCOMP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(SBCOMP,sbcomp,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : secegy.f
+------------------------------------------------------------------*/
+
+#define SECEGY(A1,A2,A3,A4)  CCALLSFSUB4(SECEGY,secegy,PFLOAT,FLOATV,PFLOAT,INTV,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : secl11.f
+------------------------------------------------------------------*/
+
+#define SECL11(A1,A2,A3,A4,A5)  CCALLSFSUB5(SECL11,secl11,FLOATV,INTV,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : seclf1.f
+------------------------------------------------------------------*/
+
+#define SECLF1(A1,A2,A3,A4,A5)  CCALLSFSUB5(SECLF1,seclf1,FLOATV,INTV,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : seclf5.f
+------------------------------------------------------------------*/
+
+#define SECLF5(A1,A2,A3,A4,A5)  CCALLSFSUB5(SECLF5,seclf5,FLOATV,INTV,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : seclf7.f
+------------------------------------------------------------------*/
+
+#define SECLF7(A1,A2,A3,A4,A5)  CCALLSFSUB5(SECLF7,seclf7,FLOATV,INTV,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : seclf9.f
+------------------------------------------------------------------*/
+
+#define SECLF9(A1,A2,A3,A4,A5)  CCALLSFSUB5(SECLF9,seclf9,FLOATV,INTV,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : selfab.f
+------------------------------------------------------------------*/
+
+#define SELFAB(A1)  CCALLSFSUB1(SELFAB,selfab,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : setcur.f
+------------------------------------------------------------------*/
+
+#define SETCUR(A1)  CCALLSFSUB1(SETCUR,setcur,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : settrk.f
+------------------------------------------------------------------*/
+
+#define SETTRK(A1)  CCALLSFSUB1(SETTRK,settrk,INT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : sfecfe.f
+------------------------------------------------------------------*/
+
+#define SFECFE(A1,A2)  CCALLSFSUB2(SFECFE,sfecfe,DOUBLE,DOUBLE,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : sflraf.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN1(FLOAT,SFLRAF,sflraf,FLOAT)
+#define SFLRAF(A2)  CCALLSFFUN1(SFLRAF,sflraf,FLOAT,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : shptot.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(DOUBLE,SHPTOT,shptot,INT,DOUBLE)
+#define SHPTOT(A2,A3)  CCALLSFFUN2(SHPTOT,shptot,INT,DOUBLE,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : sigel.f
+------------------------------------------------------------------*/
+
+#define SIGEL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(SIGEL,sigel,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : sigfer.f
+------------------------------------------------------------------*/
+
+#define SIGFER(A1,A2,A3,A4)  CCALLSFSUB4(SIGFER,sigfer,INT,DOUBLE,DOUBLE,LOGICAL,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : sigmor.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN2(FLOAT,SIGMOR,sigmor,FLOAT,INT)
+#define SIGMOR(A2,A3)  CCALLSFFUN2(SIGMOR,sigmor,FLOAT,INT,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : sihael.f
+------------------------------------------------------------------*/
+
+#define SIHAEL(A1,A2,A3,A4,A5)  CCALLSFSUB5(SIHAEL,sihael,INT,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+/*------------------------------------------------------------------
+fortran filename   : sitsao.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,SITSAO,sitsao,DOUBLE,INT,DOUBLE)
+#define SITSAO(A2,A3,A4)  CCALLSFFUN3(SITSAO,sitsao,DOUBLE,INT,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : stalin.f
+------------------------------------------------------------------*/
+
+#define STALIN() CCALLSFSUB0(STALIN,stalin)
+
+/*------------------------------------------------------------------
+fortran filename   : steep.f
+------------------------------------------------------------------*/
+
+#define STEEP(A1)  CCALLSFSUB1(STEEP,steep,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : steeq.f
+------------------------------------------------------------------*/
+
+#define STEEQ(A1,A2)  CCALLSFSUB2(STEEQ,steeq,PFLOAT,INT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : steer.f
+------------------------------------------------------------------*/
+
+#define STEER(A1)  CCALLSFSUB1(STEER,steer,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : stees.f
+------------------------------------------------------------------*/
+
+#define STEES(A1,A2)  CCALLSFSUB2(STEES,stees,PFLOAT,FLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : stopar.f
+------------------------------------------------------------------*/
+
+#define STOPAR(A1,A2)  CCALLSFSUB2(STOPAR,stopar,INT,PINT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : stpair.f
+------------------------------------------------------------------*/
+
+#define STPAIR() CCALLSFSUB0(STPAIR,stpair)
+
+/*------------------------------------------------------------------
+fortran filename   : sverl2.f
+------------------------------------------------------------------*/
+
+#define SVERL2(A1,A2)  CCALLSFSUB2(SVERL2,sverl2,INT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : svgam7.f
+------------------------------------------------------------------*/
+
+#define SVGAM7(A1,A2)  CCALLSFSUB2(SVGAM7,svgam7,FLOAT,PFLOAT,A1,A2)
+
+/*------------------------------------------------------------------
+fortran filename   : tbsplt.f
+------------------------------------------------------------------*/
+
+#define TBSPLT(A1,A2,A3,A4)  CCALLSFSUB4(TBSPLT,tbsplt,FLOATV,FLOAT,INT,PFLOAT,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : tchoic.f
+------------------------------------------------------------------*/
+
+#define TCHOIC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(TCHOIC,tchoic,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : tdelay.f
+------------------------------------------------------------------*/
+
+#define TDELAY(A1)  CCALLSFSUB1(TDELAY,tdelay,PFLOAT,A1)
+
+/*------------------------------------------------------------------
+fortran filename   : threpd.f
+------------------------------------------------------------------*/
+
+#define THREPD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(THREPD,threpd,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+/*------------------------------------------------------------------
+fortran filename   : thrmsc.f
+------------------------------------------------------------------*/
+
+#define THRMSC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(THRMSC,thrmsc,FLOATV,INTV,INTV,INTV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT,FLOATV,INT,PINT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+/*------------------------------------------------------------------
+fortran filename   : thrsel.f
+------------------------------------------------------------------*/
+
+#define THRSEL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(THRSEL,thrsel,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,FLOAT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,PFLOAT,FLOATV,INT,INTV,INTV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+/*------------------------------------------------------------------
+fortran filename   : trafo.f
+------------------------------------------------------------------*/
+
+#define TRAFO(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(TRAFO,trafo,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+/*------------------------------------------------------------------
+fortran filename   : trahad.f
+------------------------------------------------------------------*/
+
+#define TRAHAD(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TRAHAD,trahad,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : trans.f
+------------------------------------------------------------------*/
+
+#define TRANS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(TRANS,trans,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : trebod.f
+------------------------------------------------------------------*/
+
+#define TREBOD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(TREBOD,trebod,FLOATV,INTV,INT,INT,PINT,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+/*------------------------------------------------------------------
+fortran filename   : ttrans.f
+------------------------------------------------------------------*/
+
+#define TTRANS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(TTRANS,ttrans,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+/*------------------------------------------------------------------
+fortran filename   : twob.f
+------------------------------------------------------------------*/
+
+#define TWOB(A1,A2,A3)  CCALLSFSUB3(TWOB,twob,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : twobod.f
+------------------------------------------------------------------*/
+
+#define TWOBOD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(TWOBOD,twobod,FLOATV,INTV,PINT,INT,FLOAT,PFLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : twoclu.f
+------------------------------------------------------------------*/
+
+#define TWOCLU(A1,A2,A3)  CCALLSFSUB3(TWOCLU,twoclu,INT,INT,FLOAT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : twopad.f
+------------------------------------------------------------------*/
+
+#define TWOPAD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(TWOPAD,twopad,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : twopar.f
+------------------------------------------------------------------*/
+
+#define TWOPAR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)  CCALLSFSUB18(TWOPAR,twopar,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,DOUBLE,PDOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)
+
+/*------------------------------------------------------------------
+fortran filename   : umofin.f
+------------------------------------------------------------------*/
+
+#define UMOFIN(A1,A2,A3,A4)  CCALLSFSUB4(UMOFIN,umofin,INT,PDOUBLE,PDOUBLE,PLOGICAL,A1,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : vecsub.f
+------------------------------------------------------------------*/
+
+#define ADD(A1,A2,A3)  CCALLSFSUB3(ADD,add,INT,INT,INT,A1,A2,A3)
+
+
+#define ADD3(A1,A2,A3)  CCALLSFSUB3(ADD3,add3,INT,INT,INT,A1,A2,A3)
+
+
+#define SUB3(A1,A2,A3)  CCALLSFSUB3(SUB3,sub3,INT,INT,INT,A1,A2,A3)
+
+
+#define CROSS3(A1,A2,A3)  CCALLSFSUB3(CROSS3,cross3,INT,INT,INT,A1,A2,A3)
+
+
+#define SUB(A1,A2,A3)  CCALLSFSUB3(SUB,sub,INT,INT,INT,A1,A2,A3)
+
+
+#define LOR(A1,A2,A3)  CCALLSFSUB3(LOR,lor,INT,INT,INT,A1,A2,A3)
+
+
+#define LENGTX(A1,A2)  CCALLSFSUB2(LENGTX,lengtx,INT,PFLOAT,A1,A2)
+
+
+#define ANG(A1,A2,A3,A4)  CCALLSFSUB4(ANG,ang,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+
+#define DEFS(A1,A2,A3)  CCALLSFSUB3(DEFS,defs,INT,INT,INT,A1,A2,A3)
+
+
+#define TRAC(A1,A2,A3)  CCALLSFSUB3(TRAC,trac,INT,INT,INT,A1,A2,A3)
+
+/*------------------------------------------------------------------
+fortran filename   : verein.f
+------------------------------------------------------------------*/
+
+#define VEREIN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34)  CCALLSFSUB34(VEREIN,verein,PINT,PINT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,INT,PINT,INT,INTV,INTV,PINT,PINT,PINT,PINT,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34)
+
+/*------------------------------------------------------------------
+fortran filename   : xinneu.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XINNEU,xinneu,DOUBLE,DOUBLE,DOUBLE)
+#define XINNEU(A2,A3,A4)  CCALLSFFUN3(XINNEU,xinneu,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : xinpro.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XINPRO,xinpro,DOUBLE,DOUBLE,DOUBLE)
+#define XINPRO(A2,A3,A4)  CCALLSFFUN3(XINPRO,xinpro,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : xlamb.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XLAMB,xlamb,DOUBLE,DOUBLE,DOUBLE)
+#define XLAMB(A2,A3,A4)  CCALLSFFUN3(XLAMB,xlamb,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : xsecn1.f
+------------------------------------------------------------------*/
+
+#define XSECN1(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(XSECN1,xsecn1,INTV,INTV,PINT,PINT,PINT,PINT,FLOATV,INTV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+/*------------------------------------------------------------------
+fortran filename   : xsecn2.f
+------------------------------------------------------------------*/
+
+#define XSECN2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25)  CCALLSFSUB25(XSECN2,xsecn2,INTV,INTV,INTV,PINT,PINT,PFLOAT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,FLOATV,INTV,INT,PINT,INTV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25)
+
+/*------------------------------------------------------------------
+fortran filename   : xsecn3.f
+------------------------------------------------------------------*/
+
+#define XSECN3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(XSECN3,xsecn3,INTV,INTV,FLOATV,INTV,PINT,PINT,PINT,PINT,PFLOAT,INTV,FLOATV,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+/*------------------------------------------------------------------
+fortran filename   : xsecn5.f
+------------------------------------------------------------------*/
+
+#define XSECN5(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(XSECN5,xsecn5,INTV,PINT,PINT,PINT,PINT,PFLOAT,INTV,FLOATV,INTV,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+/*------------------------------------------------------------------
+fortran filename   : xsecnu.f
+------------------------------------------------------------------*/
+
+#define XSECNU(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(XSECNU,xsecnu,FLOATV,INT,FLOAT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+/*------------------------------------------------------------------
+fortran filename   : xseneu.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XSENEU,xseneu,DOUBLE,DOUBLE,DOUBLE)
+#define XSENEU(A2,A3,A4)  CCALLSFFUN3(XSENEU,xseneu,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+/*------------------------------------------------------------------
+fortran filename   : xsepro.f
+------------------------------------------------------------------*/
+
+ PROTOCCALLSFFUN3(DOUBLE,XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE)
+#define XSEPRO(A2,A3,A4)  CCALLSFFUN3(XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
Index: trunk/SophyaExt/CodeMinuit/cfortran/gen.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/gen.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/gen.h	(revision 2403)
@@ -0,0 +1,1491 @@
+/* Subroutines/Functions with COMPLEX not supported ***
+
+#define CBSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(CBSJA,cbsja,COMPLEX,FLOAT,INT,INT,PCOMPLEX,A1,A2,A3,A4,A5)
+#define WBSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(WBSJA,wbsja,COMPLEX,DOUBLE,INT,INT,PCOMPLEX,A1,A2,A3,A4,A5)
+PROTOCCALLSFFUN1(COMPLEX,CDIGAM,cdigam,COMPLEX)
+#define CDIGAM(A2)  CCALLSFFUN1(CDIGAM,cdigam,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,WDIGAM,wdigam,COMPLEX)
+#define WDIGAM(A2)  CCALLSFFUN1(WDIGAM,wdigam,COMPLEX,A2)
+#define CELFUN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CELFUN,celfun,COMPLEX,FLOAT,PCOMPLEX,PCOMPLEX,PCOMPLEX,A1,A2,A3,A4,A5)
+#define WELFUN(A1,A2,A3,A4,A5)  CCALLSFSUB5(WELFUN,welfun,COMPLEX,DOUBLE,PCOMPLEX,PCOMPLEX,PCOMPLEX,A1,A2,A3,A4,A5)
+PROTOCCALLSFFUN4(COMPLEX,CELINT,celint,COMPLEX,FLOAT,FLOAT,FLOAT)
+#define CELINT(A2,A3,A4,A5)  CCALLSFFUN4(CELINT,celint,COMPLEX,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+PROTOCCALLSFFUN4(COMPLEX,WELINT,welint,COMPLEX,DOUBLE,DOUBLE,DOUBLE)
+#define WELINT(A2,A3,A4,A5)  CCALLSFFUN4(WELINT,welint,COMPLEX,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+PROTOCCALLSFFUN1(COMPLEX,CEXPIN,cexpin,COMPLEX)
+#define CEXPIN(A2)  CCALLSFFUN1(CEXPIN,cexpin,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,WEXPIN,wexpin,COMPLEX)
+#define WEXPIN(A2)  CCALLSFFUN1(WEXPIN,wexpin,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,CGAMMA,cgamma,COMPLEX)
+#define CGAMMA(A2)  CCALLSFFUN1(CGAMMA,cgamma,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,WGAMMA,wgamma,COMPLEX)
+#define WGAMMA(A2)  CCALLSFFUN1(WGAMMA,wgamma,COMPLEX,A2)
+PROTOCCALLSFFUN4(COMPLEX,CGAUSS,cgauss,ROUTINE,COMPLEX,COMPLEX,FLOAT)
+#define CGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(CGAUSS,cgauss,ROUTINE,COMPLEX,COMPLEX,FLOAT,A2,A3,A4,A5)
+PROTOCCALLSFFUN4(COMPLEX,WGAUSS,wgauss,ROUTINE,COMPLEX,COMPLEX,DOUBLE)
+#define WGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(WGAUSS,wgauss,ROUTINE,COMPLEX,COMPLEX,DOUBLE,A2,A3,A4,A5)
+PROTOCCALLSFFUN3(COMPLEX,CGPLG,cgplg,INT,INT,FLOAT)
+#define CGPLG(A2,A3,A4)  CCALLSFFUN3(CGPLG,cgplg,INT,INT,FLOAT,A2,A3,A4)
+PROTOCCALLSFFUN3(COMPLEX,WGPLG,wgplg,INT,INT,DOUBLE)
+#define WGPLG(A2,A3,A4)  CCALLSFFUN3(WGPLG,wgplg,INT,INT,DOUBLE,A2,A3,A4)
+PROTOCCALLSFFUN1(COMPLEX,CLGAMA,clgama,COMPLEX)
+#define CLGAMA(A2)  CCALLSFFUN1(CLGAMA,clgama,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,WLGAMA,wlgama,COMPLEX)
+#define WLGAMA(A2)  CCALLSFFUN1(WLGAMA,wlgama,COMPLEX,A2)
+#define CIRCLE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CIRCLE,circle,PCOMPLEX,FLOAT,COMPLEXV,COMPLEXV,INT,PINT,INT,A1,A2,A3,A4,A5,A6,A7)
+PROTOCCALLSFFUN3(COMPLEX,CLOGOK,clogok,COMPLEX,INT,INT)
+#define CLOGOK(A2,A3,A4)  CCALLSFFUN3(CLOGOK,clogok,COMPLEX,INT,INT,A2,A3,A4)
+#define WPOLYZ(A1,A2,A3,A4,A5)  CCALLSFSUB5(WPOLYZ,wpolyz,COMPLEXV,INT,INT,PCOMPLEX,PDOUBLE,A1,A2,A3,A4,A5)
+#define CPSC(A1,A2,A3,A4,A5)  CCALLSFSUB5(CPSC,cpsc,COMPLEX,COMPLEX,INT,PCOMPLEX,PFLOAT,A1,A2,A3,A4,A5)
+PROTOCCALLSFFUN3(FLOAT,CRIT,crit,COMPLEX,COMPLEX,FLOAT)
+#define CRIT(A2,A3,A4)  CCALLSFFUN3(CRIT,crit,COMPLEX,COMPLEX,FLOAT,A2,A3,A4)
+PROTOCCALLSFFUN3(COMPLEX,CSQRTK,csqrtk,COMPLEX,INT,INT)
+#define CSQRTK(A2,A3,A4)  CCALLSFFUN3(CSQRTK,csqrtk,COMPLEX,INT,INT,A2,A3,A4)
+PROTOCCALLSFFUN1(COMPLEX,CWERF,cwerf,COMPLEX)
+#define CWERF(A2)  CCALLSFFUN1(CWERF,cwerf,COMPLEX,A2)
+PROTOCCALLSFFUN1(COMPLEX,WWERF,wwerf,COMPLEX)
+#define WWERF(A2)  CCALLSFFUN1(WWERF,wwerf,COMPLEX,A2)
+PROTOCCALLSFFUN3(COMPLEX,CWHITM,cwhitm,COMPLEX,COMPLEX,COMPLEX)
+#define CWHITM(A2,A3,A4)  CCALLSFFUN3(CWHITM,cwhitm,COMPLEX,COMPLEX,COMPLEX,A2,A3,A4)
+PROTOCCALLSFFUN3(COMPLEX,WWHITM,wwhitm,COMPLEX,COMPLEX,COMPLEX)
+#define WWHITM(A2,A3,A4)  CCALLSFFUN3(WWHITM,wwhitm,COMPLEX,COMPLEX,COMPLEX,A2,A3,A4)
+#define DEFLAT(A1,A2,A3)  CCALLSFSUB3(DEFLAT,deflat,PCOMPLEX,PINT,COMPLEX,A1,A2,A3)
+#define HYPGM(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HYPGM,hypgm,COMPLEX,COMPLEX,COMPLEX,COMPLEX,PCOMPLEX,FLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+#define LEGFN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LEGFN,legfn,COMPLEX,COMPLEX,PCOMPLEX,PCOMPLEX,PINT,INT,A1,A2,A3,A4,A5,A6)
+PROTOCCALLSFFUN3(INT,NZERFZ,nzerfz,COMPLEX,COMPLEXV,INT)
+#define NZERFZ(A2,A3,A4)  CCALLSFFUN3(NZERFZ,nzerfz,COMPLEX,COMPLEXV,INT,A2,A3,A4)
+#define NZEROS(A1,A2,A3,A4)  CCALLSFSUB4(NZEROS,nzeros,PINT,COMPLEX,FLOAT,COMPLEX,A1,A2,A3,A4)
+#define POLY2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(POLY2,poly2,COMPLEXV,INT,PCOMPLEX,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6)
+#define PREP(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(PREP,prep,PCOMPLEX,PCOMPLEX,PCOMPLEX,INT,COMPLEX,FLOAT,PINT,COMPLEX,A1,A2,A3,A4,A5,A6,A7,A8)
+PROTOCCALLSFFUN13(COMPLEX,C309R1,c309r1,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL,DOUBLE,COMPLEX)
+#define C309R1(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFFUN13(C309R1,c309r1,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL,DOUBLE,COMPLEX,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+PROTOCCALLSFFUN12(COMPLEX,C309R2,c309r2,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,DOUBLE)
+#define C309R2(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFFUN12(C309R2,c309r2,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+PROTOCCALLSFFUN9(COMPLEX,C309R3,c309r3,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PDOUBLE,DOUBLE,PINT,PCOMPLEX)
+#define C309R3(A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFFUN9(C309R3,c309r3,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PDOUBLE,DOUBLE,PINT,PCOMPLEX,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+PROTOCCALLSFFUN13(COMPLEX,C309R5,c309r5,COMPLEX,COMPLEX,COMPLEX,DOUBLE,PCOMPLEX,PCOMPLEX,LOGICAL,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL)
+#define C309R5(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFFUN13(C309R5,c309r5,COMPLEX,COMPLEX,COMPLEX,DOUBLE,PCOMPLEX,PCOMPLEX,LOGICAL,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+PROTOCCALLSFFUN13(COMPLEX,C309R6,c309r6,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PINT,PCOMPLEX,PDOUBLE,DOUBLE,PCOMPLEX,PCOMPLEX,COMPLEXV)
+#define C309R6(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFFUN13(C309R6,c309r6,COMPLEX,COMPLEX,COMPLEX,COMPLEX,DOUBLE,INT,PINT,PCOMPLEX,PDOUBLE,DOUBLE,PCOMPLEX,PCOMPLEX,COMPLEXV,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+#define C309R7(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(C309R7,c309r7,COMPLEXV,PCOMPLEX,INT,PINT,PCOMPLEX,DOUBLE,A1,A2,A3,A4,A5,A6)
+PROTOCCALLSFFUN2(COMPLEX,C309R8,c309r8,COMPLEX,DOUBLE)
+#define C309R8(A2,A3)  CCALLSFFUN2(C309R8,c309r8,COMPLEX,DOUBLE,A2,A3)
+PROTOCCALLSFFUN3(COMPLEX,RGAM,rgam,COMPLEX,COMPLEX,COMPLEX)
+#define RGAM(A2,A3,A4)  CCALLSFFUN3(RGAM,rgam,COMPLEX,COMPLEX,COMPLEX,A2,A3,A4)
+#define DMULLZ(A1,A2,A3,A4)  CCALLSFSUB4(DMULLZ,dmullz,DOUBLEV,INT,INT,PCOMPLEX,A1,A2,A3,A4)
+#define DRTEQ4(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DRTEQ4,drteq4,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PCOMPLEX,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+#define VP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(VP,vp,PCOMPLEX,COMPLEX,COMPLEXV,INT,PINT,INT,A1,A2,A3,A4,A5,A6)
+#define WCLBES(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(WCLBES,wclbes,COMPLEX,COMPLEX,COMPLEX,INT,PCOMPLEX,PCOMPLEX,PCOMPLEX,PCOMPLEX,PCOMPLEX,INT,INT,PINT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+*** End Subroutines/Functions using COMPLEX */
+
+PROTOCCALLSFFUN1(FLOAT,ADIGAM,adigam,FLOAT)
+#define ADIGAM(A2)  CCALLSFFUN1(ADIGAM,adigam,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ALGAMA,algama,FLOAT)
+#define ALGAMA(A2)  CCALLSFFUN1(ALGAMA,algama,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,QLGAMA,qlgama,FLOAT)
+#define QLGAMA(A2)  CCALLSFFUN1(QLGAMA,qlgama,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DLGAMA,dlgama,DOUBLE)
+#define DLGAMA(A2)  CCALLSFFUN1(DLGAMA,dlgama,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ASINH,asinh,FLOAT)
+#define ASINH(A2)  CCALLSFFUN1(ASINH,asinh,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DASINH,dasinh,DOUBLE)
+#define DASINH(A2)  CCALLSFFUN1(DASINH,dasinh,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ATANI,atani,FLOAT)
+#define ATANI(A2)  CCALLSFFUN1(ATANI,atani,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DATANI,datani,DOUBLE)
+#define DATANI(A2)  CCALLSFFUN1(DATANI,datani,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,ATG,atg,FLOAT,FLOAT)
+#define ATG(A2,A3)  CCALLSFFUN2(ATG,atg,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,BESI0,besi0,FLOAT)
+#define BESI0(A2)  CCALLSFFUN1(BESI0,besi0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DBESI0,dbesi0,DOUBLE)
+#define DBESI0(A2)  CCALLSFFUN1(DBESI0,dbesi0,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESJ0,besj0,FLOAT)
+#define BESJ0(A2)  CCALLSFFUN1(BESJ0,besj0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DBESJ0,dbesj0,DOUBLE)
+#define DBESJ0(A2)  CCALLSFFUN1(DBESJ0,dbesj0,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,BINOM,binom,FLOAT,INT)
+#define BINOM(A2,A3)  CCALLSFFUN2(BINOM,binom,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DBINOM,dbinom,DOUBLE,INT)
+#define DBINOM(A2,A3)  CCALLSFFUN2(DBINOM,dbinom,DOUBLE,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,BSIR3,bsir3,FLOAT,INT)
+#define BSIR3(A2,A3)  CCALLSFFUN2(BSIR3,bsir3,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DBSIR3,dbsir3,DOUBLE,INT)
+#define DBSIR3(A2,A3)  CCALLSFFUN2(DBSIR3,dbsir3,DOUBLE,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,BSIR4,bsir4,FLOAT,INT)
+#define BSIR4(A2,A3)  CCALLSFFUN2(BSIR4,bsir4,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DBSIR4,dbsir4,DOUBLE,INT)
+#define DBSIR4(A2,A3)  CCALLSFFUN2(DBSIR4,dbsir4,DOUBLE,INT,A2,A3)
+
+PROTOCCALLSFFUN5(FLOAT,CAUCHY,cauchy,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define CAUCHY(A2,A3,A4,A5,A6)  CCALLSFFUN5(CAUCHY,cauchy,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN5(DOUBLE,DCAUCH,dcauch,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define DCAUCH(A2,A3,A4,A5,A6)  CCALLSFFUN5(DCAUCH,dcauch,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN6(DOUBLE,CHEBQU,chebqu,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,DOUBLE)
+#define CHEBQU(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(CHEBQU,chebqu,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,DOUBLE,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN2(FLOAT,CHISIN,chisin,FLOAT,INT)
+#define CHISIN(A2,A3)  CCALLSFFUN2(CHISIN,chisin,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN4(FLOAT,CHSUM,chsum,INT,FLOATV,INT,FLOAT)
+#define CHSUM(A2,A3,A4,A5)  CCALLSFFUN4(CHSUM,chsum,INT,FLOATV,INT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(DOUBLE,DCHSUM,dchsum,INT,DOUBLEV,INT,DOUBLE)
+#define DCHSUM(A2,A3,A4,A5)  CCALLSFFUN4(DCHSUM,dchsum,INT,DOUBLEV,INT,DOUBLE,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN9(FLOAT,CLEBSG,clebsg,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define CLEBSG(A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFFUN9(CLEBSG,clebsg,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFFUN1(FLOAT,DAWSON,dawson,FLOAT)
+#define DAWSON(A2)  CCALLSFFUN1(DAWSON,dawson,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DDAWSN,ddawsn,DOUBLE)
+#define DDAWSN(A2)  CCALLSFFUN1(DDAWSN,ddawsn,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DENLAN,denlan,FLOAT)
+#define DENLAN(A2)  CCALLSFFUN1(DENLAN,denlan,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DIFLAN,diflan,FLOAT)
+#define DIFLAN(A2)  CCALLSFFUN1(DIFLAN,diflan,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DILOG,dilog,FLOAT)
+#define DILOG(A2)  CCALLSFFUN1(DILOG,dilog,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DDILOG,ddilog,DOUBLE)
+#define DDILOG(A2)  CCALLSFFUN1(DDILOG,ddilog,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DINVAV,dinvav,FLOAT)
+#define DINVAV(A2)  CCALLSFFUN1(DINVAV,dinvav,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DISLAN,dislan,FLOAT)
+#define DISLAN(A2)  CCALLSFFUN1(DISLAN,dislan,FLOAT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,DISVAV,disvav,FLOAT,INT)
+#define DISVAV(A2,A3)  CCALLSFFUN2(DISVAV,disvav,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN4(FLOAT,DJMNB,djmnb,FLOAT,FLOAT,FLOAT,FLOAT)
+#define DJMNB(A2,A3,A4,A5)  CCALLSFFUN4(DJMNB,djmnb,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(DOUBLE,DDJMNB,ddjmnb,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define DDJMNB(A2,A3,A4,A5)  CCALLSFFUN4(DDJMNB,ddjmnb,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN7(DOUBLE,DSPNB1,dspnb1,INT,INT,INT,INT,DOUBLE,DOUBLEV,PINT)
+#define DSPNB1(A2,A3,A4,A5,A6,A7,A8)  CCALLSFFUN7(DSPNB1,dspnb1,INT,INT,INT,INT,DOUBLE,DOUBLEV,PINT,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFFUN13(DOUBLE,DSPNB2,dspnb2,INT,INT,INT,INT,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLEV,DOUBLEV,PINT)
+#define DSPNB2(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFFUN13(DSPNB2,dspnb2,INT,INT,INT,INT,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLEV,DOUBLEV,PINT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFFUN7(DOUBLE,DSPPS1,dspps1,INT,INT,INT,DOUBLE,DOUBLEV,DOUBLEV,PINT)
+#define DSPPS1(A2,A3,A4,A5,A6,A7,A8)  CCALLSFFUN7(DSPPS1,dspps1,INT,INT,INT,DOUBLE,DOUBLEV,DOUBLEV,PINT,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFFUN14(DOUBLE,DSPPS2,dspps2,INT,INT,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PINT)
+#define DSPPS2(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFFUN14(DSPPS2,dspps2,INT,INT,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PINT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFFUN3(DOUBLE,DVDOT,dvdot,INT,DOUBLEV,DOUBLEV)
+#define DVDOT(A2,A3,A4)  CCALLSFFUN3(DVDOT,dvdot,INT,DOUBLEV,DOUBLEV,A2,A3,A4)
+
+PROTOCCALLSFFUN2(DOUBLE,E401BD,e401bd,DOUBLE,DOUBLE)
+#define E401BD(A2,A3)  CCALLSFFUN2(E401BD,e401bd,DOUBLE,DOUBLE,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,ELIN1,elin1,FLOAT,FLOAT)
+#define ELIN1(A2,A3)  CCALLSFFUN2(ELIN1,elin1,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,ERF,erf,FLOAT)
+#define ERF(A2)  CCALLSFFUN1(ERF,erf,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DERF,derf,DOUBLE)
+#define DERF(A2)  CCALLSFFUN1(DERF,derf,DOUBLE,A2)
+
+PROTOCCALLSFFUN7(INT,EXMBUC,exmbuc,INT,INT,FLOATV,FLOAT,INT,PINT,INT)
+#define EXMBUC(A2,A3,A4,A5,A6,A7,A8)  CCALLSFFUN7(EXMBUC,exmbuc,INT,INT,FLOATV,FLOAT,INT,PINT,INT,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFFUN3(FLOAT,FCONC,fconc,FLOAT,FLOAT,INT)
+#define FCONC(A2,A3,A4)  CCALLSFFUN3(FCONC,fconc,FLOAT,FLOAT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(DOUBLE,DFCONC,dfconc,DOUBLE,DOUBLE,INT)
+#define DFCONC(A2,A3,A4)  CCALLSFFUN3(DFCONC,dfconc,DOUBLE,DOUBLE,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(FLOAT,FERDR,ferdr,FLOAT,INT)
+#define FERDR(A2,A3)  CCALLSFFUN2(FERDR,ferdr,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DFERDR,dferdr,DOUBLE,INT)
+#define DFERDR(A2,A3)  CCALLSFFUN2(DFERDR,dferdr,DOUBLE,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,FINARG,finarg,INT,INT)
+#define FINARG(A2,A3)  CCALLSFFUN2(FINARG,finarg,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,FREARG,frearg,FLOAT,FLOAT)
+#define FREARG(A2,A3)  CCALLSFFUN2(FREARG,frearg,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN3(FLOAT,FRED2,fred2,FLOAT,FLOAT,FLOAT)
+#define FRED2(A2,A3,A4)  CCALLSFFUN3(FRED2,fred2,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN1(FLOAT,FRED3,fred3,FLOAT)
+#define FRED3(A2)  CCALLSFFUN1(FRED3,fred3,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,FREQ,freq,FLOAT)
+#define FREQ(A2)  CCALLSFFUN1(FREQ,freq,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DFREQ,dfreq,DOUBLE)
+#define DFREQ(A2)  CCALLSFFUN1(DFREQ,dfreq,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,FRSIN,frsin,FLOAT)
+#define FRSIN(A2)  CCALLSFFUN1(FRSIN,frsin,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DFRSIN,dfrsin,DOUBLE)
+#define DFRSIN(A2)  CCALLSFFUN1(DFRSIN,dfrsin,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,FUN,fun,INT,FLOATV)
+#define FUN(A2,A3)  CCALLSFFUN2(FUN,fun,INT,FLOATV,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,G116F1,g116f1,FLOAT)
+#define G116F1(A2)  CCALLSFFUN1(G116F1,g116f1,FLOAT,A2)
+
+PROTOCCALLSFFUN2(DOUBLE,DGAGNC,dgagnc,DOUBLE,DOUBLE)
+#define DGAGNC(A2,A3)  CCALLSFFUN2(DGAGNC,dgagnc,DOUBLE,DOUBLE,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,GAMDIS,gamdis,FLOAT,FLOAT)
+#define GAMDIS(A2,A3)  CCALLSFFUN2(GAMDIS,gamdis,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,GAMMA,gamma,FLOAT)
+#define GAMMA(A2)  CCALLSFFUN1(GAMMA,gamma,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,QGAMMA,qgamma,FLOAT)
+#define QGAMMA(A2)  CCALLSFFUN1(QGAMMA,qgamma,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DGAMMA,dgamma,DOUBLE)
+#define DGAMMA(A2)  CCALLSFFUN1(DGAMMA,dgamma,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,GAMMF,gammf,FLOAT)
+#define GAMMF(A2)  CCALLSFFUN1(GAMMF,gammf,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DGAMMF,dgammf,DOUBLE)
+#define DGAMMF(A2)  CCALLSFFUN1(DGAMMF,dgammf,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,GAPNC,gapnc,FLOAT,FLOAT)
+#define GAPNC(A2,A3)  CCALLSFFUN2(GAPNC,gapnc,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DGAPNC,dgapnc,DOUBLE,DOUBLE)
+#define DGAPNC(A2,A3)  CCALLSFFUN2(DGAPNC,dgapnc,DOUBLE,DOUBLE,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,GAUSIN,gausin,FLOAT)
+#define GAUSIN(A2)  CCALLSFFUN1(GAUSIN,gausin,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DGAUSN,dgausn,DOUBLE)
+#define DGAUSN(A2)  CCALLSFFUN1(DGAUSN,dgausn,DOUBLE,A2)
+
+PROTOCCALLSFFUN4(FLOAT,GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT)
+#define GAUSS(A2,A3,A4,A5)  CCALLSFFUN4(GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(FLOAT,QGAUSS,qgauss,ROUTINE,FLOAT,FLOAT,FLOAT)
+#define QGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(QGAUSS,qgauss,ROUTINE,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(DOUBLE,DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE)
+#define DGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN6(DOUBLE,GPINDP,gpindp,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,INT)
+#define GPINDP(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(GPINDP,gpindp,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,INT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN2(INT,IGET,iget,INTV,INT)
+#define IGET(A2,A3)  CCALLSFFUN2(IGET,iget,INTV,INT,A2,A3)
+
+PROTOCCALLSFFUN3(INT,IILZ,iilz,INT,INTV,INT)
+#define IILZ(A2,A3,A4)  CCALLSFFUN3(IILZ,iilz,INT,INTV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ILSUM,ilsum,INT,LOGICALV,INT)
+#define ILSUM(A2,A3,A4)  CCALLSFFUN3(ILSUM,ilsum,INT,LOGICALV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN10(FLOAT,QLINSQ,qlinsq,INT,INT,INT,FLOATV,PFLOAT,FLOATV,FLOATV,FLOATV,PDOUBLE,INT)
+#define QLINSQ(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(QLINSQ,qlinsq,INT,INT,INT,FLOATV,PFLOAT,FLOATV,FLOATV,FLOATV,PDOUBLE,INT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFFUN3(INT,LKKSPL,lkkspl,DOUBLE,DOUBLEV,INT)
+#define LKKSPL(A2,A3,A4)  CCALLSFFUN3(LKKSPL,lkkspl,DOUBLE,DOUBLEV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,LOCHAR,lochar,INTV,INT,INTV,INT)
+#define LOCHAR(A2,A3,A4,A5)  CCALLSFFUN4(LOCHAR,lochar,INTV,INT,INTV,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN2(INT,MAXFZE,maxfze,FLOATV,INT)
+#define MAXFZE(A2,A3)  CCALLSFFUN2(MAXFZE,maxfze,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,MAXIZE,maxize,INTV,INT)
+#define MAXIZE(A2,A3)  CCALLSFFUN2(MAXIZE,maxize,INTV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,MINFZE,minfze,FLOATV,INT)
+#define MINFZE(A2,A3)  CCALLSFFUN2(MINFZE,minfze,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,MINIZE,minize,INTV,INT)
+#define MINIZE(A2,A3)  CCALLSFFUN2(MINIZE,minize,INTV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,NDIGIT,ndigit,DOUBLE,DOUBLE)
+#define NDIGIT(A2,A3)  CCALLSFFUN2(NDIGIT,ndigit,DOUBLE,DOUBLE,A2,A3)
+
+PROTOCCALLSFFUN1(INT,NEAR1,near1,FLOAT)
+#define NEAR1(A2)  CCALLSFFUN1(NEAR1,near1,FLOAT,A2)
+
+PROTOCCALLSFFUN1(INT,NIC311,nic311,FLOAT)
+#define NIC311(A2)  CCALLSFFUN1(NIC311,nic311,FLOAT,A2)
+
+PROTOCCALLSFFUN1(INT,NORRAN,norran,PFLOAT)
+#define NORRAN(A2)  CCALLSFFUN1(NORRAN,norran,PFLOAT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,PROB,prob,FLOAT,INT)
+#define PROB(A2,A3)  CCALLSFFUN2(PROB,prob,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,PROBKL,probkl,FLOAT)
+#define PROBKL(A2)  CCALLSFFUN1(PROBKL,probkl,FLOAT,A2)
+
+PROTOCCALLSFFUN4(FLOAT,PROD1,prod1,FLOATV,FLOATV,INT,INT)
+#define PROD1(A2,A3,A4,A5)  CCALLSFFUN4(PROD1,prod1,FLOATV,FLOATV,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN7(FLOAT,PROD2,prod2,PFLOAT,FLOATV,INT,INT,INT,INT,FLOAT)
+#define PROD2(A2,A3,A4,A5,A6,A7,A8)  CCALLSFFUN7(PROD2,prod2,PFLOAT,FLOATV,INT,INT,INT,INT,FLOAT,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFFUN5(FLOAT,QUAD,quad,INT,INT,FLOATV,FLOATV,FLOAT)
+#define QUAD(A2,A3,A4,A5,A6)  CCALLSFFUN5(QUAD,quad,INT,INT,FLOATV,FLOATV,FLOAT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN13(DOUBLE,C309R4,c309r4,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,LOGICAL,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL)
+#define C309R4(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFFUN13(C309R4,c309r4,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,LOGICAL,INT,PDOUBLE,PINT,DOUBLE,DOUBLE,LOGICAL,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFFUN1(FLOAT,RANGAM,rangam,FLOAT)
+#define RANGAM(A2)  CCALLSFFUN1(RANGAM,rangam,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,RANLAN,ranlan,FLOAT)
+#define RANLAN(A2)  CCALLSFFUN1(RANLAN,ranlan,FLOAT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,RELI1,reli1,FLOAT,FLOAT)
+#define RELI1(A2,A3)  CCALLSFFUN2(RELI1,reli1,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DELI1,deli1,DOUBLE,DOUBLE)
+#define DELI1(A2,A3)  CCALLSFFUN2(DELI1,deli1,DOUBLE,DOUBLE,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,RELI1C,reli1c,FLOAT)
+#define RELI1C(A2)  CCALLSFFUN1(RELI1C,reli1c,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DELI1C,deli1c,DOUBLE)
+#define DELI1C(A2)  CCALLSFFUN1(DELI1C,deli1c,DOUBLE,A2)
+
+PROTOCCALLSFFUN5(DOUBLE,DELI2,deli2,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT)
+#define DELI2(A2,A3,A4,A5,A6)  CCALLSFFUN5(DELI2,deli2,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN3(DOUBLE,DELI3,deli3,DOUBLE,DOUBLE,DOUBLE)
+#define DELI3(A2,A3,A4)  CCALLSFFUN3(DELI3,deli3,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+PROTOCCALLSFFUN4(DOUBLE,DELIGC,deligc,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define DELIGC(A2,A3,A4,A5)  CCALLSFFUN4(DELIGC,deligc,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(DOUBLE,DELIKC,delikc,DOUBLE)
+#define DELIKC(A2)  CCALLSFFUN1(DELIKC,delikc,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(FLOAT,REXPIN,rexpin,FLOAT)
+#define REXPIN(A2)  CCALLSFFUN1(REXPIN,rexpin,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DEXPIN,dexpin,DOUBLE)
+#define DEXPIN(A2)  CCALLSFFUN1(DEXPIN,dexpin,DOUBLE,A2)
+
+PROTOCCALLSFFUN6(DOUBLE,DFRDH2,dfrdh2,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,INT)
+#define DFRDH2(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DFRDH2,dfrdh2,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,INT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN1(FLOAT,RG32,rg32,INT)
+#define RG32(A2)  CCALLSFFUN1(RG32,rg32,INT,A2)
+
+PROTOCCALLSFFUN6(FLOAT,RGMLT1,rgmlt1,FLOAT,FLOAT,FLOAT,INT,INT,FLOAT)
+#define RGMLT1(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(RGMLT1,rgmlt1,FLOAT,FLOAT,FLOAT,INT,INT,FLOAT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT1,dgmlt1,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT1(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT1,dgmlt1,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT2,dgmlt2,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT2(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT2,dgmlt2,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT3,dgmlt3,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT3(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT3,dgmlt3,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT4,dgmlt4,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT4(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT4,dgmlt4,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT5,dgmlt5,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT5(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT5,dgmlt5,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN6(DOUBLE,DGMLT6,dgmlt6,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DGMLT6(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DGMLT6,dgmlt6,DOUBLE,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN4(DOUBLE,DGQUAD,dgquad,DOUBLE,DOUBLE,DOUBLE,INT)
+#define DGQUAD(A2,A3,A4,A5)  CCALLSFFUN4(DGQUAD,dgquad,DOUBLE,DOUBLE,DOUBLE,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(FLOAT,RN32,rn32,INT)
+#define RN32(A2)  CCALLSFFUN1(RN32,rn32,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,RNDM2,rndm2,FLOAT)
+#define RNDM2(A2)  CCALLSFFUN1(RNDM2,rndm2,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,RNORTH,rnorth,INT)
+#define RNORTH(A2)  CCALLSFFUN1(RNORTH,rnorth,INT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,RPSIPG,rpsipg,FLOAT,INT)
+#define RPSIPG(A2,A3)  CCALLSFFUN2(RPSIPG,rpsipg,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DPSIPG,dpsipg,DOUBLE,INT)
+#define DPSIPG(A2,A3)  CCALLSFFUN2(DPSIPG,dpsipg,DOUBLE,INT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,RRIZET,rrizet,FLOAT)
+#define RRIZET(A2)  CCALLSFFUN1(RRIZET,rrizet,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DRIZET,drizet,DOUBLE)
+#define DRIZET(A2)  CCALLSFFUN1(DRIZET,drizet,DOUBLE,A2)
+
+PROTOCCALLSFFUN3(FLOAT,RTHETA,rtheta,INT,FLOAT,FLOAT)
+#define RTHETA(A2,A3,A4)  CCALLSFFUN3(RTHETA,rtheta,INT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(DOUBLE,DTHETA,dtheta,INT,DOUBLE,DOUBLE)
+#define DTHETA(A2,A3,A4)  CCALLSFFUN3(DTHETA,dtheta,INT,DOUBLE,DOUBLE,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,RVNSPC,rvnspc,FLOAT,FLOAT,FLOAT)
+#define RVNSPC(A2,A3,A4)  CCALLSFFUN3(RVNSPC,rvnspc,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(DOUBLE,DVNSPC,dvnspc,DOUBLE,DOUBLE,DOUBLE)
+#define DVNSPC(A2,A3,A4)  CCALLSFFUN3(DVNSPC,dvnspc,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
+
+PROTOCCALLSFFUN4(FLOAT,SIMPS,simps,FLOATV,FLOAT,FLOAT,INT)
+#define SIMPS(A2,A3,A4,A5)  CCALLSFFUN4(SIMPS,simps,FLOATV,FLOAT,FLOAT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(DOUBLE,DSIMPS,dsimps,DOUBLEV,DOUBLE,DOUBLE,INT)
+#define DSIMPS(A2,A3,A4,A5)  CCALLSFFUN4(DSIMPS,dsimps,DOUBLEV,DOUBLE,DOUBLE,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(FLOAT,SININT,sinint,FLOAT)
+#define SININT(A2)  CCALLSFFUN1(SININT,sinint,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DSININ,dsinin,DOUBLE)
+#define DSININ(A2)  CCALLSFFUN1(DSININ,dsinin,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,STRAG,strag,FLOAT,FLOAT)
+#define STRAG(A2,A3)  CCALLSFFUN2(STRAG,strag,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,STRH0,strh0,FLOAT)
+#define STRH0(A2)  CCALLSFFUN1(STRH0,strh0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DSTRH0,dstrh0,DOUBLE)
+#define DSTRH0(A2)  CCALLSFFUN1(DSTRH0,dstrh0,DOUBLE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,STUDIN,studin,FLOAT,INT)
+#define STUDIN(A2,A3)  CCALLSFFUN2(STUDIN,studin,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,STUDIS,studis,FLOAT,INT)
+#define STUDIS(A2,A3)  CCALLSFFUN2(STUDIS,studis,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,THETA1,theta1,FLOAT,FLOAT)
+#define THETA1(A2,A3)  CCALLSFFUN2(THETA1,theta1,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN10(FLOAT,TRIINT,triint,FLOAT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define TRIINT(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(TRIINT,triint,FLOAT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFFUN10(DOUBLE,DTRINT,dtrint,DOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
+#define DTRINT(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(DTRINT,dtrint,DOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFFUN6(FLOAT,TRISUM,trisum,FLOAT,FLOATV,INT,FLOATV,INT,INT)
+#define TRISUM(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(TRISUM,trisum,FLOAT,FLOATV,INT,FLOATV,INT,INT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN1(LOGICAL,USRTRM,usrtrm,INT)
+#define USRTRM(A2)  CCALLSFFUN1(USRTRM,usrtrm,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,VAVDEN,vavden,FLOAT)
+#define VAVDEN(A2)  CCALLSFFUN1(VAVDEN,vavden,FLOAT,A2)
+
+PROTOCCALLSFFUN3(FLOAT,VAVFCN,vavfcn,FLOAT,FLOAT,FLOAT)
+#define VAVFCN(A2,A3,A4)  CCALLSFFUN3(VAVFCN,vavfcn,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,VAVRAN,vavran,FLOAT,FLOAT,FLOAT)
+#define VAVRAN(A2,A3,A4)  CCALLSFFUN3(VAVRAN,vavran,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN1(INT,VOMAS,vomas,INT)
+#define VOMAS(A2)  CCALLSFFUN1(VOMAS,vomas,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,VVIDEN,vviden,FLOAT)
+#define VVIDEN(A2)  CCALLSFFUN1(VVIDEN,vviden,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,XM1LAN,xm1lan,FLOAT)
+#define XM1LAN(A2)  CCALLSFFUN1(XM1LAN,xm1lan,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,XM2LAN,xm2lan,FLOAT)
+#define XM2LAN(A2)  CCALLSFFUN1(XM2LAN,xm2lan,FLOAT,A2)
+
+PROTOCCALLSFFUN6(DOUBLE,DZEROX,dzerox,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLE,INT)
+#define DZEROX(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DZEROX,dzerox,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLE,INT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB12(ADDBND,addbnd,INT,PINT,INTV,PINT,PINT,INT,INT,INT,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE)
+#define ADDBND(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(ADDBND,addbnd,INT,PINT,INTV,PINT,PINT,INT,INT,INT,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB1(ARITHM,arithm,PFLOAT)
+#define ARITHM(A1)  CCALLSFSUB1(ARITHM,arithm,PFLOAT,A1)
+
+PROTOCCALLSFSUB5(ASLGF,aslgf,INT,FLOAT,INT,INT,PFLOAT)
+#define ASLGF(A1,A2,A3,A4,A5)  CCALLSFSUB5(ASLGF,aslgf,INT,FLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DASLGF,daslgf,INT,DOUBLE,INT,INT,PDOUBLE)
+#define DASLGF(A1,A2,A3,A4,A5)  CCALLSFSUB5(DASLGF,daslgf,INT,DOUBLE,INT,INT,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(ASSIGN,assign,PFLOAT,INT,INT,INT,PINT,PFLOAT,INT)
+#define ASSIGN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(ASSIGN,assign,PFLOAT,INT,INT,INT,PINT,PFLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(BAKVEC,bakvec,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT,PINT)
+#define BAKVEC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BAKVEC,bakvec,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(BALANC,balanc,INT,INT,PFLOAT,PINT,PINT,PFLOAT)
+#define BALANC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(BALANC,balanc,INT,INT,PFLOAT,PINT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(BALBAK,balbak,INT,INT,INT,INT,FLOATV,INT,PFLOAT)
+#define BALBAK(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BALBAK,balbak,INT,INT,INT,INT,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB9(BFGS,bfgs,INT,INT,PDOUBLE,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE)
+#define BFGS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(BFGS,bfgs,INT,INT,PDOUBLE,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB4(BINOMI,binomi,INT,FLOAT,PINT,PINT)
+#define BINOMI(A1,A2,A3,A4)  CCALLSFSUB4(BINOMI,binomi,INT,FLOAT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB14(BISECT,bisect,INT,FLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,PFLOAT,INT,PINT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT)
+#define BISECT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(BISECT,bisect,INT,FLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,PFLOAT,INT,PINT,PFLOAT,PINT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFSUB27(BNDOPT,bndopt,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,PINT,PINT,PINT,INT,INT)
+#define BNDOPT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27)  CCALLSFSUB27(BNDOPT,bndopt,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,PINT,PINT,PINT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27)
+
+PROTOCCALLSFSUB10(BNDTST,bndtst,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,PINT,PINT,PINT,PINT,PLOGICAL)
+#define BNDTST(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(BNDTST,bndtst,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,PINT,PINT,PINT,PINT,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB6(BOUNDS,bounds,INT,PINT,PINT,FLOATV,PFLOAT,PFLOAT)
+#define BOUNDS(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(BOUNDS,bounds,INT,PINT,PINT,FLOATV,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(BSJA,bsja,FLOAT,FLOAT,INT,INT,FLOATV)
+#define BSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(BSJA,bsja,FLOAT,FLOAT,INT,INT,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(QBSJA,qbsja,FLOAT,FLOAT,INT,INT,FLOATV)
+#define QBSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(QBSJA,qbsja,FLOAT,FLOAT,INT,INT,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DBSJA,dbsja,DOUBLE,DOUBLE,INT,INT,DOUBLEV)
+#define DBSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(DBSJA,dbsja,DOUBLE,DOUBLE,INT,INT,DOUBLEV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(BUCMVE,bucmve,INT,INT,INT,PFLOAT,PFLOAT,INT,INT)
+#define BUCMVE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BUCMVE,bucmve,INT,INT,INT,PFLOAT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB15(BUFOPT,bufopt,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,FLOAT,FLOAT,PDOUBLE,INT,INTV,INT,INT,INT)
+#define BUFOPT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(BUFOPT,bufopt,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,FLOAT,FLOAT,PDOUBLE,INT,INTV,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB5(BZEJY,bzejy,FLOAT,INT,INT,FLOAT,PFLOAT)
+#define BZEJY(A1,A2,A3,A4,A5)  CCALLSFSUB5(BZEJY,bzejy,FLOAT,INT,INT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DBZEJY,dbzejy,DOUBLE,INT,INT,DOUBLE,PDOUBLE)
+#define DBZEJY(A1,A2,A3,A4,A5)  CCALLSFSUB5(DBZEJY,dbzejy,DOUBLE,INT,INT,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB2(C128,c128,FLOATV,PFLOAT)
+#define C128(A1,A2)  CCALLSFSUB2(C128,c128,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(C256,c256,FLOATV,PFLOAT)
+#define C256(A1,A2)  CCALLSFSUB2(C256,c256,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB0(C311BD,c311bd)
+#define C311BD() CCALLSFSUB0(C311BD,c311bd)
+
+PROTOCCALLSFSUB2(C512,c512,FLOATV,PFLOAT)
+#define C512(A1,A2)  CCALLSFSUB2(C512,c512,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(C64,c64,FLOATV,PFLOAT)
+#define C64(A1,A2)  CCALLSFSUB2(C64,c64,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB8(CBABK2,cbabk2,INT,INT,INT,INT,FLOATV,INT,PFLOAT,PFLOAT)
+#define CBABK2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CBABK2,cbabk2,INT,INT,INT,INT,FLOATV,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(CBAL,cbal,INT,INT,PFLOAT,PFLOAT,PINT,PINT,PFLOAT)
+#define CBAL(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CBAL,cbal,INT,INT,PFLOAT,PFLOAT,PINT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(CFT,cft,PFLOAT,PFLOAT,INT,INT,INT,PINT)
+#define CFT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CFT,cft,PFLOAT,PFLOAT,INT,INT,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB13(CHEB,cheb,INT,INT,INT,INT,PFLOAT,PFLOAT,FLOAT,PFLOAT,PFLOAT,PINT,PFLOAT,PINT,PINT)
+#define CHEB(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(CHEB,cheb,INT,INT,INT,INT,PFLOAT,PFLOAT,FLOAT,PFLOAT,PFLOAT,PINT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB3(CHEB02,cheb02,PDOUBLE,INT,INT)
+#define CHEB02(A1,A2,A3)  CCALLSFSUB3(CHEB02,cheb02,PDOUBLE,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB7(CHECF,checf,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,FLOAT)
+#define CHECF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CHECF,checf,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(QCHECF,qchecf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,PFLOAT)
+#define QCHECF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(QCHECF,qchecf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DCHECF,dchecf,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PINT,PDOUBLE)
+#define DCHECF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DCHECF,dchecf,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PINT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(CHMOVE,chmove,STRING,INT,PSTRING,INT,INT)
+#define CHMOVE(A1,A2,A3,A4,A5)  CCALLSFSUB5(CHMOVE,chmove,STRING,INT,PSTRING,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB16(CINVIT,cinvit,INT,INT,PFLOAT,PFLOAT,PFLOAT,FLOATV,LOGICALV,INT,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define CINVIT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)  CCALLSFSUB16(CINVIT,cinvit,INT,INT,PFLOAT,PFLOAT,PFLOAT,FLOATV,LOGICALV,INT,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)
+
+PROTOCCALLSFSUB8(CLEBS,clebs,INT,INT,INT,INT,INT,INT,PINT,PINT)
+#define CLEBS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CLEBS,clebs,INT,INT,INT,INT,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(COEDIN,coedin,FLOAT,FLOAT,INT)
+#define COEDIN(A1,A2,A3)  CCALLSFSUB3(COEDIN,coedin,FLOAT,FLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(COEDIS,coedis,FLOAT,FLOAT,INT,INT)
+#define COEDIS(A1,A2,A3,A4)  CCALLSFSUB4(COEDIS,coedis,FLOAT,FLOAT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB9(COMBAK,combak,INT,INT,INT,PFLOAT,PFLOAT,INTV,INT,PFLOAT,PFLOAT)
+#define COMBAK(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(COMBAK,combak,INT,INT,INT,PFLOAT,PFLOAT,INTV,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB7(COMHES,comhes,INT,INT,INT,INT,PFLOAT,PFLOAT,PINT)
+#define COMHES(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(COMHES,comhes,INT,INT,INT,INT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB9(COMLR,comlr,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define COMLR(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(COMLR,comlr,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB12(COMLR2,comlr2,INT,INT,INT,INT,INTV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define COMLR2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(COMLR2,comlr2,INT,INT,INT,INT,INTV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB8(CONPRT,conprt,PFLOAT,INT,INT,INT,INT,INT,FLOAT,FLOAT)
+#define CONPRT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CONPRT,conprt,PFLOAT,INT,INT,INT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(CONT,cont,FLOAT,INT,FLOATV)
+#define CONT(A1,A2,A3)  CCALLSFSUB3(CONT,cont,FLOAT,INT,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB5(CPOLYZ,cpolyz,FLOAT,INT,INT,FLOAT,FLOAT)
+#define CPOLYZ(A1,A2,A3,A4,A5)  CCALLSFSUB5(CPOLYZ,cpolyz,FLOAT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(D107S1,d107s1,INT,DOUBLE,DOUBLE,DOUBLE,INT,PDOUBLE,PDOUBLE)
+#define D107S1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(D107S1,d107s1,INT,DOUBLE,DOUBLE,DOUBLE,INT,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(D115BD,d115bd,PINT)
+#define D115BD(A1)  CCALLSFSUB1(D115BD,d115bd,PINT,A1)
+
+/*
+PROTOCCALLSFSUB38(D501L1,d501l1,BYTE,DOUBLE,INT,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,INTV,INT,PDOUBLE,INT,PDOUBLE,PDOUBLE,*ERROR*V,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,INTV,PINT)
+#define D501L1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38)  CCALLSFSUB38(D501L1,d501l1,BYTE,DOUBLE,INT,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,INTV,INT,PDOUBLE,INT,PDOUBLE,PDOUBLE,*ERROR*V,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,INTV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38)
+
+PROTOCCALLSFSUB27(D501L2,d501l2,INT,INT,DOUBLEV,INT,INT,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,INTV,INT,DOUBLEV,PDOUBLE,*ERROR*V,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,PINT)
+#define D501L2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27)  CCALLSFSUB27(D501L2,d501l2,INT,INT,DOUBLEV,INT,INT,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,INTV,INT,DOUBLEV,PDOUBLE,*ERROR*V,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,DOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27)
+
+PROTOCCALLSFSUB24(D501N1,d501n1,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PINT,DOUBLEV,PDOUBLE,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,BYTE,PINT)
+#define D501N1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)  CCALLSFSUB24(D501N1,d501n1,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,PINT,DOUBLEV,PDOUBLE,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,BYTE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)
+
+PROTOCCALLSFSUB22(D501N2,d501n2,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PINT,PDOUBLE,PDOUBLE,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,PINT)
+#define D501N2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22)  CCALLSFSUB22(D501N2,d501n2,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PINT,PDOUBLE,PDOUBLE,PINT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22)
+
+PROTOCCALLSFSUB18(D501P1,d501p1,INT,INT,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,INT,DOUBLE,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PINT,BYTE)
+#define D501P1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)  CCALLSFSUB18(D501P1,d501p1,INT,INT,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,INT,DOUBLE,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PINT,BYTE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)
+
+PROTOCCALLSFSUB12(D501P2,d501p2,PLOGICAL,INT,DOUBLEV,DOUBLEV,DOUBLEV,*ERROR*V,DOUBLE,DOUBLE,INT,LOGICAL,INT,BYTE)
+#define D501P2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(D501P2,d501p2,PLOGICAL,INT,DOUBLEV,DOUBLEV,DOUBLEV,*ERROR*V,DOUBLE,DOUBLE,INT,LOGICAL,INT,BYTE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB15(D501SF,d501sf,BYTE,DOUBLE,INT,INT,DOUBLEV,INT,PDOUBLE,PDOUBLE,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PINT)
+#define D501SF(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(D501SF,d501sf,BYTE,DOUBLE,INT,INT,DOUBLEV,INT,PDOUBLE,PDOUBLE,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+*/
+PROTOCCALLSFSUB0(D700SU,d700su)
+#define D700SU() CCALLSFSUB0(D700SU,d700su)
+
+PROTOCCALLSFSUB0(D701BD,d701bd)
+#define D701BD() CCALLSFSUB0(D701BD,d701bd)
+
+PROTOCCALLSFSUB3(DCHPWS,dchpws,INT,DOUBLEV,PDOUBLE)
+#define DCHPWS(A1,A2,A3)  CCALLSFSUB3(DCHPWS,dchpws,INT,DOUBLEV,PDOUBLE,A1,A2,A3)
+
+PROTOCCALLSFSUB8(DECOMP,decomp,INT,INT,PFLOAT,PFLOAT,PINT,PLOGICAL,PFLOAT,PFLOAT)
+#define DECOMP(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DECOMP,decomp,INT,INT,PFLOAT,PFLOAT,PINT,PLOGICAL,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB12(DELBND,delbnd,INT,PINT,INTV,PINT,PINT,INT,PINT,DOUBLEV,INT,PDOUBLE,PDOUBLE,PDOUBLE)
+#define DELBND(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DELBND,delbnd,INT,PINT,INTV,PINT,PINT,INT,PINT,DOUBLEV,INT,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB4(DELETE,delete,INT,PINT,INT,PINT)
+#define DELETE(A1,A2,A3,A4)  CCALLSFSUB4(DELETE,delete,INT,PINT,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB26(DELSLV,delslv,INT,DOUBLE,DOUBLE,LOGICAL,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PINT,INT,PINT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT)
+#define DELSLV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26)  CCALLSFSUB26(DELSLV,delslv,INT,DOUBLE,DOUBLE,LOGICAL,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PINT,INT,PINT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26)
+
+PROTOCCALLSFSUB8(DEQBS,deqbs,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define DEQBS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DEQBS,deqbs,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DDEQBS,ddeqbs,INT,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE)
+#define DDEQBS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DDEQBS,ddeqbs,INT,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DEQMR,deqmr,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define DEQMR(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DEQMR,deqmr,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DDEQMR,ddeqmr,INT,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE)
+#define DDEQMR(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DDEQMR,ddeqmr,INT,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB5(DERIV,deriv,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define DERIV(A1,A2,A3,A4,A5)  CCALLSFSUB5(DERIV,deriv,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DDERIV,dderiv,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define DDERIV(A1,A2,A3,A4,A5)  CCALLSFSUB5(DDERIV,dderiv,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB24(DFUNFT,dfunft,DOUBLE,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT)
+#define DFUNFT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)  CCALLSFSUB24(DFUNFT,dfunft,DOUBLE,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24)
+
+PROTOCCALLSFSUB2(DIRCOS,dircos,FLOATV,FLOATV)
+#define DIRCOS(A1,A2)  CCALLSFSUB2(DIRCOS,dircos,FLOATV,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB7(DIVON,divon,INT,FLOATV,FLOATV,FLOAT,INT,PFLOAT,PFLOAT)
+#define DIVON(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DIVON,divon,INT,FLOATV,FLOATV,FLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB19(DMAXLK,dmaxlk,DOUBLE,INT,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,DOUBLEV,INT)
+#define DMAXLK(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(DMAXLK,dmaxlk,DOUBLE,INT,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,DOUBLEV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+PROTOCCALLSFSUB15(DSMPLX,dsmplx,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INT,INT,PINT,INT,DOUBLEV,PDOUBLE,PDOUBLE,PINT)
+#define DSMPLX(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(DSMPLX,dsmplx,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INT,INT,PINT,INT,DOUBLEV,PDOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB11(DSPAP1,dspap1,INT,INT,INT,DOUBLEV,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,INT,PINT)
+#define DSPAP1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(DSPAP1,dspap1,INT,INT,INT,DOUBLEV,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB18(DSPAP2,dspap2,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,DOUBLEV,INT,PINT)
+#define DSPAP2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)  CCALLSFSUB18(DSPAP2,dspap2,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,DOUBLEV,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18)
+
+PROTOCCALLSFSUB7(DSPCD1,dspcd1,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,PINT)
+#define DSPCD1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DSPCD1,dspcd1,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB12(DSPCD2,dspcd2,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PINT)
+#define DSPCD2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DSPCD2,dspcd2,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB10(DSPIN1,dspin1,INT,INT,DOUBLEV,DOUBLEV,INT,PDOUBLE,DOUBLEV,DOUBLEV,PINT,PINT)
+#define DSPIN1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(DSPIN1,dspin1,INT,INT,DOUBLEV,DOUBLEV,INT,PDOUBLE,DOUBLEV,DOUBLEV,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB16(DSPIN2,dspin2,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,INT,PDOUBLE,PDOUBLE,PDOUBLE,INT,PDOUBLE,PINT,PINT)
+#define DSPIN2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)  CCALLSFSUB16(DSPIN2,dspin2,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,INT,PDOUBLE,PDOUBLE,PDOUBLE,INT,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)
+
+PROTOCCALLSFSUB6(DSPKN1,dspkn1,INT,INT,DOUBLE,DOUBLE,PDOUBLE,PINT)
+#define DSPKN1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DSPKN1,dspkn1,INT,INT,DOUBLE,DOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(DSPKN2,dspkn2,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PINT)
+#define DSPKN2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(DSPKN2,dspkn2,INT,INT,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB6(DSPVD1,dspvd1,DOUBLE,INT,INT,DOUBLEV,PDOUBLE,PINT)
+#define DSPVD1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DSPVD1,dspvd1,DOUBLE,INT,INT,DOUBLEV,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB10(DSPVD2,dspvd2,DOUBLE,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PINT)
+#define DSPVD2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(DSPVD2,dspvd2,DOUBLE,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB19(DSUMSQ,dsumsq,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT)
+#define DSUMSQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(DSUMSQ,dsumsq,DOUBLE,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLE,INT,INT,INT,INTV,DOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+PROTOCCALLSFSUB3(DVCOPY,dvcopy,INT,DOUBLEV,PDOUBLE)
+#define DVCOPY(A1,A2,A3)  CCALLSFSUB3(DVCOPY,dvcopy,INT,DOUBLEV,PDOUBLE,A1,A2,A3)
+
+PROTOCCALLSFSUB0(DVNBKD,dvnbkd)
+#define DVNBKD() CCALLSFSUB0(DVNBKD,dvnbkd)
+
+PROTOCCALLSFSUB0(DVNOPT,dvnopt)
+#define DVNOPT() CCALLSFSUB0(DVNOPT,dvnopt)
+
+PROTOCCALLSFSUB11(ECONDE,econde,DOUBLEV,PDOUBLE,INT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLEV,DOUBLEV,DOUBLEV)
+#define ECONDE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(ECONDE,econde,DOUBLEV,PDOUBLE,INT,PINT,DOUBLE,DOUBLE,DOUBLE,INT,DOUBLEV,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB8(ECTRAD,ectrad,DOUBLEV,INT,DOUBLEV,PINT,DOUBLE,DOUBLE,DOUBLE,INT)
+#define ECTRAD(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(ECTRAD,ectrad,DOUBLEV,INT,DOUBLEV,PINT,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB10(EISCG1,eiscg1,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,INT,FLOATV)
+#define EISCG1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(EISCG1,eiscg1,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB7(EISCG2,eiscg2,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,INT)
+#define EISCG2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(EISCG2,eiscg2,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB9(EISCH1,eisch1,INT,INT,PFLOAT,PFLOAT,FLOATV,PFLOAT,PFLOAT,INT,FLOATV)
+#define EISCH1(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(EISCH1,eisch1,INT,INT,PFLOAT,PFLOAT,FLOATV,PFLOAT,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB7(EISCH2,eisch2,INT,INT,PFLOAT,PFLOAT,FLOATV,INT,FLOATV)
+#define EISCH2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(EISCH2,eisch2,INT,INT,PFLOAT,PFLOAT,FLOATV,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB13(EISCH3,eisch3,INT,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,PFLOAT,INT,FLOATV)
+#define EISCH3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(EISCH3,eisch3,INT,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB11(EISCH4,eisch4,INT,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,FLOATV)
+#define EISCH4(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(EISCH4,eisch4,INT,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB8(EISRG1,eisrg1,INT,INT,PFLOAT,FLOATV,FLOATV,PFLOAT,INT,FLOATV)
+#define EISRG1(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(EISRG1,eisrg1,INT,INT,PFLOAT,FLOATV,FLOATV,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(EISRG2,eisrg2,INT,INT,PFLOAT,FLOATV,FLOATV,INT)
+#define EISRG2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(EISRG2,eisrg2,INT,INT,PFLOAT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(EISRS1,eisrs1,INT,INT,PFLOAT,FLOATV,PFLOAT,INT,FLOATV)
+#define EISRS1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(EISRS1,eisrs1,INT,INT,PFLOAT,FLOATV,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(EISRS2,eisrs2,INT,INT,PFLOAT,FLOATV,INT,FLOATV)
+#define EISRS2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(EISRS2,eisrs2,INT,INT,PFLOAT,FLOATV,INT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(EISRS3,eisrs3,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,INT,FLOATV)
+#define EISRS3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(EISRS3,eisrs3,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB10(EISRS4,eisrs4,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,FLOATV)
+#define EISRS4(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(EISRS4,eisrs4,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB7(EISST1,eisst1,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT,PFLOAT)
+#define EISST1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(EISST1,eisst1,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(EISST2,eisst2,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT)
+#define EISST2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(EISST2,eisst2,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(EISST3,eisst3,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,INT,PFLOAT)
+#define EISST3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(EISST3,eisst3,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB10(EISST4,eisst4,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,PFLOAT)
+#define EISST4(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(EISST4,eisst4,INT,INT,PFLOAT,FLOAT,FLOAT,INT,INT,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB8(ELANAL,elanal,INT,INT,INT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV)
+#define ELANAL(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(ELANAL,elanal,INT,INT,INT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB5(ELFUN,elfun,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define ELFUN(A1,A2,A3,A4,A5)  CCALLSFSUB5(ELFUN,elfun,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DELFUN,delfun,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define DELFUN(A1,A2,A3,A4,A5)  CCALLSFSUB5(DELFUN,delfun,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(ELMBAK,elmbak,INT,INT,INT,PFLOAT,INTV,INT,PFLOAT)
+#define ELMBAK(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(ELMBAK,elmbak,INT,INT,INT,PFLOAT,INTV,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(ELMHES,elmhes,INT,INT,INT,INT,PFLOAT,PINT)
+#define ELMHES(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ELMHES,elmhes,INT,INT,INT,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB12(ELPAHY,elpahy,PFLOAT,INT,INT,FLOAT,FLOAT,FLOATV,INT,FLOATV,FLOATV,INT,FLOATV,FLOATV)
+#define ELPAHY(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(ELPAHY,elpahy,PFLOAT,INT,INT,FLOAT,FLOAT,FLOATV,INT,FLOATV,FLOATV,INT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB7(ELTRAN,eltran,INT,INT,INT,INT,PFLOAT,INTV,PFLOAT)
+#define ELTRAN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(ELTRAN,eltran,INT,INT,INT,INT,PFLOAT,INTV,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB13(EPDBPS,epdbps,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,FLOAT,PINT,PFLOAT,PFLOAT,PINT)
+#define EPDBPS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(EPDBPS,epdbps,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,FLOAT,PINT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB4(EPDCHK,epdchk,FLOATV,FLOATV,FLOATV,INT)
+#define EPDCHK(A1,A2,A3,A4)  CCALLSFSUB4(EPDCHK,epdchk,FLOATV,FLOATV,FLOATV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(EPDCHN,epdchn,FLOAT,FLOAT)
+#define EPDCHN(A1,A2)  CCALLSFSUB2(EPDCHN,epdchn,FLOAT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB4(EPDCJ,epdcj,PFLOAT,FLOATV,PINT,PFLOAT)
+#define EPDCJ(A1,A2,A3,A4)  CCALLSFSUB4(EPDCJ,epdcj,PFLOAT,FLOATV,PINT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(EPDE1,epde1)
+#define EPDE1() CCALLSFSUB0(EPDE1,epde1)
+
+PROTOCCALLSFSUB0(EPDECC,epdecc)
+#define EPDECC() CCALLSFSUB0(EPDECC,epdecc)
+
+PROTOCCALLSFSUB2(EPDFIX,epdfix,INT,PINT)
+#define EPDFIX(A1,A2)  CCALLSFSUB2(EPDFIX,epdfix,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB4(EPDIN,epdin,FLOATV,FLOATV,PINT,PFLOAT)
+#define EPDIN(A1,A2,A3,A4)  CCALLSFSUB4(EPDIN,epdin,FLOATV,FLOATV,PINT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(EPDITR,epditr,FLOAT,PFLOAT,PFLOAT,PINT,PFLOAT)
+#define EPDITR(A1,A2,A3,A4,A5)  CCALLSFSUB5(EPDITR,epditr,FLOAT,PFLOAT,PFLOAT,PINT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(EPDJE,epdje,PFLOAT,FLOATV,PINT,PFLOAT)
+#define EPDJE(A1,A2,A3,A4)  CCALLSFSUB4(EPDJE,epdje,PFLOAT,FLOATV,PINT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB11(EPDLOC,epdloc,INT,FLOAT,PFLOAT,INTV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,FLOAT)
+#define EPDLOC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(EPDLOC,epdloc,INT,FLOAT,PFLOAT,INTV,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB4(EPDSRT,epdsrt,INT,INTV,PFLOAT,PFLOAT)
+#define EPDSRT(A1,A2,A3,A4)  CCALLSFSUB4(EPDSRT,epdsrt,INT,INTV,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(EPDTAB,epdtab,INT,PFLOAT,FLOAT,INT,PINT)
+#define EPDTAB(A1,A2,A3,A4,A5)  CCALLSFSUB5(EPDTAB,epdtab,INT,PFLOAT,FLOAT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(EPSILO,epsilo,PDOUBLE,INT,INT,INT,PFLOAT)
+#define EPSILO(A1,A2,A3,A4,A5)  CCALLSFSUB5(EPSILO,epsilo,PDOUBLE,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(ERPRIP,erprip,FLOATV,FLOATV,FLOATV,FLOATV)
+#define ERPRIP(A1,A2,A3,A4)  CCALLSFSUB4(ERPRIP,erprip,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(ERRORF,errorf,INT)
+#define ERRORF(A1)  CCALLSFSUB1(ERRORF,errorf,INT,A1)
+
+PROTOCCALLSFSUB13(ESOLVE,esolve,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,INT)
+#define ESOLVE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(ESOLVE,esolve,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB9(FCN1,fcn1,INT,INT,FLOATV,FLOATV,INT,INT,FLOATV,INT,INT)
+#define FCN1(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(FCN1,fcn1,INT,INT,FLOATV,FLOATV,INT,INT,FLOATV,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB11(FEASMV,feasmv,INT,INT,INTV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE,PINT,PINT)
+#define FEASMV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(FEASMV,feasmv,INT,INT,INTV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB4(FEQN,feqn,INT,DOUBLEV,DOUBLE,PDOUBLE)
+#define FEQN(A1,A2,A3,A4)  CCALLSFSUB4(FEQN,feqn,INT,DOUBLEV,DOUBLE,PDOUBLE,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(FFTRC,fftrc,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT)
+#define FFTRC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(FFTRC,fftrc,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(FIGI,figi,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define FIGI(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(FIGI,figi,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(FIGI2,figi2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define FIGI2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(FIGI2,figi2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(FINDEM,findem,FLOAT,INT,PFLOAT)
+#define FINDEM(A1,A2,A3)  CCALLSFSUB3(FINDEM,findem,FLOAT,INT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB19(FINDPC,findpc,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INTV,INTV,PINT,INTV,INTV,INT,PINT,INT,PDOUBLE,PDOUBLE,FLOAT,INT)
+#define FINDPC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(FINDPC,findpc,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INTV,INTV,PINT,INTV,INTV,INT,PINT,INT,PDOUBLE,PDOUBLE,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+PROTOCCALLSFSUB4(FRAME,frame,FLOAT,FLOAT,FLOAT,FLOAT)
+#define FRAME(A1,A2,A3,A4)  CCALLSFSUB4(FRAME,frame,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(FRED1,fred1,FLOAT,FLOAT,FLOAT,FLOAT,INT,PFLOAT,INT)
+#define FRED1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(FRED1,fred1,FLOAT,FLOAT,FLOAT,FLOAT,INT,PFLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB10(FUMILI,fumili,PFLOAT,INT,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,INT,PINT)
+#define FUMILI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(FUMILI,fumili,PFLOAT,INT,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB4(FUNPRE,funpre,FLOAT,PFLOAT,FLOAT,FLOAT)
+#define FUNPRE(A1,A2,A3,A4)  CCALLSFSUB4(FUNPRE,funpre,FLOAT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(FUNRAN,funran,FLOATV,PFLOAT)
+#define FUNRAN(A1,A2)  CCALLSFSUB2(FUNRAN,funran,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB5(FUNZER,funzer,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define FUNZER(A1,A2,A3,A4,A5)  CCALLSFSUB5(FUNZER,funzer,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(GATHER,gather,INT,PFLOAT,FLOATV,INTV)
+#define GATHER(A1,A2,A3,A4)  CCALLSFSUB4(GATHER,gather,INT,PFLOAT,FLOATV,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(GENPNT,genpnt,INT,FLOATV,FLOAT)
+#define GENPNT(A1,A2,A3)  CCALLSFSUB3(GENPNT,genpnt,INT,FLOATV,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(GENT,gent,INT)
+#define GENT(A1)  CCALLSFSUB1(GENT,gent,INT,A1)
+
+PROTOCCALLSFSUB6(GETSCH,getsch,BYTE,BYTE,BYTE,INT,PBYTE,PINT)
+#define GETSCH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GETSCH,getsch,BYTE,BYTE,BYTE,INT,PBYTE,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(GETSST,getsst,INTV,INT,INT,INT,INTV,PINT)
+#define GETSST(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GETSST,getsst,INTV,INT,INT,INT,INTV,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(GRAPH,graph,PINT,INT,INT,PINT,PINT,PINT)
+#define GRAPH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(GRAPH,graph,PINT,INT,INT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB9(GRDCMP,grdcmp,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,PDOUBLE)
+#define GRDCMP(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(GRDCMP,grdcmp,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB12(H101S1,h101s1,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,INT,INT,INT,PINT,INT,PDOUBLE)
+#define H101S1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(H101S1,h101s1,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,INT,INT,INT,PINT,INT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB15(H101S2,h101s2,PDOUBLE,DOUBLEV,DOUBLEV,INT,INT,INT,INT,PINT,INT,PINT,INT,PDOUBLE,PDOUBLE,DOUBLE,INT)
+#define H101S2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(H101S2,h101s2,PDOUBLE,DOUBLEV,DOUBLEV,INT,INT,INT,INT,PINT,INT,PINT,INT,PDOUBLE,PDOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB9(ASSNDX,assndx,INT,PFLOAT,INT,INT,INT,PINT,PFLOAT,PINT,INT)
+#define ASSNDX(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(ASSNDX,assndx,INT,PFLOAT,INT,INT,INT,PINT,PFLOAT,PINT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB5(HISRAN,hisran,FLOATV,INT,FLOAT,FLOAT,FLOAT)
+#define HISRAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(HISRAN,hisran,FLOATV,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB8(HQR,hqr,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define HQR(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HQR,hqr,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB9(HQR2,hqr2,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define HQR2(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(HQR2,hqr2,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB8(HTRIBK,htribk,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT,PFLOAT,PFLOAT)
+#define HTRIBK(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HTRIBK,htribk,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(HTRIDI,htridi,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define HTRIDI(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HTRIDI,htridi,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(I128,i128,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT)
+#define I128(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(I128,i128,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(I32,i32,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT)
+#define I32(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(I32,i32,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(I64,i64,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT)
+#define I64(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(I64,i64,FLOATV,FLOATV,INT,FLOATV,FLOATV,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(IMTQL1,imtql1,INT,PFLOAT,PFLOAT,PINT)
+#define IMTQL1(A1,A2,A3,A4)  CCALLSFSUB4(IMTQL1,imtql1,INT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(IMTQL2,imtql2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define IMTQL2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IMTQL2,imtql2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(INTGRL,intgrl,INT,INT,INT,PFLOAT,PFLOAT)
+#define INTGRL(A1,A2,A3,A4,A5)  CCALLSFSUB5(INTGRL,intgrl,INT,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB13(INVIT,invit,INT,INT,PFLOAT,PFLOAT,FLOATV,LOGICALV,INT,PINT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT)
+#define INVIT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(INVIT,invit,INT,INT,PFLOAT,PFLOAT,FLOATV,LOGICALV,INT,PINT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB0(J509BD,j509bd)
+#define J509BD() CCALLSFSUB0(J509BD,j509bd)
+
+PROTOCCALLSFSUB5(LDLSOL,ldlsol,INT,INT,PDOUBLE,DOUBLEV,PDOUBLE)
+#define LDLSOL(A1,A2,A3,A4,A5)  CCALLSFSUB5(LDLSOL,ldlsol,INT,INT,PDOUBLE,DOUBLEV,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB0(LEG1,leg1)
+#define LEG1() CCALLSFSUB0(LEG1,leg1)
+
+PROTOCCALLSFSUB0(LEGOR,legor)
+#define LEGOR() CCALLSFSUB0(LEGOR,legor)
+
+PROTOCCALLSFSUB0(LEGV,legv)
+#define LEGV() CCALLSFSUB0(LEGV,legv)
+
+PROTOCCALLSFSUB0(LEGZ,legz)
+#define LEGZ() CCALLSFSUB0(LEGZ,legz)
+
+PROTOCCALLSFSUB7(LFIT,lfit,FLOATV,FLOATV,INT,INT,PFLOAT,PFLOAT,PFLOAT)
+#define LFIT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(LFIT,lfit,FLOATV,FLOATV,INT,INT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB8(LFITW,lfitw,FLOATV,FLOATV,FLOATV,INT,INT,PFLOAT,PFLOAT,PFLOAT)
+#define LFITW(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(LFITW,lfitw,FLOATV,FLOATV,FLOATV,INT,INT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB12(LIHOIN,lihoin,PFLOAT,INT,INT,INT,INT,PFLOAT,INT,PINT,FLOAT,INT,PFLOAT,PINT)
+#define LIHOIN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(LIHOIN,lihoin,PFLOAT,INT,INT,INT,INT,PFLOAT,INT,PINT,FLOAT,INT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(DLHOIN,dlhoin,PDOUBLE,INT,INT,INT,INT,PDOUBLE,INT,PINT,DOUBLE,INT,PDOUBLE,PINT)
+#define DLHOIN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DLHOIN,dlhoin,PDOUBLE,INT,INT,INT,INT,PDOUBLE,INT,PINT,DOUBLE,INT,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(LINSQ,linsq,INT,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PDOUBLE,FLOAT,FLOAT,PFLOAT)
+#define LINSQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(LINSQ,linsq,INT,INT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,PFLOAT,PDOUBLE,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB8(D508R1,d508r1,PDOUBLE,INT,INT,INT,INT,PINT,PINT,PDOUBLE)
+#define D508R1(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(D508R1,d508r1,PDOUBLE,INT,INT,INT,INT,PINT,PINT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(D508R2,d508r2,PDOUBLE,INT,INT,FLOAT,INT,INTV,PINT,PDOUBLE)
+#define D508R2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(D508R2,d508r2,PDOUBLE,INT,INT,FLOAT,INT,INTV,PINT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB16(LOCSCH,locsch,INT,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,PINT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define LOCSCH(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)  CCALLSFSUB16(LOCSCH,locsch,INT,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,PINT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)
+
+PROTOCCALLSFSUB9(LRCH,lrch,INT,INT,PFLOAT,FLOAT,INT,PFLOAT,INT,INT,PFLOAT)
+#define LRCH(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(LRCH,lrch,INT,INT,PFLOAT,FLOAT,INT,PFLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB10(LSQQR,lsqqr,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,PLOGICAL,PFLOAT)
+#define LSQQR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(LSQQR,lsqqr,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,PLOGICAL,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB4(MAP,map,FLOAT,FLOAT,FLOAT,FLOAT)
+#define MAP(A1,A2,A3,A4)  CCALLSFSUB4(MAP,map,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(MCONV,mconv,INT)
+#define MCONV(A1)  CCALLSFSUB1(MCONV,mconv,INT,A1)
+
+PROTOCCALLSFSUB6(MFT,mft,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT)
+#define MFT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MFT,mft,INT,INT,PFLOAT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(RMINFC,rminfc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PLOGICAL)
+#define RMINFC(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RMINFC,rminfc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DMINFC,dminfc,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PLOGICAL)
+#define DMINFC(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DMINFC,dminfc,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB11(MINSQ,minsq,INT,INT,PFLOAT,PFLOAT,FLOATV,INT,INT,INT,PFLOAT,FLOAT,FLOAT)
+#define MINSQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(MINSQ,minsq,INT,INT,PFLOAT,PFLOAT,FLOATV,INT,INT,INT,PFLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB6(MODCHL,modchl,INT,INT,PDOUBLE,DOUBLE,PDOUBLE,PINT)
+#define MODCHL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MODCHL,modchl,INT,INT,PDOUBLE,DOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(MONITO,monito,FLOAT,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define MONITO(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(MONITO,monito,FLOAT,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(MTLPRT,mtlprt,STRING,STRING,STRING)
+#define MTLPRT(A1,A2,A3)  CCALLSFSUB3(MTLPRT,mtlprt,STRING,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB4(MTLSET,mtlset,STRING,INT,INT,INT)
+#define MTLSET(A1,A2,A3,A4)  CCALLSFSUB4(MTLSET,mtlset,STRING,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB14(MULCHK,mulchk,INT,INT,INTV,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,PLOGICAL,PINT,PINT)
+#define MULCHK(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(MULCHK,mulchk,INT,INT,INTV,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,PLOGICAL,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFSUB5(MUNOMI,munomi,INT,INT,PFLOAT,PINT,PINT)
+#define MUNOMI(A1,A2,A3,A4,A5)  CCALLSFSUB5(MUNOMI,munomi,INT,INT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB10(MXDIPR,mxdipr,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,INT,INT)
+#define MXDIPR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(MXDIPR,mxdipr,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB6(MXSTEP,mxstep,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE)
+#define MXSTEP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MXSTEP,mxstep,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB2(NAMES,names,INT,INT)
+#define NAMES(A1,A2)  CCALLSFSUB2(NAMES,names,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB3(NAMEZB,namezb,FLOAT,INT,INT)
+#define NAMEZB(A1,A2,A3)  CCALLSFSUB3(NAMEZB,namezb,FLOAT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB29(NEWPTQ,newptq,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT)
+#define NEWPTQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)  CCALLSFSUB29(NEWPTQ,newptq,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)
+
+PROTOCCALLSFSUB9(NEWRO,newro,INT,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV)
+#define NEWRO(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(NEWRO,newro,INT,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB6(NMDCHL,nmdchl,INT,INT,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE)
+#define NMDCHL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(NMDCHL,nmdchl,INT,INT,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(NOCUT,nocut,INT,DOUBLEV,DOUBLEV,PDOUBLE,PINT,PINT,PDOUBLE,PINT)
+#define NOCUT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(NOCUT,nocut,INT,DOUBLEV,DOUBLEV,PDOUBLE,PINT,PINT,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB5(NODAUD,nodaud,PINT,INT,INT,INT,PINT)
+#define NODAUD(A1,A2,A3,A4,A5)  CCALLSFSUB5(NODAUD,nodaud,PINT,INT,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(NORMCO,normco,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define NORMCO(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(NORMCO,normco,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(NRAN,nran,PFLOAT,INT)
+#define NRAN(A1,A2)  CCALLSFSUB2(NRAN,nran,PFLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB0(MINNEW,minnew)
+#define MINNEW() CCALLSFSUB0(MINNEW,minnew)
+
+PROTOCCALLSFSUB3(ORDRE2,ordre2,PFLOAT,PFLOAT,INT)
+#define ORDRE2(A1,A2,A3)  CCALLSFSUB3(ORDRE2,ordre2,PFLOAT,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB7(ORTBAK,ortbak,INT,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT)
+#define ORTBAK(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(ORTBAK,ortbak,INT,INT,INT,PFLOAT,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(ORTHES,orthes,INT,INT,INT,INT,PFLOAT,PFLOAT)
+#define ORTHES(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ORTHES,orthes,INT,INT,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB12(ORTHVC,orthvc,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define ORTHVC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(ORTHVC,orthvc,INT,INT,INTV,DOUBLEV,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB7(ORTRAN,ortran,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT)
+#define ORTRAN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(ORTRAN,ortran,INT,INT,INT,INT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(PAPER,paper,INT,INT)
+#define PAPER(A1,A2)  CCALLSFSUB2(PAPER,paper,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB5(PARLSQ,parlsq,FLOATV,FLOATV,INT,PFLOAT,PFLOAT)
+#define PARLSQ(A1,A2,A3,A4,A5)  CCALLSFSUB5(PARLSQ,parlsq,FLOATV,FLOATV,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(PARTN,partn,INT,FLOATV,FLOATV,FLOAT,INT)
+#define PARTN(A1,A2,A3,A4,A5)  CCALLSFSUB5(PARTN,partn,INT,FLOATV,FLOATV,FLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB2(PERMU,permu,PINT,INT)
+#define PERMU(A1,A2)  CCALLSFSUB2(PERMU,permu,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB6(PGRAPH,pgraph,PINT,INT,INT,PINT,INT,PINT)
+#define PGRAPH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(PGRAPH,pgraph,PINT,INT,INT,PINT,INT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB12(PIVOT,pivot,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,INT,INT,INT,PINT,PINT,FLOAT)
+#define PIVOT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(PIVOT,pivot,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,INT,INT,INT,INT,INT,PINT,PINT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB3(POISSN,poissn,FLOAT,PINT,PINT)
+#define POISSN(A1,A2,A3)  CCALLSFSUB3(POISSN,poissn,FLOAT,PINT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB7(POLROT,polrot,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT)
+#define POLROT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(POLROT,polrot,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(PRIPAR,pripar,FLOATV,FLOATV,PFLOAT)
+#define PRIPAR(A1,A2,A3)  CCALLSFSUB3(PRIPAR,pripar,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(PROC1,proc1,PFLOAT,PFLOAT,INT,INT,INT)
+#define PROC1(A1,A2,A3,A4,A5)  CCALLSFSUB5(PROC1,proc1,PFLOAT,PFLOAT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(QFUNCT,qfunct,FLOAT,PFLOAT,PFLOAT)
+#define QFUNCT(A1,A2,A3)  CCALLSFSUB3(QFUNCT,qfunct,FLOAT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(QUASI,quasi,PFLOAT,INT,INT,INT)
+#define QUASI(A1,A2,A3,A4)  CCALLSFSUB4(QUASI,quasi,PFLOAT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(RAN3D,ran3d,PFLOAT,PFLOAT,PFLOAT,FLOAT)
+#define RAN3D(A1,A2,A3,A4)  CCALLSFSUB4(RAN3D,ran3d,PFLOAT,PFLOAT,PFLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(RANUMS,ranums,PFLOAT,INT)
+#define RANUMS(A1,A2)  CCALLSFSUB2(RANUMS,ranums,PFLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB12(RATQR,ratqr,INT,FLOAT,FLOATV,FLOATV,PFLOAT,INT,PFLOAT,PINT,PFLOAT,LOGICAL,INT,PINT)
+#define RATQR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RATQR,ratqr,INT,FLOAT,FLOATV,FLOATV,PFLOAT,INT,PFLOAT,PINT,PFLOAT,LOGICAL,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB5(RCA,rca,INT,FLOATV,INT,PFLOAT,INT)
+#define RCA(A1,A2,A3,A4,A5)  CCALLSFSUB5(RCA,rca,INT,FLOATV,INT,PFLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(RCHPWS,rchpws,INT,FLOAT,FLOAT)
+#define RCHPWS(A1,A2,A3)  CCALLSFSUB3(RCHPWS,rchpws,INT,FLOAT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB10(RCSPLN,rcspln,INT,FLOAT,INT,FLOAT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define RCSPLN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(RCSPLN,rcspln,INT,FLOAT,INT,FLOAT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB10(DCSPLN,dcspln,INT,DOUBLEV,INT,PDOUBLE,INT,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define DCSPLN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(DCSPLN,dcspln,INT,DOUBLEV,INT,PDOUBLE,INT,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB12(RECPAR,recpar,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,PINT,PINT,FLOATV,PINT,FLOATV,INT)
+#define RECPAR(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RECPAR,recpar,INT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,PINT,PINT,FLOATV,PINT,FLOATV,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB8(RFRDH1,rfrdh1,FLOAT,FLOAT,INT,FLOAT,INT,FLOAT,INT,INT)
+#define RFRDH1(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RFRDH1,rfrdh1,FLOAT,FLOAT,INT,FLOAT,INT,FLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DFRDH1,dfrdh1,DOUBLE,DOUBLE,INT,DOUBLEV,INTV,PDOUBLE,INT,PINT)
+#define DFRDH1(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DFRDH1,dfrdh1,DOUBLE,DOUBLE,INT,DOUBLEV,INTV,PDOUBLE,INT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(RFT,rft,INT,FLOATV,INT,FLOATV,INT,INT)
+#define RFT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RFT,rft,INT,FLOATV,INT,FLOATV,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(RIWIAD,riwiad,DOUBLE)
+#define RIWIAD(A1)  CCALLSFSUB1(RIWIAD,riwiad,DOUBLE,A1)
+
+PROTOCCALLSFSUB0(RIWIBD,riwibd)
+#define RIWIBD() CCALLSFSUB0(RIWIBD,riwibd)
+
+PROTOCCALLSFSUB7(DRKNYS,drknys,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE)
+#define DRKNYS(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DRKNYS,drknys,INT,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(RKNYS,rknys,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define RKNYS(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RKNYS,rknys,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(RKSTP,rkstp,INT,FLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT)
+#define RKSTP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RKSTP,rkstp,INT,FLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(DRKSTP,drkstp,INT,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE)
+#define DRKSTP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DRKSTP,drkstp,INT,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(RLEN,rlen,INT,DOUBLEV,PDOUBLE)
+#define RLEN(A1,A2,A3)  CCALLSFSUB3(RLEN,rlen,INT,DOUBLEV,PDOUBLE,A1,A2,A3)
+
+PROTOCCALLSFSUB4(RMULLZ,rmullz,FLOAT,INT,INT,FLOAT)
+#define RMULLZ(A1,A2,A3,A4)  CCALLSFSUB4(RMULLZ,rmullz,FLOAT,INT,INT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(DGSET,dgset,DOUBLE,DOUBLE,INT,DOUBLEV,DOUBLEV)
+#define DGSET(A1,A2,A3,A4,A5)  CCALLSFSUB5(DGSET,dgset,DOUBLE,DOUBLE,INT,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(ROTATE,rotate,PFLOAT,PFLOAT,FLOAT,FLOAT,INT)
+#define ROTATE(A1,A2,A3,A4,A5)  CCALLSFSUB5(ROTATE,rotate,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(RPA,rpa,INT,FLOATV,INT,PFLOAT,INT)
+#define RPA(A1,A2,A3,A4,A5)  CCALLSFSUB5(RPA,rpa,INT,FLOATV,INT,PFLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(RPS,rps,INT,FLOATV,INT,PFLOAT,INT)
+#define RPS(A1,A2,A3,A4,A5)  CCALLSFSUB5(RPS,rps,INT,FLOATV,INT,PFLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(RSA,rsa,INT,FLOATV,INT,PFLOAT,INT)
+#define RSA(A1,A2,A3,A4,A5)  CCALLSFSUB5(RSA,rsa,INT,FLOATV,INT,PFLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB15(RSMPLX,rsmplx,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT,INT)
+#define RSMPLX(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(RSMPLX,rsmplx,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB9(RSRTNT,rsrtnt,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,LOGICAL)
+#define RSRTNT(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RSRTNT,rsrtnt,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,LOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(DSRTNT,dsrtnt,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PLOGICAL)
+#define DSRTNT(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DSRTNT,dsrtnt,INT,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PLOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB5(RTEQ3,rteq3,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define RTEQ3(A1,A2,A3,A4,A5)  CCALLSFSUB5(RTEQ3,rteq3,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(DRTEQ3,drteq3,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE)
+#define DRTEQ3(A1,A2,A3,A4,A5)  CCALLSFSUB5(DRTEQ3,drteq3,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(RTEQ4,rteq4,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT)
+#define RTEQ4(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RTEQ4,rteq4,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(S128,s128,FLOATV,PFLOAT)
+#define S128(A1,A2)  CCALLSFSUB2(S128,s128,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(S256,s256,FLOATV,PFLOAT)
+#define S256(A1,A2)  CCALLSFSUB2(S256,s256,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(S512,s512,FLOATV,PFLOAT)
+#define S512(A1,A2)  CCALLSFSUB2(S512,s512,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(S64,s64,FLOATV,PFLOAT)
+#define S64(A1,A2)  CCALLSFSUB2(S64,s64,FLOATV,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(SCAL,scal,INT,PFLOAT)
+#define SCAL(A1,A2)  CCALLSFSUB2(SCAL,scal,INT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB4(SCATTER,scatter,INT,PFLOAT,INTV,FLOATV)
+#define SCATTER(A1,A2,A3,A4)  CCALLSFSUB4(SCATTER,scatter,INT,PFLOAT,INTV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(SETTOL,settol,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT)
+#define SETTOL(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(SETTOL,settol,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(SETUP,setup,FLOAT,INT,FLOAT,INT,FLOAT,INT,FLOAT,INT)
+#define SETUP(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(SETUP,setup,FLOAT,INT,FLOAT,INT,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB2(SGZ,sgz,INT,PFLOAT)
+#define SGZ(A1,A2)  CCALLSFSUB2(SGZ,sgz,INT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB5(SHRNK,shrnk,INT,INT,PDOUBLE,INT,PDOUBLE)
+#define SHRNK(A1,A2,A3,A4,A5)  CCALLSFSUB5(SHRNK,shrnk,INT,INT,PDOUBLE,INT,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB12(SIMPLE,simple,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INTV,INT,INTV,INTV,INTV,PDOUBLE,INT,INT)
+#define SIMPLE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(SIMPLE,simple,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INTV,INT,INTV,INTV,INTV,PDOUBLE,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB8(SLV,slv,INT,INT,PFLOAT,FLOATV,INTV,PFLOAT,PFLOAT,PFLOAT)
+#define SLV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(SLV,slv,INT,INT,PFLOAT,FLOATV,INTV,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB10(SNLEQ,snleq,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,FLOAT,FLOAT)
+#define SNLEQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(SNLEQ,snleq,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB10(DSNLEQ,dsnleq,INT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,INT,INT,PINT,DOUBLE,PDOUBLE)
+#define DSNLEQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(DSNLEQ,dsnleq,INT,PDOUBLE,PDOUBLE,DOUBLE,DOUBLE,INT,INT,PINT,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB4(SORTDQ,sortdq,PDOUBLE,INT,INT,INT)
+#define SORTDQ(A1,A2,A3,A4)  CCALLSFSUB4(SORTDQ,sortdq,PDOUBLE,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SORTIQ,sortiq,PINT,INT,INT,INT)
+#define SORTIQ(A1,A2,A3,A4)  CCALLSFSUB4(SORTIQ,sortiq,PINT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SORTRQ,sortrq,PFLOAT,INT,INT,INT)
+#define SORTRQ(A1,A2,A3,A4)  CCALLSFSUB4(SORTRQ,sortrq,PFLOAT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(SPLAN0,splan0,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,INT)
+#define SPLAN0(A1,A2,A3,A4,A5)  CCALLSFSUB5(SPLAN0,splan0,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(SPLAN1,splan1,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT)
+#define SPLAN1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(SPLAN1,splan1,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(SPLAN2,splan2,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT)
+#define SPLAN2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(SPLAN2,splan2,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB8(SPLAN3,splan3,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT)
+#define SPLAN3(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(SPLAN3,splan3,PDOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB15(SPLAS1,splas1,INT,INT,INT,INT,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,INT,DOUBLEV,PINT)
+#define SPLAS1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(SPLAS1,splas1,INT,INT,INT,INT,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,PDOUBLE,INT,DOUBLEV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB26(SPLAS2,splas2,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT,PDOUBLE,INT)
+#define SPLAS2(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26)  CCALLSFSUB26(SPLAS2,splas2,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,DOUBLEV,DOUBLEV,PDOUBLE,INT,PDOUBLE,PDOUBLE,PDOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,INT,PDOUBLE,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26)
+
+PROTOCCALLSFSUB11(SPLIN3,splin3,FLOATV,FLOATV,PFLOAT,INT,INT,FLOATV,PFLOAT,PFLOAT,INT,INT,INT)
+#define SPLIN3(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(SPLIN3,splin3,FLOATV,FLOATV,PFLOAT,INT,INT,FLOATV,PFLOAT,PFLOAT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB10(SPLIT,split,INT,FLOATV,FLOATV,FLOAT,FLOAT,PLOGICAL,PINT,PFLOAT,PFLOAT,INT)
+#define SPLIT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(SPLIT,split,INT,FLOATV,FLOATV,FLOAT,FLOAT,PLOGICAL,PINT,PFLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB17(SPLX,splx,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INT,INT,PINT,PINT,PINT,PINT,PINT,DOUBLEV,DOUBLEV,PINT)
+#define SPLX(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17)  CCALLSFSUB17(SPLX,splx,PDOUBLE,DOUBLEV,DOUBLEV,DOUBLE,INT,INT,INT,INT,INT,PINT,PINT,PINT,PINT,PINT,DOUBLEV,DOUBLEV,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17)
+
+PROTOCCALLSFSUB3(SPXINV,spxinv,PFLOAT,INT,PINT)
+#define SPXINV(A1,A2,A3)  CCALLSFSUB3(SPXINV,spxinv,PFLOAT,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB10(SVD,svd,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,LOGICAL,LOGICAL)
+#define SVD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(SVD,svd,PFLOAT,PFLOAT,PFLOAT,INT,INT,INT,INT,INT,LOGICAL,LOGICAL,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB4(SYNT,synt,INT,INT,INT,PFLOAT)
+#define SYNT(A1,A2,A3,A4)  CCALLSFSUB4(SYNT,synt,INT,INT,INT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(TAYCHD,taychd,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,INT,INT,PDOUBLE)
+#define TAYCHD(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(TAYCHD,taychd,DOUBLE,DOUBLE,DOUBLEV,PDOUBLE,INT,INT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB15(TINVIT,tinvit,INT,INT,FLOATV,FLOATV,FLOATV,INT,FLOATV,INTV,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define TINVIT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(TINVIT,tinvit,INT,INT,FLOATV,FLOATV,FLOATV,INT,FLOATV,INTV,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB5(TKOLMO,tkolmo,FLOATV,INT,FLOATV,INT,PFLOAT)
+#define TKOLMO(A1,A2,A3,A4,A5)  CCALLSFSUB5(TKOLMO,tkolmo,FLOATV,INT,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(TQL1,tql1,INT,PFLOAT,PFLOAT,PINT)
+#define TQL1(A1,A2,A3,A4)  CCALLSFSUB4(TQL1,tql1,INT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(TQL2,tql2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define TQL2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TQL2,tql2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(TRANSD,transd,DOUBLEV,PDOUBLE,INT,DOUBLEV)
+#define TRANSD(A1,A2,A3,A4)  CCALLSFSUB4(TRANSD,transd,DOUBLEV,PDOUBLE,INT,DOUBLEV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(TRAPER,traper,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define TRAPER(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(TRAPER,traper,FLOATV,FLOATV,FLOATV,INT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(TRBAK1,trbak1,INT,INT,PFLOAT,FLOATV,INT,PFLOAT)
+#define TRBAK1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TRBAK1,trbak1,INT,INT,PFLOAT,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB0(TRDZ,trdz)
+#define TRDZ() CCALLSFSUB0(TRDZ,trdz)
+
+PROTOCCALLSFSUB5(TREAUD,treaud,PINT,INT,PINT,INT,PINT)
+#define TREAUD(A1,A2,A3,A4,A5)  CCALLSFSUB5(TREAUD,treaud,PINT,INT,PINT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(TRED1,tred1,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define TRED1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TRED1,tred1,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(TRED2,tred2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define TRED2(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TRED2,tred2,INT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(TREDMP,tredmp,INT)
+#define TREDMP(A1)  CCALLSFSUB1(TREDMP,tredmp,INT,A1)
+
+PROTOCCALLSFSUB5(TREVNI,trevni,INTV,INT,PINT,INT,PINT)
+#define TREVNI(A1,A2,A3,A4,A5)  CCALLSFSUB5(TREVNI,trevni,INTV,INT,PINT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(TRICOF,tricof,PFLOAT,INT,PFLOAT,INT,PFLOAT,INT,INT)
+#define TRICOF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(TRICOF,tricof,PFLOAT,INT,PFLOAT,INT,PFLOAT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB11(TSTEXT,tstext,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,PINT,INT,PINT,PDOUBLE,PDOUBLE)
+#define TSTEXT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(TSTEXT,tstext,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,DOUBLE,PINT,INT,PINT,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB19(TSTURM,tsturm,INT,INT,FLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,PFLOAT,INT,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define TSTURM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)  CCALLSFSUB19(TSTURM,tsturm,INT,INT,FLOAT,FLOATV,FLOATV,PFLOAT,PFLOAT,PFLOAT,INT,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19)
+
+PROTOCCALLSFSUB3(TUP,tup,INTV,INT,INT)
+#define TUP(A1,A2,A3)  CCALLSFSUB3(TUP,tup,INTV,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(U100DV,u100dv,INTV,INTV,PINT)
+#define U100DV(A1,A2,A3)  CCALLSFSUB3(U100DV,u100dv,INTV,INTV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(U100FC,u100fc,INT,PINT)
+#define U100FC(A1,A2)  CCALLSFSUB2(U100FC,u100fc,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB3(U100PM,u100pm,INTV,PINT,PINT)
+#define U100PM(A1,A2,A3)  CCALLSFSUB3(U100PM,u100pm,INTV,PINT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(U100PR,u100pr,PINT,PINT,PINT)
+#define U100PR(A1,A2,A3)  CCALLSFSUB3(U100PR,u100pr,PINT,PINT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(USRINT,usrint,FLOAT,FLOAT,INT,FLOAT,INT,FLOAT)
+#define USRINT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(USRINT,usrint,FLOAT,FLOAT,INT,FLOAT,INT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(VAVSET,vavset,FLOAT,FLOAT,INT)
+#define VAVSET(A1,A2,A3)  CCALLSFSUB3(VAVSET,vavset,FLOAT,FLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(VAVZRO,vavzro,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,INT)
+#define VAVZRO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(VAVZRO,vavzro,FLOAT,FLOAT,PFLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(VD01A,vd01a,PINT,PFLOAT,PFLOAT,INT,FLOAT,FLOAT,FLOAT)
+#define VD01A(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(VD01A,vd01a,PINT,PFLOAT,PFLOAT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(VVISET,vviset,FLOAT,FLOAT,INT,PFLOAT,PFLOAT)
+#define VVISET(A1,A2,A3,A4,A5)  CCALLSFSUB5(VVISET,vviset,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(WHENEQ,wheneq,INT,INTV,INT,INT,PINT,PINT)
+#define WHENEQ(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENEQ,wheneq,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENFGE,whenfge,INT,FLOATV,INT,FLOAT,PINT,PINT)
+#define WHENFGE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENFGE,whenfge,INT,FLOATV,INT,FLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENFGT,whenfgt,INT,FLOATV,INT,FLOAT,PINT,PINT)
+#define WHENFGT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENFGT,whenfgt,INT,FLOATV,INT,FLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENFLE,whenfle,INT,FLOATV,INT,FLOAT,PINT,PINT)
+#define WHENFLE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENFLE,whenfle,INT,FLOATV,INT,FLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENFLT,whenflt,INT,FLOATV,INT,FLOAT,PINT,PINT)
+#define WHENFLT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENFLT,whenflt,INT,FLOATV,INT,FLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENIGE,whenige,INT,INTV,INT,INT,PINT,PINT)
+#define WHENIGE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENIGE,whenige,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENIGT,whenigt,INT,INTV,INT,INT,PINT,PINT)
+#define WHENIGT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENIGT,whenigt,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENILE,whenile,INT,INTV,INT,INT,PINT,PINT)
+#define WHENILE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENILE,whenile,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENILT,whenilt,INT,INTV,INT,INT,PINT,PINT)
+#define WHENILT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENILT,whenilt,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(WHENNE,whenne,INT,INTV,INT,INT,PINT,PINT)
+#define WHENNE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(WHENNE,whenne,INT,INTV,INT,INT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT)
+#define ZEROX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
Index: trunk/SophyaExt/CodeMinuit/cfortran/graflib.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/graflib.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/graflib.h	(revision 2403)
@@ -0,0 +1,2 @@
+#include "higz.h"
+#include "hplot.h"
Index: trunk/SophyaExt/CodeMinuit/cfortran/hbook.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/hbook.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/hbook.h	(revision 2403)
@@ -0,0 +1,569 @@
+/*
+ Corrections:
+ 14-Dec-98 OC The definition of HFITHN was wrong
+ 11-Dec-98 OC mods in HUNPAK HUNPKE HREBIN: PFLOAT is now FLOATV
+ 02-Feb-98 OC mods for HBNAME
+ 30-Jan-98 OC HID1 HID2 were not correct
+ 30-Jan-98 OC HRENDC added
+ 15-Feb-94 GF HGIVE correct output args
+              HGIVEN idem
+ 18-Feb-94 GF comment headers for routines with more than 10 Arguments
+              and break long lines by \ (for the VAX)
+ -------------above carried over from previous file on 15-Mar-94
+ 11-Apr-94 GF remove ALL occurences of ZTRING (these are not used so far)
+              correct HOPEN, HROUT calls
+ 21-Apr-94 GF restore PROTOCCALLSFFUNi lines for functions.
+ 18-May-94 GF correct passing of external functions, must use ROUTINE
+ further comments kept in RCS/CVS
+ 12-Apr-95 GF delete all non documented routines; this should give a more 
+              version for this file.
+---------------------------------------
+*/
+
+PROTOCCALLSFSUB3(HARRAY,harray,INT,INT,PINT)
+#define HARRAY(A1,A2,A3)  CCALLSFSUB3(HARRAY,harray,INT,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HBANDX,hbandx,INT,FLOAT,FLOAT,FLOAT)
+#define HBANDX(A1,A2,A3,A4)  CCALLSFSUB4(HBANDX,hbandx,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HBANDY,hbandy,INT,FLOAT,FLOAT,FLOAT)
+#define HBANDY(A1,A2,A3,A4)  CCALLSFSUB4(HBANDY,hbandy,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(HBARX,hbarx,INT)
+#define HBARX(A1)  CCALLSFSUB1(HBARX,hbarx,INT,A1)
+
+PROTOCCALLSFSUB1(HBARY,hbary,INT)
+#define HBARY(A1)  CCALLSFSUB1(HBARY,hbary,INT,A1)
+
+PROTOCCALLSFSUB6(HBFUN1,hbfun1,INT,STRING,INT,FLOAT,FLOAT,ROUTINE)
+#define HBFUN1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HBFUN1,hbfun1,INT,STRING,INT,FLOAT,FLOAT,ROUTINE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB9(HBFUN2,hbfun2,INT,STRING,INT,FLOAT,FLOAT,INT,FLOAT,FLOAT,ROUTINE)
+#define HBFUN2(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(HBFUN2,hbfun2,INT,STRING,INT,FLOAT,FLOAT,INT,FLOAT,FLOAT,ROUTINE,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB2(HBIGBI,hbigbi,INT,INT)
+#define HBIGBI(A1,A2)  CCALLSFSUB2(HBIGBI,hbigbi,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(HRENID,hrenid,INT,INT)
+#define HRENID(A1,A2)  CCALLSFSUB2(HRENID,hrenid,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB1(HBINSZ,hbinsz,STRING)
+#define HBINSZ(A1)  CCALLSFSUB1(HBINSZ,hbinsz,STRING,A1)
+
+PROTOCCALLSFSUB4(HBNAMC,hbnamc,INT,STRING,PSTRINGV,STRING)
+#define HBNAMC(A1,A2,A3,A4)  CCALLSFSUB4(HBNAMC,hbnamc,INT,STRING,PSTRINGV,STRING,A1,A2,A3,A4)
+
+#ifndef PSTRUCT_cfV
+#define PSTRUCT_cfV(  T,A,B,F)       SIMPLE_cfV(T,A,B,F)
+#define PSTRUCT_cfSEP(T,  B)         SIMPLE_cfSEP(T,B)
+#define PSTRUCT_cfINT(N,A,B,X,Y,Z)   SIMPLE_cfINT(N,A,B,X,Y,Z)
+#define PSTRUCT_cfSTR(N,T,A,B,C,D,E) SIMPLE_cfSTR(N,T,A,B,C,D,E)
+#define PSTRUCT_cfCC( T,A,B)         SIMPLE_cfCC(T,A,B)
+#define PSTRUCT_cfAA( T,A,B)         PSTRUCT_cfB(T,A)   /* Argument B not used. */
+#define PSTRUCT_cfU(  T,A)         PSTRUCT_cfN(T,A)
+#define PSTRUCT_cfN(  T,A)        void *A
+#define PSTRUCT_cfB(  T,A)       (void *) &(A)
+#endif
+
+PROTOCCALLSFSUB4(HBNAME,hbname,INT,STRING,PSTRUCT,STRING)
+#define HBNAME(A1,A2,A3,A4) CCALLSFSUB4(HBNAME,hbname,INT,STRING,PSTRUCT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(HBNT,hbnt,INT,STRING,STRING)
+#define HBNT(A1,A2,A3)  CCALLSFSUB3(HBNT,hbnt,INT,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HNTDUP,hntdup,INT,INT,INT,STRING,STRING)
+#define HNTDUP(A1,A2,A3,A4,A5)  CCALLSFSUB5(HNTDUP,hntdup,INT,INT,INT,STRING,STRING,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(HBOOKB,hbookb,INT,STRING,INT,FLOATV,FLOAT)
+#define HBOOKB(A1,A2,A3,A4,A5)  CCALLSFSUB5(HBOOKB,hbookb,INT,STRING,INT,FLOATV,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(HBOOKN,hbookn,INT,STRING,INT,STRING,INT,STRINGV)
+#define HBOOKN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HBOOKN,hbookn,INT,STRING,INT,STRING,INT,STRINGV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(HBOOK1,hbook1,INT,STRING,INT,FLOAT,FLOAT,FLOAT)
+#define HBOOK1(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HBOOK1,hbook1,INT,STRING,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB9(HBOOK2,hbook2,INT,STRING,INT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT)
+#define HBOOK2(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(HBOOK2,hbook2,INT,STRING,INT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB2(HBPRO,hbpro,INT,FLOAT)
+#define HBPRO(A1,A2)  CCALLSFSUB2(HBPRO,hbpro,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB8(HBPROF,hbprof,INT,STRING,INT,FLOAT,FLOAT,FLOAT,FLOAT,STRING)
+#define HBPROF(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HBPROF,hbprof,INT,STRING,INT,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB2(HBPROX,hbprox,INT,FLOAT)
+#define HBPROX(A1,A2)  CCALLSFSUB2(HBPROX,hbprox,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(HBPROY,hbproy,INT,FLOAT)
+#define HBPROY(A1,A2)  CCALLSFSUB2(HBPROY,hbproy,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(HBSET,hbset,STRING,INT,PINT)
+#define HBSET(A1,A2,A3)  CCALLSFSUB3(HBSET,hbset,STRING,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HBSLIX,hbslix,INT,INT,FLOAT)
+#define HBSLIX(A1,A2,A3)  CCALLSFSUB3(HBSLIX,hbslix,INT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HBSLIY,hbsliy,INT,INT,FLOAT)
+#define HBSLIY(A1,A2,A3)  CCALLSFSUB3(HBSLIY,hbsliy,INT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(HCDIR,hcdir,PSTRING,STRING)
+#define HCDIR(A1,A2)  CCALLSFSUB2(HCDIR,hcdir,PSTRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB2(HCOMPA,hcompa,INTV,INT)
+#define HCOMPA(A1,A2)  CCALLSFSUB2(HCOMPA,hcompa,INTV,INT,A1,A2)
+
+PROTOCCALLSFSUB3(HCOPY,hcopy,INT,INT,STRING)
+#define HCOPY(A1,A2,A3)  CCALLSFSUB3(HCOPY,hcopy,INT,INT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB8(HCOPYR,hcopyr,INT,INT,STRING,INT,INT,INT,INT,STRING)
+#define HCOPYR(A1,A2,A3,A4,A5,A7,A8)  CCALLSFSUB8(HCOPYR,hcopyr,INT,INT,STRING,INT,INT,INT,INT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(HCOPYM,hcopym,INT,INTV,INT)
+#define HCOPYM(A1,A2,A3)  CCALLSFSUB3(HCOPYM,hcopym,INT,INTV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(HDELET,hdelet,INT)
+#define HDELET(A1)  CCALLSFSUB1(HDELET,hdelet,INT,A1)
+
+PROTOCCALLSFSUB1(HDERIV,hderiv,FLOATV)
+#define HDERIV(A1)  CCALLSFSUB1(HDERIV,hderiv,FLOATV,A1)
+
+PROTOCCALLSFSUB4(HDIFF,hdiff,INT,INT,PFLOAT,STRING)
+#define HDIFF(A1,A2,A3,A4)  CCALLSFSUB4(HDIFF,hdiff,INT,INT,PFLOAT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(HDIFFB,hdiffb,INT,INT,FLOAT,INT,STRING,INT,FLOATV)
+#define HDIFFB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HDIFFB,hdiffb,INT,INT,FLOAT,INT,STRING,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(HDUMP,hdump,INT)
+#define HDUMP(A1)  CCALLSFSUB1(HDUMP,hdump,INT,A1)
+
+PROTOCCALLSFSUB1(HERMES,hermes,INT)
+#define HERMES(A1)  CCALLSFSUB1(HERMES,hermes,INT,A1)
+
+PROTOCCALLSFSUB7(HFC2,hfc2,INT,INT,STRING,INT,STRING,FLOAT,STRING)
+#define HFC2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HFC2,hfc2,INT,INT,STRING,INT,STRING,FLOAT,STRING,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(HFF1,hff1,INT,PINT,FLOAT,FLOAT)
+#define HFF1(A1,A2,A3,A4)  CCALLSFSUB4(HFF1,hff1,INT,PINT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(HFF2,hff2,INT,PINT,FLOAT,FLOAT,FLOAT)
+#define HFF2(A1,A2,A3,A4,A5)  CCALLSFSUB5(HFF2,hff2,INT,PINT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(HFILL,hfill,INT,FLOAT,FLOAT,FLOAT)
+#define HFILL(A1,A2,A3,A4)  CCALLSFSUB4(HFILL,hfill,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(HFINAM,hfinam,INT,STRINGV,INT)
+#define HFINAM(A1,A2,A3)  CCALLSFSUB3(HFINAM,hfinam,INT,STRINGV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(HFITEX,hfitex,INT,PFLOAT,PFLOAT,PFLOAT,INT,FLOATV)
+#define HFITEX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HFITEX,hfitex,INT,PFLOAT,PFLOAT,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(HFITGA,hfitga,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,INT,FLOATV)
+#define HFITGA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HFITGA,hfitga,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB10(HFITH,hfith,INT,ROUTINE,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT)
+#define HFITH(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(HFITH,hfith,INT,ROUTINE,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB10(HFITHN,hfithn,INT,STRING,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT)
+#define HFITHN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(HFITHN,hfithn,INT,STRING,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB11(HFITL,hfitl,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,FLOATV)
+#define HFITL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(HFITL,hfitl,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB16(HFITN,hfitn,PFLOAT,FLOATV,FLOATV,INT,INT,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,FLOATV)
+#define HFITN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)  CCALLSFSUB16(HFITN,hfitn,PFLOAT,FLOATV,FLOATV,INT,INT,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16)
+
+PROTOCCALLSFSUB6(HFITPO,hfitpo,INT,INT,FLOATV,PFLOAT,INT,FLOATV)
+#define HFITPO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HFITPO,hfitpo,INT,INT,FLOATV,PFLOAT,INT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(HFITS,hfits,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT)
+#define HFITS(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HFITS,hfits,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB15(HFITV,hfitv,INT,INT,INT,PFLOAT,FLOATV,FLOATV,ROUTINE,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,PFLOAT)
+#define HFITV(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)  CCALLSFSUB15(HFITV,hfitv,INT,INT,INT,PFLOAT,FLOATV,FLOATV,ROUTINE,STRING,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15)
+
+PROTOCCALLSFSUB10(HFIT1,hfit1,FLOATV,FLOATV,FLOATV,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT)
+#define HFIT1(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(HFIT1,hfit1,FLOATV,FLOATV,FLOATV,INT,ROUTINE,INT,DOUBLEV,PFLOAT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB2(HFN,hfn,INT,FLOATV)
+#define HFN(A1,A2)  CCALLSFSUB2(HFN,hfn,INT,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB1(HFNT,hfnt,INT)
+#define HFNT(A1)  CCALLSFSUB1(HFNT,hfnt,INT,A1)
+
+PROTOCCALLSFSUB2(HFNTB,hfntb,INT,STRING)
+#define HFNTB(A1,A2)  CCALLSFSUB2(HFNTB,hfntb,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB4(HFPAK1,hfpak1,INT,PINT,FLOATV,INT)
+#define HFPAK1(A1,A2,A3,A4)  CCALLSFSUB4(HFPAK1,hfpak1,INT,PINT,FLOATV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(HFUNC,hfunc,INT,ROUTINE)
+#define HFUNC(A1,A2)  CCALLSFSUB2(HFUNC,hfunc,INT,ROUTINE,A1,A2)
+
+PROTOCCALLSFSUB3(HF1,hf1,INT,FLOAT,FLOAT)
+#define HF1(A1,A2,A3)  CCALLSFSUB3(HF1,hf1,INT,FLOAT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HF2,hf2,INT,FLOAT,FLOAT,FLOAT)
+#define HF2(A1,A2,A3,A4)  CCALLSFSUB4(HF2,hf2,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(HGFIT,hgfit,INT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PSTRINGV)
+#define HGFIT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HGFIT,hgfit,INT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PSTRINGV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB10(HGIVE,hgive,INT,PSTRING,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PINT,PINT)
+#define HGIVE(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(HGIVE,hgive,INT,PSTRING,PINT,PFLOAT,PFLOAT,PINT,PFLOAT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB6(HGIVEN,hgiven,INT,PSTRING,PINT,PSTRINGV,FLOATV,FLOATV)
+#define HGIVEN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HGIVEN,hgiven,INT,PSTRING,PINT,PSTRINGV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(HKIND,hkind,INT,INTV,STRING)
+#define HKIND(A1,A2,A3)  CCALLSFSUB3(HKIND,hkind,INT,INTV,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HGN,hgn,INT,PINT,INT,FLOATV,PINT)
+#define HGN(A1,A2,A3,A4,A5)  CCALLSFSUB5(HGN,hgn,INT,PINT,INT,FLOATV,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(HGNF,hgnf,INT,INT,PFLOAT,PINT)
+#define HGNF(A1,A2,A3,A4)  CCALLSFSUB4(HGNF,hgnf,INT,INT,PFLOAT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(HGNPAR,hgnpar,INT,STRING)
+#define HGNPAR(A1,A2)  CCALLSFSUB2(HGNPAR,hgnpar,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB3(HGNT,hgnt,INT,INT,INT)
+#define HGNT(A1,A2,A3)  CCALLSFSUB3(HGNT,hgnt,INT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HGNTB,hgntb,INT,STRING,INT,INT)
+#define HGNTB(A1,A2,A3,A4)  CCALLSFSUB4(HGNTB,hgntb,INT,STRING,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(HGNTF,hgntf,INT,INT,PINT)
+#define HGNTF(A1,A2,A3)  CCALLSFSUB3(HGNTF,hgntf,INT,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HGNTV,hgntv,INT,STRINGV,INT,INT,INT)
+#define HGNTV(A1,A2,A3,A4,A5)  CCALLSFSUB5(HGNTV,hgntv,INT,STRINGV,INT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB2(HIDALL,hidall,INTV,PINT)
+#define HIDALL(A1,A2)  CCALLSFSUB2(HIDALL,hidall,INTV,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(HIDOPT,hidopt,INT,STRING)
+#define HIDOPT(A1,A2)  CCALLSFSUB2(HIDOPT,hidopt,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB2(HID1,hid1,INTV,PINT)
+#define HID1(A1,A2)  CCALLSFSUB2(HID1,hid1,INTV,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(HID2,hid2,INTV,PINT)
+#define HID2(A1,A2)  CCALLSFSUB2(HID2,hid2,INTV,PINT,A1,A2)
+
+PROTOCCALLSFSUB5(HIJXY,hijxy,INT,INT,INT,PFLOAT,PFLOAT)
+#define HIJXY(A1,A2,A3,A4,A5)  CCALLSFSUB5(HIJXY,hijxy,INT,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB0(HINDEX,hindex)
+#define HINDEX() CCALLSFSUB0(HINDEX,hindex)
+
+PROTOCCALLSFSUB4(HIPAK1,hipak1,INT,PINT,INTV,INT)
+#define HIPAK1(A1,A2,A3,A4)  CCALLSFSUB4(HIPAK1,hipak1,INT,PINT,INTV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(HISTDO,histdo)
+#define HISTDO() CCALLSFSUB0(HISTDO,histdo)
+
+PROTOCCALLSFSUB3(HIX,hix,INT,INT,PFLOAT)
+#define HIX(A1,A2,A3)  CCALLSFSUB3(HIX,hix,INT,INT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HLABEL,hlabel,INT,INT,STRINGV,STRING)
+#define HLABEL(A1,A2,A3,A4)  CCALLSFSUB4(HLABEL,hlabel,INT,INT,STRINGV,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(HLDIR,hldir,STRING,STRING)
+#define HLDIR(A1,A2)  CCALLSFSUB2(HLDIR,hldir,STRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB1(HLIMIT,hlimit,INT)
+#define HLIMIT(A1)  CCALLSFSUB1(HLIMIT,hlimit,INT,A1)
+
+PROTOCCALLSFSUB4(HLNEXT,hlnext,PINT,PSTRING,PSTRING,STRING)
+#define HLNEXT(A1,A2,A3,A4)  CCALLSFSUB4(HLNEXT,hlnext,PINT,PSTRING,PSTRING,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(HLOCAT,hlocat,INT,PINT)
+#define HLOCAT(A1,A2)  CCALLSFSUB2(HLOCAT,hlocat,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(HMAXIM,hmaxim,INT,FLOAT)
+#define HMAXIM(A1,A2)  CCALLSFSUB2(HMAXIM,hmaxim,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(HMDIR,hmdir,STRING,STRING)
+#define HMDIR(A1,A2)  CCALLSFSUB2(HMDIR,hmdir,STRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB2(HMINIM,hminim,INT,FLOAT)
+#define HMINIM(A1,A2)  CCALLSFSUB2(HMINIM,hminim,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(HNOENT,hnoent,INT,PINT)
+#define HNOENT(A1,A2)  CCALLSFSUB2(HNOENT,hnoent,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(HNORMA,hnorma,INT,FLOAT)
+#define HNORMA(A1,A2)  CCALLSFSUB2(HNORMA,hnorma,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB6(HOPERA,hopera,INT,STRING,INT,INT,FLOAT,FLOAT)
+#define HOPERA(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HOPERA,hopera,INT,STRING,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(HOUTPU,houtpu,INT)
+#define HOUTPU(A1)  CCALLSFSUB1(HOUTPU,houtpu,INT,A1)
+
+PROTOCCALLSFSUB1(HPAGSZ,hpagsz,INT)
+#define HPAGSZ(A1)  CCALLSFSUB1(HPAGSZ,hpagsz,INT,A1)
+
+PROTOCCALLSFSUB2(HPAK,hpak,INT,FLOATV)
+#define HPAK(A1,A2)  CCALLSFSUB2(HPAK,hpak,INT,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB2(HPAKAD,hpakad,INT,FLOATV)
+#define HPAKAD(A1,A2)  CCALLSFSUB2(HPAKAD,hpakad,INT,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB2(HPAKE,hpake,INT,FLOATV)
+#define HPAKE(A1,A2)  CCALLSFSUB2(HPAKE,hpake,INT,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB7(HPARAM,hparam,INT,INT,FLOAT,INTV,PDOUBLE,PINT,PINT)
+#define HPARAM(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HPARAM,hparam,INT,INT,FLOAT,INTV,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB11(HPARMN,hparmn,PFLOAT,FLOATV,FLOATV,INT,INT,INT,FLOAT,INTV,PDOUBLE,PINT,PINT)
+#define HPARMN(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(HPARMN,hparmn,PFLOAT,FLOATV,FLOATV,INT,INT,INT,FLOAT,INTV,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB2(HPCHAR,hpchar,INTV,INTV)
+#define HPCHAR(A1,A2)  CCALLSFSUB2(HPCHAR,hpchar,INTV,INTV,A1,A2)
+
+PROTOCCALLSFSUB2(HPDIR,hpdir,STRING,STRING)
+#define HPDIR(A1,A2)  CCALLSFSUB2(HPDIR,hpdir,STRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB3(HPHIST,hphist,INT,STRING,INT)
+#define HPHIST(A1,A2,A3)  CCALLSFSUB3(HPHIST,hphist,INT,STRING,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(HPHS,hphs,INT)
+#define HPHS(A1)  CCALLSFSUB1(HPHS,hphs,INT,A1)
+
+PROTOCCALLSFSUB1(HPHST,hphst,INT)
+#define HPHST(A1)  CCALLSFSUB1(HPHST,hphst,INT,A1)
+
+PROTOCCALLSFSUB0(HPONCE,hponce)
+#define HPONCE() CCALLSFSUB0(HPONCE,hponce)
+
+PROTOCCALLSFSUB1(HPRINT,hprint,INT)
+#define HPRINT(A1)  CCALLSFSUB1(HPRINT,hprint,INT,A1)
+
+PROTOCCALLSFSUB1(HPRNT,hprnt,INT)
+#define HPRNT(A1)  CCALLSFSUB1(HPRNT,hprnt,INT,A1)
+
+PROTOCCALLSFSUB7(HPROJ1,hproj1,INT,INT,INT,ROUTINE,INT,INT,INT)
+#define HPROJ1(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HPROJ1,hproj1,INT,INT,INT,ROUTINE,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB8(HPROJ2,hproj2,INT,INT,INT,ROUTINE,INT,INT,INT,INT)
+#define HPROJ2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HPROJ2,hproj2,INT,INT,INT,ROUTINE,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(HPROT,hprot,INT,STRING,INT)
+#define HPROT(A1,A2,A3)  CCALLSFSUB3(HPROT,hprot,INT,STRING,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(HPSCAT,hpscat,INT)
+#define HPSCAT(A1)  CCALLSFSUB1(HPSCAT,hpscat,INT,A1)
+
+PROTOCCALLSFSUB1(HPTAB,hptab,INT)
+#define HPTAB(A1)  CCALLSFSUB1(HPTAB,hptab,INT,A1)
+
+PROTOCCALLSFSUB11(HQUAD,hquad,INT,STRING,INT,FLOAT,FLOAT,PINT,PFLOAT,PINT,PFLOAT,PFLOAT,PINT)
+#define HQUAD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(HQUAD,hquad,INT,STRING,INT,FLOAT,FLOAT,PINT,PFLOAT,PINT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB3(HRDIR,hrdir,INT,PSTRINGV,PINT)
+#define HRDIR(A1,A2,A3)  CCALLSFSUB3(HRDIR,hrdir,INT,PSTRINGV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB8(HREBIN,hrebin,INT,FLOATV,FLOATV,FLOATV,FLOATV,INT,INT,INT)
+#define HREBIN(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HREBIN,hrebin,INT,FLOATV,FLOATV,FLOATV,FLOATV,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB2(HRECOV,hrecov,INT,STRING)
+#define HRECOV(A1,A2)  CCALLSFSUB2(HRECOV,hrecov,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB1(HREND,hrend,STRING)
+#define HREND(A1)  CCALLSFSUB1(HREND,hrend,STRING,A1)
+
+PROTOCCALLSFSUB1(HRENDC,hrendc,STRING)
+#define HRENDC(A1)  CCALLSFSUB1(HRENDC,hrendc,STRING,A1)
+
+PROTOCCALLSFSUB2(HRESET,hreset,INT,STRING)
+#define HRESET(A1,A2)  CCALLSFSUB2(HRESET,hreset,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB3(HRFILE,hrfile,INT,STRING,STRING)
+#define HRFILE(A1,A2,A3)  CCALLSFSUB3(HRFILE,hrfile,INT,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HRGET,hrget,INT,STRING,STRING)
+#define HRGET(A1,A2,A3)  CCALLSFSUB3(HRGET,hrget,INT,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HRIN,hrin,INT,INT,INT)
+#define HRIN(A1,A2,A3)  CCALLSFSUB3(HRIN,hrin,INT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HRNDM2,hrndm2,INT,PFLOAT,PFLOAT)
+#define HRNDM2(A1,A2,A3)  CCALLSFSUB3(HRNDM2,hrndm2,INT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(HROPEN,hropen,INT,STRING,STRING,STRING,PINT,PINT)
+#define HROPEN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HROPEN,hropen,INT,STRING,STRING,STRING,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(HROUT,hrout,INT,PINT,STRING)
+#define HROUT(A1,A2,A3)  CCALLSFSUB3(HROUT,hrout,INT,PINT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HRPUT,hrput,INT,STRING,STRING)
+#define HRPUT(A1,A2,A3)  CCALLSFSUB3(HRPUT,hrput,INT,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB2(HSCALE,hscale,INT,FLOAT)
+#define HSCALE(A1,A2)  CCALLSFSUB2(HSCALE,hscale,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(HSCR,hscr,INT,INT,STRING)
+#define HSCR(A1,A2,A3)  CCALLSFSUB3(HSCR,hscr,INT,INT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB2(HSETPR,hsetpr,STRING,FLOAT)
+#define HSETPR(A1,A2)  CCALLSFSUB2(HSETPR,hsetpr,STRING,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(HSMOOF,hsmoof,INT,INT,FLOAT)
+#define HSMOOF(A1,A2,A3)  CCALLSFSUB3(HSMOOF,hsmoof,INT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HSPLI1,hspli1,INT,INT,INT,INT,PFLOAT)
+#define HSPLI1(A1,A2,A3,A4,A5)  CCALLSFSUB5(HSPLI1,hspli1,INT,INT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(HSPLI2,hspli2,INT,INT,INT,INT,INT)
+#define HSPLI2(A1,A2,A3,A4,A5)  CCALLSFSUB5(HSPLI2,hspli2,INT,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(HSQUEZ,hsquez,STRING)
+#define HSQUEZ(A1)  CCALLSFSUB1(HSQUEZ,hsquez,STRING,A1)
+
+PROTOCCALLSFSUB1(HTITLE,htitle,STRING)
+#define HTITLE(A1)  CCALLSFSUB1(HTITLE,htitle,STRING,A1)
+
+PROTOCCALLSFSUB4(HUNPAK,hunpak,INT,FLOATV,STRING,INT)
+#define HUNPAK(A1,A2,A3,A4)  CCALLSFSUB4(HUNPAK,hunpak,INT,FLOATV,STRING,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HUNPKE,hunpke,INT,FLOATV,STRING,INT)
+#define HUNPKE(A1,A2,A3,A4)  CCALLSFSUB4(HUNPKE,hunpke,INT,FLOATV,STRING,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(HUWFUN,huwfun,INT,INT,STRING,INT,STRING)
+#define HUWFUN(A1,A2,A3,A4,A5)  CCALLSFSUB5(HUWFUN,huwfun,INT,INT,STRING,INT,STRING,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(HXI,hxi,INT,FLOAT,PINT)
+#define HXI(A1,A2,A3)  CCALLSFSUB3(HXI,hxi,INT,FLOAT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HXYIJ,hxyij,INT,FLOAT,FLOAT,PINT,PINT)
+#define HXYIJ(A1,A2,A3,A4,A5)  CCALLSFSUB5(HXYIJ,hxyij,INT,FLOAT,FLOAT,PINT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(LOGICAL,HEXIST,hexist,INT)
+#define HEXIST(A2)  CCALLSFFUN1(HEXIST,hexist,INT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,HI,hi,INT,INT)
+#define HI(A2,A3)  CCALLSFFUN2(HI,hi,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,HIE,hie,INT,INT)
+#define HIE(A2,A3)  CCALLSFFUN2(HIE,hie,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,HIF,hif,INT,INT)
+#define HIF(A2,A3)  CCALLSFFUN2(HIF,hif,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN3(FLOAT,HIJ,hij,INT,INT,INT)
+#define HIJ(A2,A3,A4)  CCALLSFFUN3(HIJ,hij,INT,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,HIJE,hije,INT,INT,INT)
+#define HIJE(A2,A3,A4)  CCALLSFFUN3(HIJE,hije,INT,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN1(FLOAT,HMAX,hmax,INT)
+#define HMAX(A2)  CCALLSFFUN1(HMAX,hmax,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,HMIN,hmin,INT)
+#define HMIN(A2)  CCALLSFFUN1(HMIN,hmin,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,HRNDM1,hrndm1,INT)
+#define HRNDM1(A2)  CCALLSFFUN1(HRNDM1,hrndm1,INT,A2)
+
+PROTOCCALLSFFUN4(FLOAT,HSPFUN,hspfun,INT,FLOAT,INT,INT)
+#define HSPFUN(A2,A3,A4,A5)  CCALLSFFUN4(HSPFUN,hspfun,INT,FLOAT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(FLOAT,HSTATI,hstati,INT,INT,STRING,INT)
+#define HSTATI(A2,A3,A4,A5)  CCALLSFFUN4(HSTATI,hstati,INT,INT,STRING,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(FLOAT,HSUM,hsum,INT)
+#define HSUM(A2)  CCALLSFFUN1(HSUM,hsum,INT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,HX,hx,INT,FLOAT)
+#define HX(A2,A3)  CCALLSFFUN2(HX,hx,INT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,HXE,hxe,INT,FLOAT)
+#define HXE(A2,A3)  CCALLSFFUN2(HXE,hxe,INT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN3(FLOAT,HXY,hxy,INT,FLOAT,FLOAT)
+#define HXY(A2,A3,A4)  CCALLSFFUN3(HXY,hxy,INT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT)
+#define HBALLOC(IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE)\
+        CCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE)
+
+PROTOCCALLSFSUB1(HBFREE,hbfree,INT)
+#define HBFREE(LUN) CCALLSFSUB1(HBFREE,hbfree,INT,LUN)
+
+PROTOCCALLSFSUB1(HBINIT1,hbinit1,INT)
+#define HBINIT1(IFLAG) CCALLSFSUB1(HBINIT1,hbinit1,INT,IFLAG)
+
+PROTOCCALLSFSUB0(HDCOFL,hdcofl)
+#define HDCOFL() CCALLSFSUB0(HDCOFL,hdcofl)
+
+PROTOCCALLSFSUB4(HF1N,hf1n,INT,FLOATV,FLOATV,INT)
+#define HF1N(ID,X,W,NEVT) CCALLSFSUB4(HF1N,hf1n,INT,FLOATV,FLOATV,INT,ID,X,W,NEVT)
+
+PROTOCCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,INTV,INT,INT,PINT)
+/* fix the element length of VAR to 32 */
+#define hgntbf_ELEMS_2          ZTRINGV_ARGS(4)
+#define hgntbf_ELEMLEN_2        ZTRINGV_NUM(32)
+#define HGNTBF(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)\
+        CCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,INTV,INT,INT,PINT,IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)
+
+PROTOCCALLSFSUB1(HGTDIR,hgtdir,PSTRING)
+#define HGTDIR(CHDIR) CCALLSFSUB1(HGTDIR,hgtdir,PSTRING,CHDIR)
+
+PROTOCCALLSFFUN2(LOGICAL,HLABEQ,hlabeq,INT,STRING)
+#define HLABEQ(IDD,CHOPT) CCALLSFFUN2(HLABEQ,hlabeq,INT,STRING,IDD,CHOPT)
+
+PROTOCCALLSFFUN2(INT,HLABNB,hlabnb,INT,STRING)
+#define HLABNB(IDD,CHOPT) CCALLSFFUN2(HLABNB,hlabnb,INT,STRING,IDD,CHOPT)
+
+PROTOCCALLSFSUB4(HLGNXT,hlgnxt,INT,INT,PSTRING,STRING)
+#define HLGNXT(IDD,IPOS,CHLAB,CHOPT) CCALLSFSUB4(HLGNXT,hlgnxt,INT,INT,PSTRING,STRING,IDD,IPOS,CHLAB,CHOPT)
+
+PROTOCCALLSFSUB2(HLOGPF,hlogpf,STRING,PINT)
+#define HLOGPF(CHHEAD,ISTAT) CCALLSFSUB2(HLOGPF,hlogpf,STRING,PINT,CHHEAD,ISTAT)
+
+PROTOCCALLSFSUB4(HNTDIM,hntdim,STRING,PINT,INTV,INT)
+#define HNTDIM(TVAR,NVDIM,IVDIM,MXVDIM) CCALLSFSUB4(HNTDIM,hntdim,STRING,PINT,INTV,INT,TVAR,NVDIM,IVDIM,MXVDIM)
+
+PROTOCCALLSFSUB7(HNTGET,hntget,INT,STRING,PINT,PINT,PINT,PINT,PINT)
+#define HNTGET(ID1,TVAR,INDX,ITYPE,ISIZE,IELEM,IER)\
+        CCALLSFSUB7(HNTGET,hntget,INT,STRING,PINT,PINT,PINT,PINT,PINT,ID1,TVAR,INDX,ITYPE,ISIZE,IELEM,IER)
+
+PROTOCCALLSFSUB8(HNTGETI,hntgeti,INT,INT,INT,PSTRING,PINT,PINT,PINT,PINT)
+#define HNTGETI(ID1,ICOM,INDX,TVAR,ITYPE,ISIZE,IELEM,IER)\
+        CCALLSFSUB8(HNTGETI,hntgeti,INT,INT,INT,PSTRING,PINT,PINT,PINT,PINT,ID1,ICOM,INDX,TVAR,ITYPE,ISIZE,IELEM,IER)
+
+PROTOCCALLSFFUN1(LOGICAL,HNTNEW,hntnew,INT)
+#define HNTNEW(IDN) CCALLSFFUN1(HNTNEW,hntnew,INT,IDN)
+
+PROTOCCALLSFSUB4(HNTRNG,hntrng,STRING,PINT,PINT,PINT)
+#define HNTRNG(TVAR,ILOW,IUP,IERR) CCALLSFSUB4(HNTRNG,hntrng,STRING,PINT,PINT,PINT,TVAR,ILOW,IUP,IERR)
+
+PROTOCCALLSFSUB8(HNTVAR,hntvar,INT,INT,PSTRING,PSTRING,PINT,PINT,PINT,PINT)
+#define HNTVAR(ID1,IVAR,CHTAG,BLOCK,NSUB,ITYPE,ISIZE,IELEM) \
+        CCALLSFSUB8(HNTVAR,hntvar,INT,INT,PSTRING,PSTRING,PINT,PINT,PINT,PINT,ID1,IVAR,CHTAG,BLOCK,NSUB,ITYPE,ISIZE,IELEM)
+
+PROTOCCALLSFSUB4(HRNGPF,hrngpf,INT,INT,PINT,PINT)
+#define HRNGPF(NSLAV,MYSID,IFIRST,ITO) \
+	CCALLSFSUB4(HRNGPF,hrngpf,INT,INT,PINT,PINT,NSLAV,MYSID,IFIRST,ITO)
+	
+PROTOCCALLSFSUB6(HVXIST,hvxist,STRING,PSTRING,PSTRING,PINT,PINT,PINT)
+#define HVXIST(TVAR,BLOCK,CIVAR,ITYPE,ISIZE,IELEM) \
+	CCALLSFSUB6(HVXIST,hvxist,STRING,PSTRING,PSTRING,PINT,PINT,PINT,\
+	TVAR,BLOCK,CIVAR,ITYPE,ISIZE,IELEM)
+
+#if defined(vms) || defined(__vms)
+
+PROTOCCALLSFFUN3(INT,HCREATEG,hcreateg,STRING,PINT,INT)
+#define HCREATEG(A2,A3,A4)  CCALLSFFUN3(HCREATEG,hcreateg,STRING,PINT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,HMAPG,hmapg,STRING,PINT,PINT)
+#define HMAPG(A2,A3,A4)  CCALLSFFUN3(HMAPG,hmapg,STRING,PINT,PINT,A2,A3,A4)
+
+#else
+
+PROTOCCALLSFSUB2(HLIMAP,hlimap,INT,STRING)
+#define HLIMAP(A1,A2)  CCALLSFSUB2(HLIMAP,hlimap,INT,STRING,A1,A2)
+
+#endif
Index: trunk/SophyaExt/CodeMinuit/cfortran/higz.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/higz.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/higz.h	(revision 2403)
@@ -0,0 +1,251 @@
+PROTOCCALLSFSUB1(IACWK,iacwk,INT)
+#define IACWK(A1)  CCALLSFSUB1(IACWK,iacwk,INT,A1)
+
+PROTOCCALLSFSUB8(ICA,ica,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,PINT,STRING)
+#define ICA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(ICA,ica,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,PINT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB0(ICLKS,iclks)
+#define ICLKS() CCALLSFSUB0(ICLKS,iclks)
+
+PROTOCCALLSFSUB2(ICLRWK,iclrwk,INT,INT)
+#define ICLRWK(A1,A2)  CCALLSFSUB2(ICLRWK,iclrwk,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB1(ICLWK,iclwk,INT)
+#define ICLWK(A1)  CCALLSFSUB1(ICLWK,iclwk,INT,A1)
+
+PROTOCCALLSFSUB1(IDAWK,idawk,INT)
+#define IDAWK(A1)  CCALLSFSUB1(IDAWK,idawk,INT,A1)
+
+PROTOCCALLSFSUB3(IFA,ifa,INT,FLOATV,FLOATV)
+#define IFA(A1,A2,A3)  CCALLSFSUB3(IFA,ifa,INT,FLOATV,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(IFA3,ifa3,INT,FLOATV,FLOATV,FLOATV)
+#define IFA3(A1,A2,A3,A4)  CCALLSFSUB4(IFA3,ifa3,INT,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(IGARC,igarc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define IGARC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IGARC,igarc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(IGAXIS,igaxis,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PINT,STRING)
+#define IGAXIS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(IGAXIS,igaxis,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PINT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB4(IGBOX,igbox,FLOAT,FLOAT,FLOAT,FLOAT)
+#define IGBOX(A1,A2,A3,A4)  CCALLSFSUB4(IGBOX,igbox,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB9(IGCOLM,igcolm,FLOAT,FLOAT,FLOAT,FLOAT,PINT,INTV,FLOAT,FLOAT,STRING)
+#define IGCOLM(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(IGCOLM,igcolm,FLOAT,FLOAT,FLOAT,FLOAT,PINT,INTV,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB0(IGEND,igend)
+#define IGEND() CCALLSFSUB0(IGEND,igend)
+
+PROTOCCALLSFSUB4(IGHIST,ighist,INT,FLOATV,FLOATV,STRING)
+#define IGHIST(A1,A2,A3,A4)  CCALLSFSUB4(IGHIST,ighist,INT,FLOATV,FLOATV,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(IGINIT,iginit,INT)
+#define IGINIT(A1)  CCALLSFSUB1(IGINIT,iginit,INT,A1)
+
+PROTOCCALLSFSUB2(IGLBL,iglbl,INT,STRINGV)
+#define IGLBL(A1,A2)  CCALLSFSUB2(IGLBL,iglbl,INT,STRINGV,A1,A2)
+
+PROTOCCALLSFSUB7(IGLOC,igloc,INT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define IGLOC(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(IGLOC,igloc,INT,PINT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB8(IGLOC2,igloc2,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,STRING)
+#define IGLOC2(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(IGLOC2,igloc2,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,INT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB14(IGMENU,igmenu,INT,STRING,PFLOAT,PFLOAT,PFLOAT,PFLOAT,INT,STRINGV,INT,STRINGV,STRINGV,PSTRINGV,PINT,STRING)
+#define IGMENU(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(IGMENU,igmenu,INT,STRING,PFLOAT,PFLOAT,PFLOAT,PFLOAT,INT,STRINGV,INT,STRINGV,STRINGV,PSTRINGV,PINT,STRING,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFSUB4(IGMESS,igmess,INT,STRINGV,STRING,STRING)
+#define IGMESS(A1,A2,A3,A4)  CCALLSFSUB4(IGMESS,igmess,INT,STRINGV,STRING,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(IGMETA,igmeta,INT,INT)
+#define IGMETA(A1,A2)  CCALLSFSUB2(IGMETA,igmeta,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB8(IGPAVE,igpave,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,STRING)
+#define IGPAVE(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(IGPAVE,igpave,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,INT,INT,STRING,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(IGPICK,igpick,INT,FLOAT,FLOAT,PINT,PSTRINGV,PINT,STRING)
+#define IGPICK(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(IGPICK,igpick,INT,FLOAT,FLOAT,PINT,PSTRINGV,PINT,STRING,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(IGPID,igpid,INT,STRING,INT,STRING)
+#define IGPID(A1,A2,A3,A4)  CCALLSFSUB4(IGPID,igpid,INT,STRING,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB9(IGPIE,igpie,FLOAT,FLOAT,FLOAT,INT,FLOATV,STRING,INTV,INTV,INTV)
+#define IGPIE(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(IGPIE,igpie,FLOAT,FLOAT,FLOAT,INT,FLOATV,STRING,INTV,INTV,INTV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB2(IGQ,igq,STRING,PFLOAT)
+#define IGQ(A1,A2)  CCALLSFSUB2(IGQ,igq,STRING,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(IGQWK,igqwk,INT,STRING,FLOATV)
+#define IGQWK(A1,A2,A3)  CCALLSFSUB3(IGQWK,igqwk,INT,STRING,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(IGRAPH,igraph,INT,FLOATV,FLOATV,STRING)
+#define IGRAPH(A1,A2,A3,A4)  CCALLSFSUB4(IGRAPH,igraph,INT,FLOATV,FLOATV,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(IGRNG,igrng,FLOAT,FLOAT)
+#define IGRNG(A1,A2)  CCALLSFSUB2(IGRNG,igrng,FLOAT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(IGRSIZ,igrsiz,INT)
+#define IGRSIZ(A1)  CCALLSFSUB1(IGRSIZ,igrsiz,INT,A1)
+
+PROTOCCALLSFSUB6(IGRTOH,igrtoh,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define IGRTOH(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IGRTOH,igrtoh,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(IGHTOR,ightor,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define IGHTOR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IGHTOR,ightor,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(IGSA,igsa,INT)
+#define IGSA(A1)  CCALLSFSUB1(IGSA,igsa,INT,A1)
+
+PROTOCCALLSFSUB2(IGSET,igset,STRING,FLOAT)
+#define IGSET(A1,A2)  CCALLSFSUB2(IGSET,igset,STRING,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(IGSG,igsg,INT)
+#define IGSG(A1)  CCALLSFSUB1(IGSG,igsg,INT,A1)
+
+PROTOCCALLSFSUB2(IGSSE,igsse,INT,INT)
+#define IGSSE(A1,A2)  CCALLSFSUB2(IGSSE,igsse,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB6(IGTABL,igtabl,INT,INT,FLOATV,INT,FLOATV,STRING)
+#define IGTABL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IGTABL,igtabl,INT,INT,FLOATV,INT,FLOATV,STRING,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB0(IGTERM,igterm)
+#define IGTERM() CCALLSFSUB0(IGTERM,igterm)
+
+PROTOCCALLSFSUB6(IGTEXT,igtext,FLOAT,FLOAT,STRING,FLOAT,PFLOAT,STRING)
+#define IGTEXT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IGTEXT,igtext,FLOAT,FLOAT,STRING,FLOAT,PFLOAT,STRING,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(IGWKTY,igwkty,PINT)
+#define IGWKTY(A1)  CCALLSFSUB1(IGWKTY,igwkty,PINT,A1)
+
+PROTOCCALLSFSUB7(IGXMES,igxmes,INT,INT,INT,INT,STRINGV,STRING,STRING)
+#define IGXMES(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(IGXMES,igxmes,INT,INT,INT,INT,STRINGV,STRING,STRING,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(IGZSET,igzset,STRING)
+#define IGZSET(A1)  CCALLSFSUB1(IGZSET,igzset,STRING,A1)
+
+PROTOCCALLSFSUB1(IOPKS,iopks,INT)
+#define IOPKS(A1)  CCALLSFSUB1(IOPKS,iopks,INT,A1)
+
+PROTOCCALLSFSUB3(IOPWK,iopwk,INT,INT,INT)
+#define IOPWK(A1,A2,A3)  CCALLSFSUB3(IOPWK,iopwk,INT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(IPL,ipl,INT,FLOATV,FLOATV)
+#define IPL(A1,A2,A3)  CCALLSFSUB3(IPL,ipl,INT,FLOATV,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(IPL3,ipl3,INT,FLOATV,FLOATV,FLOATV)
+#define IPL3(A1,A2,A3,A4)  CCALLSFSUB4(IPL3,ipl3,INT,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(IPM,ipm,INT,FLOATV,FLOATV)
+#define IPM(A1,A2,A3)  CCALLSFSUB3(IPM,ipm,INT,FLOATV,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(IPM3,ipm3,INT,FLOATV,FLOATV,FLOATV)
+#define IPM3(A1,A2,A3,A4)  CCALLSFSUB4(IPM3,ipm3,INT,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(IPM3ID,ipm3id,INT,FLOATV,FLOATV,FLOATV,INT,INTV)
+#define IPM3ID(A1,A2,A3,A4,A5,A6) CCALLSFSUB6(IPM3ID,ipm3id,INT,FLOATV,FLOATV,FLOATV,INT,INTV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB9(IPM4ID,ipm4id,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOAT,FLOAT,INT,INTV)
+#define IPM4ID(A1,A2,A3,A4,A5,A6,A7,A8,A9) CCALLSFSUB9(IPM4ID,ipm4id,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOAT,FLOAT,INT,INTV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB5(IPMID,ipmid,INT,FLOATV,FLOATV,INT,INTV)
+#define IPMID(A1,A2,A3,A4,A5) CCALLSFSUB5(IPMID,ipmid,INT,FLOATV,FLOATV,INT,INTV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(IRQLC,irqlc,INT,INT,INT,INT,FLOAT,FLOAT)
+#define IRQLC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IRQLC,irqlc,INT,INT,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(IRQST,irqst,INT,INT,INT,INT,FLOAT)
+#define IRQST(A1,A2,A3,A4,A5)  CCALLSFSUB5(IRQST,irqst,INT,INT,INT,INT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(ISCHH,ischh,FLOAT)
+#define ISCHH(A1)  CCALLSFSUB1(ISCHH,ischh,FLOAT,A1)
+
+PROTOCCALLSFSUB2(ISCHUP,ischup,FLOAT,FLOAT)
+#define ISCHUP(A1,A2)  CCALLSFSUB2(ISCHUP,ischup,FLOAT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(ISCLIP,isclip,INT)
+#define ISCLIP(A1)  CCALLSFSUB1(ISCLIP,isclip,INT,A1)
+
+PROTOCCALLSFSUB5(ISCR,iscr,INT,INT,FLOAT,FLOAT,FLOAT)
+#define ISCR(A1,A2,A3,A4,A5)  CCALLSFSUB5(ISCR,iscr,INT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(ISELNT,iselnt,INT)
+#define ISELNT(A1)  CCALLSFSUB1(ISELNT,iselnt,INT,A1)
+
+PROTOCCALLSFSUB1(ISFACI,isfaci,INT)
+#define ISFACI(A1)  CCALLSFSUB1(ISFACI,isfaci,INT,A1)
+
+PROTOCCALLSFSUB1(ISFAIS,isfais,INT)
+#define ISFAIS(A1)  CCALLSFSUB1(ISFAIS,isfais,INT,A1)
+
+PROTOCCALLSFSUB1(ISFASI,isfasi,INT)
+#define ISFASI(A1)  CCALLSFSUB1(ISFASI,isfasi,INT,A1)
+
+PROTOCCALLSFSUB1(ISLN,isln,INT)
+#define ISLN(A1)  CCALLSFSUB1(ISLN,isln,INT,A1)
+
+PROTOCCALLSFSUB1(ISLWSC,islwsc,FLOAT)
+#define ISLWSC(A1)  CCALLSFSUB1(ISLWSC,islwsc,FLOAT,A1)
+
+PROTOCCALLSFSUB1(ISMK,ismk,INT)
+#define ISMK(A1)  CCALLSFSUB1(ISMK,ismk,INT,A1)
+
+PROTOCCALLSFSUB1(ISMKSC,ismksc,FLOAT)
+#define ISMKSC(A1)  CCALLSFSUB1(ISMKSC,ismksc,FLOAT,A1)
+
+PROTOCCALLSFSUB1(ISPLCI,isplci,INT)
+#define ISPLCI(A1)  CCALLSFSUB1(ISPLCI,isplci,INT,A1)
+
+PROTOCCALLSFSUB1(ISPMCI,ispmci,INT)
+#define ISPMCI(A1)  CCALLSFSUB1(ISPMCI,ispmci,INT,A1)
+
+PROTOCCALLSFSUB2(ISTXAL,istxal,INT,INT)
+#define ISTXAL(A1,A2)  CCALLSFSUB2(ISTXAL,istxal,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB1(ISTXCI,istxci,INT)
+#define ISTXCI(A1)  CCALLSFSUB1(ISTXCI,istxci,INT,A1)
+
+PROTOCCALLSFSUB2(ISTXFP,istxfp,INT,INT)
+#define ISTXFP(A1,A2)  CCALLSFSUB2(ISTXFP,istxfp,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB5(ISVP,isvp,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define ISVP(A1,A2,A3,A4,A5)  CCALLSFSUB5(ISVP,isvp,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(ISWKVP,iswkvp,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define ISWKVP(A1,A2,A3,A4,A5)  CCALLSFSUB5(ISWKVP,iswkvp,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(ISWKWN,iswkwn,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define ISWKWN(A1,A2,A3,A4,A5)  CCALLSFSUB5(ISWKWN,iswkwn,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(ISWN,iswn,INT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define ISWN(A1,A2,A3,A4,A5)  CCALLSFSUB5(ISWN,iswn,INT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(ITX,itx,FLOAT,FLOAT,STRING)
+#define ITX(A1,A2,A3)  CCALLSFSUB3(ITX,itx,FLOAT,FLOAT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB4(ITX3,itx3,FLOAT,FLOAT,FLOAT,STRING)
+#define ITX3(A1,A2,A3,A4)  CCALLSFSUB4(ITX3,itx3,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(IUWK,iuwk,INT,INT)
+#define IUWK(A1,A2)  CCALLSFSUB2(IUWK,iuwk,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(IZCTOI,izctoi,STRING,INT)
+#define IZCTOI(A1,A2)  CCALLSFSUB2(IZCTOI,izctoi,STRING,INT,A1,A2)
+
+PROTOCCALLSFSUB2(IZCTOR,izctor,STRING,PFLOAT)
+#define IZCTOR(A1,A2)  CCALLSFSUB2(IZCTOR,izctor,STRING,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(IZITOC,izitoc,INT,STRING)
+#define IZITOC(A1,A2)  CCALLSFSUB2(IZITOC,izitoc,INT,STRING,A1,A2)
+
+PROTOCCALLSFSUB6(IZOPEN,izopen,INT,STRING,STRING,STRING,INT,INT)
+#define IZOPEN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(IZOPEN,izopen,INT,STRING,STRING,STRING,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB2(IZOUT,izout,STRING,INT)
+#define IZOUT(A1,A2)  CCALLSFSUB2(IZOUT,izout,STRING,INT,A1,A2)
+
+PROTOCCALLSFSUB2(IZPICT,izpict,PSTRING,STRING)
+#define IZPICT(A1,A2)  CCALLSFSUB2(IZPICT,izpict,PSTRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB2(IZRTOC,izrtoc,FLOAT,PSTRING)
+#define IZRTOC(A1,A2)  CCALLSFSUB2(IZRTOC,izrtoc,FLOAT,PSTRING,A1,A2)
Index: trunk/SophyaExt/CodeMinuit/cfortran/hplot.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/hplot.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/hplot.h	(revision 2403)
@@ -0,0 +1,155 @@
+PROTOCCALLSFSUB10(HPLAER,hplaer,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,INT,STRING,INT,FLOAT)
+#define HPLAER(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(HPLAER,hplaer,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,INT,STRING,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB5(HPLARC,hplarc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define HPLARC(A1,A2,A3,A4,A5)  CCALLSFSUB5(HPLARC,hplarc,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(HPLBOX,hplbox,FLOAT,FLOAT,FLOAT,FLOAT,STRING)
+#define HPLBOX(A1,A2,A3,A4,A5)  CCALLSFSUB5(HPLBOX,hplbox,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(HPLCAP,hplcap,INT)
+#define HPLCAP(A1)  CCALLSFSUB1(HPLCAP,hplcap,INT,A1)
+
+PROTOCCALLSFSUB1(HPLAX2,hplax2,FLOATV)
+#define HPLAX2(A1)  CCALLSFSUB1(HPLAX2,hplax2,FLOATV,A1)
+
+PROTOCCALLSFSUB1(HPLATT,hplatt,INT)
+#define HPLATT(A1)  CCALLSFSUB1(HPLATT,hplatt,INT,A1)
+
+PROTOCCALLSFSUB8(HPLCHA,hplcha,INT,FLOAT,FLOAT,PINT,PFLOAT,PFLOAT,PINT,PINT)
+#define HPLCHA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HPLCHA,hplcha,INT,FLOAT,FLOAT,PINT,PFLOAT,PFLOAT,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(HPLCOM,hplcom,FLOAT,FLOAT,STRING)
+#define HPLCOM(A1,A2,A3)  CCALLSFSUB3(HPLCOM,hplcom,FLOAT,FLOAT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HPLABL,hplabl,INT,INT,STRINGV)
+#define HPLABL(A1,A2,A3)  CCALLSFSUB3(HPLABL,hplabl,INT,INT,STRINGV,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HPLCON,hplcon,INT,INT,INT)
+#define HPLCON(A1,A2,A3)  CCALLSFSUB3(HPLCON,hplcon,INT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB0(HPLDAT,hpldat)
+#define HPLDAT() CCALLSFSUB0(HPLDAT,hpldat)
+
+PROTOCCALLSFSUB1(HPLDO,hpldo,INT)
+#define HPLDO(A1)  CCALLSFSUB1(HPLDO,hpldo,INT,A1)
+
+PROTOCCALLSFSUB3(HPLEGO,hplego,INT,FLOAT,FLOAT)
+#define HPLEGO(A1,A2,A3)  CCALLSFSUB3(HPLEGO,hplego,INT,FLOAT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB0(HPLEND,hplend)
+#define HPLEND() CCALLSFSUB0(HPLEND,hplend)
+
+PROTOCCALLSFSUB8(HPLERR,hplerr,FLOATV,FLOATV,FLOATV,FLOATV,INT,STRING,INT,FLOAT)
+#define HPLERR(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HPLERR,hplerr,FLOATV,FLOATV,FLOATV,FLOATV,INT,STRING,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB9(HPLFR3,hplfr3,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,STRING)
+#define HPLFR3(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(HPLFR3,hplfr3,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB5(HPLFRA,hplfra,FLOAT,FLOAT,FLOAT,FLOAT,STRING)
+#define HPLFRA(A1,A2,A3,A4,A5)  CCALLSFSUB5(HPLFRA,hplfra,FLOAT,FLOAT,FLOAT,FLOAT,STRING,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(HPLFUN,hplfun,FLOATV,FLOATV,INT,STRING)
+#define HPLFUN(A1,A2,A3,A4)  CCALLSFSUB4(HPLFUN,hplfun,FLOATV,FLOATV,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HPLGIV,hplgiv,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define HPLGIV(A1,A2,A3,A4)  CCALLSFSUB4(HPLGIV,hplgiv,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(HPLGTL,hplgtl)
+#define HPLGTL() CCALLSFSUB0(HPLGTL,hplgtl)
+
+PROTOCCALLSFSUB2(HPLGZO,hplgzo,PINT,PINT)
+#define HPLGZO(A1,A2)  CCALLSFSUB2(HPLGZO,hplgzo,PINT,PINT,A1,A2)
+
+PROTOCCALLSFSUB4(HPLINE,hpline,FLOATV,FLOATV,INT,STRING)
+#define HPLINE(A1,A2,A3,A4)  CCALLSFSUB4(HPLINE,hpline,FLOATV,FLOATV,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(HPLINT,hplint,INT)
+#define HPLINT(A1)  CCALLSFSUB1(HPLINT,hplint,INT,A1)
+
+PROTOCCALLSFSUB3(HPLIST,hplist,INT,INT,INTV)
+#define HPLIST(A1,A2,A3)  CCALLSFSUB3(HPLIST,hplist,INT,INT,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HPLKEY,hplkey,FLOAT,FLOAT,INT,STRING)
+#define HPLKEY(A1,A2,A3,A4)  CCALLSFSUB4(HPLKEY,hplkey,FLOAT,FLOAT,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(HPLNEW,hplnew)
+#define HPLNEW() CCALLSFSUB0(HPLNEW,hplnew)
+
+PROTOCCALLSFSUB7(HPLNT,hplnt,INT,INT,FLOAT,INT,INT,INT,INT)
+#define HPLNT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HPLNT,hplnt,INT,INT,FLOAT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB0(HPLNUL,hplnul)
+#define HPLNUL() CCALLSFSUB0(HPLNUL,hplnul)
+
+PROTOCCALLSFSUB0(HPLNXT,hplnxt)
+#define HPLNXT() CCALLSFSUB0(HPLNXT,hplnxt)
+
+PROTOCCALLSFSUB8(HPLOC,hploc,INT,INT,PFLOAT,PFLOAT,INT,INT,INT,INT)
+#define HPLOC(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(HPLOC,hploc,INT,INT,PFLOAT,PFLOAT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB2(HPLOPT,hplopt,STRINGV,INT)
+#define HPLOPT(A1,A2)  CCALLSFSUB2(HPLOPT,hplopt,STRINGV,INT,A1,A2)
+
+PROTOCCALLSFSUB4(HPLOT,hplot,INT,STRING,STRING,INT)
+#define HPLOT(A1,A2,A3,A4)  CCALLSFSUB4(HPLOT,hplot,INT,STRING,STRING,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(HPLPRO,hplpro,INT,STRING,STRING)
+#define HPLPRO(A1,A2,A3)  CCALLSFSUB3(HPLPRO,hplpro,INT,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB2(HPLPTO,hplpto,STRING,PSTRING)
+#define HPLPTO(A1,A2)  CCALLSFSUB2(HPLPTO,hplpto,STRING,PSTRING,A1,A2)
+
+PROTOCCALLSFSUB2(HPLSET,hplset,STRING,PFLOAT)
+#define HPLSET(A1,A2)  CCALLSFSUB2(HPLSET,hplset,STRING,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(HPLQOP,hplqop,STRING,PFLOAT)
+#define HPLQOP(A1,A2)  CCALLSFSUB2(HPLQOP,hplqop,STRING,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(HPLSIZ,hplsiz,PFLOAT,PFLOAT,STRING)
+#define HPLSIZ(A1,A2,A3)  CCALLSFSUB3(HPLSIZ,hplsiz,PFLOAT,PFLOAT,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB7(HPLSOF,hplsof,FLOAT,FLOAT,STRING,FLOAT,FLOAT,FLOAT,INT)
+#define HPLSOF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(HPLSOF,hplsof,FLOAT,FLOAT,STRING,FLOAT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(HPLSUR,hplsur,INT,FLOAT,FLOAT,INT)
+#define HPLSUR(A1,A2,A3,A4)  CCALLSFSUB4(HPLSUR,hplsur,INT,FLOAT,FLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(HPLSYM,hplsym,FLOATV,FLOATV,INT,INT,FLOAT,STRING)
+#define HPLSYM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HPLSYM,hplsym,FLOATV,FLOATV,INT,INT,FLOAT,STRING,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(HPLTAB,hpltab,INT,INT,FLOAT,FLOAT)
+#define HPLTAB(A1,A2,A3,A4)  CCALLSFSUB4(HPLTAB,hpltab,INT,INT,FLOAT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(HPLTIT,hpltit,STRING)
+#define HPLTIT(A1)  CCALLSFSUB1(HPLTIT,hpltit,STRING,A1)
+
+PROTOCCALLSFSUB5(HPLTOC,hpltoc,FLOAT,FLOAT,PFLOAT,PFLOAT,PINT)
+#define HPLTOC(A1,A2,A3,A4,A5)  CCALLSFSUB5(HPLTOC,hpltoc,FLOAT,FLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(HPLTXT,hpltxt,FLOAT,FLOAT,STRING,INT,INT,INT)
+#define HPLTXT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(HPLTXT,hpltxt,FLOAT,FLOAT,STRING,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(HPLUSR,hplusr,INT,STRING,INT)
+#define HPLUSR(A1,A2,A3)  CCALLSFSUB3(HPLUSR,hplusr,INT,STRING,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(HPLWIN,hplwin,INT,INT,INT,INT)
+#define HPLWIN(A1,A2,A3,A4)  CCALLSFSUB4(HPLWIN,hplwin,INT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HPLWIR,hplwir,STRING,FLOAT,FLOAT,STRING)
+#define HPLWIR(A1,A2,A3,A4)  CCALLSFSUB4(HPLWIR,hplwir,STRING,FLOAT,FLOAT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HPLZOM,hplzom,INT,STRING,INT,INT)
+#define HPLZOM(A1,A2,A3,A4)  CCALLSFSUB4(HPLZOM,hplzom,INT,STRING,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(HPLZON,hplzon,INT,INT,INT,STRING)
+#define HPLZON(A1,A2,A3,A4)  CCALLSFSUB4(HPLZON,hplzon,INT,INT,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(HPLAXI,hplaxi,FLOATV,FLOATV,INT)
+#define HPLAXI(A1,A2,A3)  CCALLSFSUB3(HPLAXI,hplaxi,FLOATV,FLOATV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(HPLSTA,hplsta,INT,STRING,INT)
+#define HPLSTA(A1,A2,A3) CCALLSFSUB3(HPLSTA,hplsta,INT,STRING,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(HPLLGD,hpllgd,STRING,STRING,STRING,INT,STRING)
+#define HPLLGD(A1,A2,A3,A4,A5) CCALLSFSUB5(HPLLGD,hpllgd,STRING,STRING,STRING,INT,STRING,A1,A2,A3,A4,A5)
Index: trunk/SophyaExt/CodeMinuit/cfortran/jetset74.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/jetset74.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/jetset74.h	(revision 2403)
@@ -0,0 +1,329 @@
+PROTOCCALLSFFUN2(INT,KLU,klu,INT,INT)
+#define KLU(A2,A3)  CCALLSFFUN2(KLU,klu,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,PLU,plu,INT,INT)
+#define PLU(A2,A3)  CCALLSFFUN2(PLU,plu,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN4(FLOAT,PYCTQ2,pyctq2,INT,INT,FLOAT,FLOAT)
+#define PYCTQ2(A2,A3,A4,A5)  CCALLSFFUN4(PYCTQ2,pyctq2,INT,INT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(DOUBLE,PYDILN,pydiln,DOUBLE)
+#define PYDILN(A2)  CCALLSFFUN1(PYDILN,pydiln,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(INT,LUCHGE,luchge,INT)
+#define LUCHGE(A2)  CCALLSFFUN1(LUCHGE,luchge,INT,A2)
+
+PROTOCCALLSFFUN1(INT,LUCOMP,lucomp,INT)
+#define LUCOMP(A2)  CCALLSFFUN1(LUCOMP,lucomp,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,PYGAMM,pygamm,FLOAT)
+#define PYGAMM(A2)  CCALLSFFUN1(PYGAMM,pygamm,FLOAT,A2)
+
+PROTOCCALLSFFUN3(FLOAT,PYHFTH,pyhfth,FLOAT,FLOAT,FLOAT)
+#define PYHFTH(A2,A3,A4)  CCALLSFFUN3(PYHFTH,pyhfth,FLOAT,FLOAT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,PYSPEN,pyspen,FLOAT,FLOAT,INT)
+#define PYSPEN(A2,A3,A4)  CCALLSFFUN3(PYSPEN,pyspen,FLOAT,FLOAT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(DOUBLE,RKDOT,rkdot,DOUBLEV,DOUBLEV)
+#define RKDOT(A2,A3)  CCALLSFFUN2(RKDOT,rkdot,DOUBLEV,DOUBLEV,A2,A3)
+
+PROTOCCALLSFFUN1(DOUBLE,RKRAND,rkrand,INT)
+#define RKRAND(A2)  CCALLSFFUN1(RKRAND,rkrand,INT,A2)
+
+PROTOCCALLSFFUN6(COMPLEX,RKZF,rkzf,INT,DOUBLEV,DOUBLEV,DOUBLE,INT,DOUBLEV)
+#define RKZF(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(RKZF,rkzf,INT,DOUBLEV,DOUBLEV,DOUBLE,INT,DOUBLEV,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN3(COMPLEX,RKZPR,rkzpr,INT,DOUBLEV,DOUBLEV)
+#define RKZPR(A2,A3,A4)  CCALLSFFUN3(RKZPR,rkzpr,INT,DOUBLEV,DOUBLEV,A2,A3,A4)
+
+PROTOCCALLSFFUN4(COMPLEX,RKZSF,rkzsf,INT,DOUBLEV,INT,DOUBLEV)
+#define RKZSF(A2,A3,A4,A5)  CCALLSFFUN4(RKZSF,rkzsf,INT,DOUBLEV,INT,DOUBLEV,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(FLOAT,RLU,rlu,INT)
+#define RLU(A2)  CCALLSFFUN1(RLU,rlu,INT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ULALEM,ulalem,FLOAT)
+#define ULALEM(A2)  CCALLSFFUN1(ULALEM,ulalem,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ULALPS,ulalps,FLOAT)
+#define ULALPS(A2)  CCALLSFFUN1(ULALPS,ulalps,FLOAT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,ULANGL,ulangl,FLOAT,FLOAT)
+#define ULANGL(A2,A3)  CCALLSFFUN2(ULANGL,ulangl,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,ULMASS,ulmass,INT)
+#define ULMASS(A2)  CCALLSFFUN1(ULMASS,ulmass,INT,A2)
+
+PROTOCCALLSFSUB5(LU1ENT,lu1ent,INT,INT,FLOAT,FLOAT,FLOAT)
+#define LU1ENT(A1,A2,A3,A4,A5)  CCALLSFSUB5(LU1ENT,lu1ent,INT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(LU2ENT,lu2ent,INT,INT,INT,FLOAT)
+#define LU2ENT(A1,A2,A3,A4)  CCALLSFSUB4(LU2ENT,lu2ent,INT,INT,INT,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(LU3ENT,lu3ent,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT)
+#define LU3ENT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(LU3ENT,lu3ent,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB11(LU4ENT,lu4ent,INT,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define LU4ENT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(LU4ENT,lu4ent,INT,INT,INT,INT,INT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB1(LUBOEI,luboei,INT)
+#define LUBOEI(A1)  CCALLSFSUB1(LUBOEI,luboei,INT,A1)
+
+PROTOCCALLSFSUB1(LUCELL,lucell,PINT)
+#define LUCELL(A1)  CCALLSFSUB1(LUCELL,lucell,PINT,A1)
+
+PROTOCCALLSFSUB1(LUCLUS,luclus,PINT)
+#define LUCLUS(A1)  CCALLSFSUB1(LUCLUS,luclus,PINT,A1)
+
+PROTOCCALLSFSUB1(LUDECY,ludecy,INT)
+#define LUDECY(A1)  CCALLSFSUB1(LUDECY,ludecy,INT,A1)
+
+PROTOCCALLSFSUB1(LUEDIT,luedit,INT)
+#define LUEDIT(A1)  CCALLSFSUB1(LUEDIT,luedit,INT,A1)
+
+PROTOCCALLSFSUB2(LUEEVT,lueevt,INT,FLOAT)
+#define LUEEVT(A1,A2)  CCALLSFSUB2(LUEEVT,lueevt,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(LUERRM,luerrm,INT,BYTE)
+#define LUERRM(A1,A2)  CCALLSFSUB2(LUERRM,luerrm,INT,BYTE,A1,A2)
+
+PROTOCCALLSFSUB0(LUEXEC,luexec)
+#define LUEXEC() CCALLSFSUB0(LUEXEC,luexec)
+
+PROTOCCALLSFSUB4(LUFOWO,lufowo,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define LUFOWO(A1,A2,A3,A4)  CCALLSFSUB4(LUFOWO,lufowo,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(LUGIVE,lugive,BYTE)
+#define LUGIVE(A1)  CCALLSFSUB1(LUGIVE,lugive,BYTE,A1)
+
+PROTOCCALLSFSUB1(LUHEPC,luhepc,INT)
+#define LUHEPC(A1)  CCALLSFSUB1(LUHEPC,luhepc,INT,A1)
+
+PROTOCCALLSFSUB1(LUINDF,luindf,INT)
+#define LUINDF(A1)  CCALLSFSUB1(LUINDF,luindf,INT,A1)
+
+PROTOCCALLSFSUB2(LUJMAS,lujmas,PFLOAT,PFLOAT)
+#define LUJMAS(A1,A2)  CCALLSFSUB2(LUJMAS,lujmas,PFLOAT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(LUJOIN,lujoin,INT,INTV)
+#define LUJOIN(A1,A2)  CCALLSFSUB2(LUJOIN,lujoin,INT,INTV,A1,A2)
+
+PROTOCCALLSFSUB4(LUKFDI,lukfdi,INT,INT,PINT,PINT)
+#define LUKFDI(A1,A2,A3,A4)  CCALLSFSUB4(LUKFDI,lukfdi,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(LULIST,lulist,INT)
+#define LULIST(A1)  CCALLSFSUB1(LULIST,lulist,INT,A1)
+
+PROTOCCALLSFSUB0(LULOGO,lulogo)
+#define LULOGO() CCALLSFSUB0(LULOGO,lulogo)
+
+PROTOCCALLSFSUB2(LUNAME,luname,INT,PBYTE)
+#define LUNAME(A1,A2)  CCALLSFSUB2(LUNAME,luname,INT,PBYTE,A1,A2)
+
+PROTOCCALLSFSUB2(LUONIA,luonia,INT,FLOAT)
+#define LUONIA(A1,A2)  CCALLSFSUB2(LUONIA,luonia,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(LUPREP,luprep,INT)
+#define LUPREP(A1)  CCALLSFSUB1(LUPREP,luprep,INT,A1)
+
+PROTOCCALLSFSUB3(LUPTDI,luptdi,INT,PFLOAT,PFLOAT)
+#define LUPTDI(A1,A2,A3)  CCALLSFSUB3(LUPTDI,luptdi,INT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(LURADK,luradk,FLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define LURADK(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LURADK,luradk,FLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(LUDBRB,ludbrb,INT,INT,FLOAT,FLOAT,DOUBLE,DOUBLE,DOUBLE)
+#define LUDBRB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(LUDBRB,ludbrb,INT,INT,FLOAT,FLOAT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(LUROBO,lurobo,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define LUROBO(A1,A2,A3,A4,A5)  CCALLSFSUB5(LUROBO,lurobo,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(LUSHOW,lushow,INT,INT,FLOAT)
+#define LUSHOW(A1,A2,A3)  CCALLSFSUB3(LUSHOW,lushow,INT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(LUSPHE,lusphe,PFLOAT,PFLOAT)
+#define LUSPHE(A1,A2)  CCALLSFSUB2(LUSPHE,lusphe,PFLOAT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(LUSTRF,lustrf,INT)
+#define LUSTRF(A1)  CCALLSFSUB1(LUSTRF,lustrf,INT,A1)
+
+PROTOCCALLSFSUB1(LUTABU,lutabu,INT)
+#define LUTABU(A1)  CCALLSFSUB1(LUTABU,lutabu,INT,A1)
+
+PROTOCCALLSFSUB4(LUTAUD,lutaud,INT,INT,INT,PINT)
+#define LUTAUD(A1,A2,A3,A4)  CCALLSFSUB4(LUTAUD,lutaud,INT,INT,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(LUTEST,lutest,INT)
+#define LUTEST(A1)  CCALLSFSUB1(LUTEST,lutest,INT,A1)
+
+PROTOCCALLSFSUB2(LUTHRU,luthru,PFLOAT,PFLOAT)
+#define LUTHRU(A1,A2)  CCALLSFSUB2(LUTHRU,luthru,PFLOAT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(LUUPDA,luupda,INT,INT)
+#define LUUPDA(A1,A2)  CCALLSFSUB2(LUUPDA,luupda,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB6(LUX3JT,lux3jt,PINT,FLOAT,INT,FLOAT,PFLOAT,PFLOAT)
+#define LUX3JT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LUX3JT,lux3jt,PINT,FLOAT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB10(LUX4JT,lux4jt,PINT,FLOAT,INT,FLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define LUX4JT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(LUX4JT,lux4jt,PINT,FLOAT,INT,FLOAT,PINT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB7(LUXDIF,luxdif,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define LUXDIF(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(LUXDIF,luxdif,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(LUXJET,luxjet,FLOAT,PINT,PFLOAT)
+#define LUXJET(A1,A2,A3)  CCALLSFSUB3(LUXJET,luxjet,FLOAT,PINT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(LUXKFL,luxkfl,INT,FLOAT,FLOAT,PINT)
+#define LUXKFL(A1,A2,A3,A4)  CCALLSFSUB4(LUXKFL,luxkfl,INT,FLOAT,FLOAT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(LUXTOT,luxtot,INT,FLOAT,PFLOAT)
+#define LUXTOT(A1,A2,A3)  CCALLSFSUB3(LUXTOT,luxtot,INT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(LUZDIS,luzdis,INT,INT,FLOAT,PFLOAT)
+#define LUZDIS(A1,A2,A3,A4)  CCALLSFSUB4(LUZDIS,luzdis,INT,INT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(PDFSET,pdfset,PSTRINGV,PDOUBLE)
+#define PDFSET(A1,A2)  CCALLSFSUB2(PDFSET,pdfset,PSTRINGV,PDOUBLE,A1,A2)
+
+PROTOCCALLSFSUB0(PYDIFF,pydiff)
+#define PYDIFF() CCALLSFSUB0(PYDIFF,pydiff)
+
+PROTOCCALLSFSUB0(PYDOCU,pydocu)
+#define PYDOCU() CCALLSFSUB0(PYDOCU,pydocu)
+
+PROTOCCALLSFSUB0(PYEVNT,pyevnt)
+#define PYEVNT() CCALLSFSUB0(PYEVNT,pyevnt)
+
+PROTOCCALLSFSUB1(PYEVWT,pyevwt,PFLOAT)
+#define PYEVWT(A1)  CCALLSFSUB1(PYEVWT,pyevwt,PFLOAT,A1)
+
+PROTOCCALLSFSUB1(PYFRAM,pyfram,INT)
+#define PYFRAM(A1)  CCALLSFSUB1(PYFRAM,pyfram,INT,A1)
+
+PROTOCCALLSFSUB4(PYI3AU,pyi3au,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define PYI3AU(A1,A2,A3,A4)  CCALLSFSUB4(PYI3AU,pyi3au,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(PYINIT,pyinit,STRING,STRING,STRING,FLOAT)
+#define PYINIT(A1,A2,A3,A4)  CCALLSFSUB4(PYINIT,pyinit,STRING,STRING,STRING,FLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(PYINKI,pyinki,INT)
+#define PYINKI(A1)  CCALLSFSUB1(PYINKI,pyinki,INT,A1)
+
+PROTOCCALLSFSUB0(PYINPR,pyinpr)
+#define PYINPR() CCALLSFSUB0(PYINPR,pyinpr)
+
+PROTOCCALLSFSUB0(PYINRE,pyinre)
+#define PYINRE() CCALLSFSUB0(PYINRE,pyinre)
+
+PROTOCCALLSFSUB1(PYKCUT,pykcut,PINT)
+#define PYKCUT(A1)  CCALLSFSUB1(PYKCUT,pykcut,PINT,A1)
+
+PROTOCCALLSFSUB1(PYKLIM,pyklim,INT)
+#define PYKLIM(A1)  CCALLSFSUB1(PYKLIM,pyklim,INT,A1)
+
+PROTOCCALLSFSUB3(PYKMAP,pykmap,INT,INT,FLOAT)
+#define PYKMAP(A1,A2,A3)  CCALLSFSUB3(PYKMAP,pykmap,INT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB0(PYMAXI,pymaxi)
+#define PYMAXI() CCALLSFSUB0(PYMAXI,pymaxi)
+
+PROTOCCALLSFSUB1(PYMULT,pymult,INT)
+#define PYMULT(A1)  CCALLSFSUB1(PYMULT,pymult,INT,A1)
+
+PROTOCCALLSFSUB7(PYOFSH,pyofsh,INT,INT,INT,INT,FLOAT,PFLOAT,PFLOAT)
+#define PYOFSH(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(PYOFSH,pyofsh,INT,INT,INT,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(PYPILE,pypile,INT)
+#define PYPILE(A1)  CCALLSFSUB1(PYPILE,pypile,INT,A1)
+
+PROTOCCALLSFSUB1(PYQQBH,pyqqbh,PFLOAT)
+#define PYQQBH(A1)  CCALLSFSUB1(PYQQBH,pyqqbh,PFLOAT,A1)
+
+PROTOCCALLSFSUB0(PYRAND,pyrand)
+#define PYRAND() CCALLSFSUB0(PYRAND,pyrand)
+
+PROTOCCALLSFSUB2(PYREMN,pyremn,INT,INT)
+#define PYREMN(A1,A2)  CCALLSFSUB2(PYREMN,pyremn,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB0(PYRESD,pyresd)
+#define PYRESD() CCALLSFSUB0(PYRESD,pyresd)
+
+PROTOCCALLSFSUB2(PYSAVE,pysave,INT,PINT)
+#define PYSAVE(A1,A2)  CCALLSFSUB2(PYSAVE,pysave,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB0(PYSCAT,pyscat)
+#define PYSCAT() CCALLSFSUB0(PYSCAT,pyscat)
+
+PROTOCCALLSFSUB2(PYSIGH,pysigh,PINT,PFLOAT)
+#define PYSIGH(A1,A2)  CCALLSFSUB2(PYSIGH,pysigh,PINT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB4(PYSPLI,pyspli,INT,INT,PINT,PINT)
+#define PYSPLI(A1,A2,A3,A4)  CCALLSFSUB4(PYSPLI,pyspli,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(PYSSPA,pysspa,INT,INT)
+#define PYSSPA(A1,A2)  CCALLSFSUB2(PYSSPA,pysspa,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB3(PYSTAG,pystag,FLOAT,FLOAT,PFLOAT)
+#define PYSTAG(A1,A2,A3)  CCALLSFSUB3(PYSTAG,pystag,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(PYSTAT,pystat,INT)
+#define PYSTAT(A1)  CCALLSFSUB1(PYSTAT,pystat,INT,A1)
+
+PROTOCCALLSFSUB3(PYSTEL,pystel,FLOAT,FLOAT,PFLOAT)
+#define PYSTEL(A1,A2,A3)  CCALLSFSUB3(PYSTEL,pystel,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(PYSTFL,pystfl,INT,FLOAT,FLOAT,PFLOAT)
+#define PYSTFL(A1,A2,A3,A4)  CCALLSFSUB4(PYSTFL,pystfl,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(PYSTFU,pystfu,INT,FLOAT,FLOAT,PFLOAT)
+#define PYSTFU(A1,A2,A3,A4)  CCALLSFSUB4(PYSTFU,pystfu,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(PYSTGA,pystga,FLOAT,FLOAT,PFLOAT)
+#define PYSTGA(A1,A2,A3)  CCALLSFSUB3(PYSTGA,pystga,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(PYSTGS,pystgs,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,PDOUBLE)
+#define PYSTGS(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(PYSTGS,pystgs,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(PYSTHG,pysthg,INT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT)
+#define PYSTHG(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(PYSTHG,pysthg,INT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(PYSTPI,pystpi,FLOAT,FLOAT,PFLOAT)
+#define PYSTPI(A1,A2,A3)  CCALLSFSUB3(PYSTPI,pystpi,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(PYSTPR,pystpr,FLOAT,FLOAT,PFLOAT)
+#define PYSTPR(A1,A2,A3)  CCALLSFSUB3(PYSTPR,pystpr,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(PYTEST,pytest,INT)
+#define PYTEST(A1)  CCALLSFSUB1(PYTEST,pytest,INT,A1)
+
+PROTOCCALLSFSUB2(PYUPEV,pyupev,INT,PFLOAT)
+#define PYUPEV(A1,A2)  CCALLSFSUB2(PYUPEV,pyupev,INT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(PYUPIN,pyupin,INT,STRING,FLOAT)
+#define PYUPIN(A1,A2,A3)  CCALLSFSUB3(PYUPIN,pyupin,INT,STRING,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(PYWAUX,pywaux,INT,FLOAT,FLOAT,PFLOAT)
+#define PYWAUX(A1,A2,A3,A4)  CCALLSFSUB4(PYWAUX,pywaux,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(PYWIDT,pywidt,INT,FLOAT,PFLOAT,PFLOAT)
+#define PYWIDT(A1,A2,A3,A4)  CCALLSFSUB4(PYWIDT,pywidt,INT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(PYXTOT,pyxtot)
+#define PYXTOT() CCALLSFSUB0(PYXTOT,pyxtot)
+
+PROTOCCALLSFSUB8(RKBBV,rkbbv,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,INT,PFLOAT)
+#define RKBBV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RKBBV,rkbbv,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(RKHLPK,rkhlpk,INT,PINT,PINT,PINT,PINT,PINT)
+#define RKHLPK(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RKHLPK,rkhlpk,INT,PINT,PINT,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB2(RLUGET,rluget,INT,INT)
+#define RLUGET(A1,A2)  CCALLSFSUB2(RLUGET,rluget,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(RLUSET,rluset,INT,INT)
+#define RLUSET(A1,A2)  CCALLSFSUB2(RLUSET,rluset,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE)
+#define STRUCTM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
Index: trunk/SophyaExt/CodeMinuit/cfortran/kernlib.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/kernlib.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/kernlib.h	(revision 2403)
@@ -0,0 +1,1514 @@
+PROTOCCALLSFFUN1(FLOAT,ALOGAM,alogam,FLOAT)
+#define ALOGAM(A2)  CCALLSFFUN1(ALOGAM,alogam,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESI0,besi0,FLOAT)
+#define BESI0(A2)  CCALLSFFUN1(BESI0,besi0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESI1,besi1,FLOAT)
+#define BESI1(A2)  CCALLSFFUN1(BESI1,besi1,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESJ0,besj0,FLOAT)
+#define BESJ0(A2)  CCALLSFFUN1(BESJ0,besj0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESJ1,besj1,FLOAT)
+#define BESJ1(A2)  CCALLSFFUN1(BESJ1,besj1,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESK0,besk0,FLOAT)
+#define BESK0(A2)  CCALLSFFUN1(BESK0,besk0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESK1,besk1,FLOAT)
+#define BESK1(A2)  CCALLSFFUN1(BESK1,besk1,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESY0,besy0,FLOAT)
+#define BESY0(A2)  CCALLSFFUN1(BESY0,besy0,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,BESY1,besy1,FLOAT)
+#define BESY1(A2)  CCALLSFFUN1(BESY1,besy1,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,COSINT,cosint,FLOAT)
+#define COSINT(A2)  CCALLSFFUN1(COSINT,cosint,FLOAT,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DERF,derf,DOUBLE)
+#define DERF(A2)  CCALLSFFUN1(DERF,derf,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DFREQ,dfreq,DOUBLE)
+#define DFREQ(A2)  CCALLSFFUN1(DFREQ,dfreq,DOUBLE,A2)
+
+PROTOCCALLSFFUN1(DOUBLE,DGAMMA,dgamma,DOUBLE)
+#define DGAMMA(A2)  CCALLSFFUN1(DGAMMA,dgamma,DOUBLE,A2)
+
+PROTOCCALLSFFUN4(DOUBLE,DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE)
+#define DGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN5(FLOAT,DIVDIF,divdif,FLOATV,FLOATV,INT,FLOAT,INT)
+#define DIVDIF(A2,A3,A4,A5,A6)  CCALLSFFUN5(DIVDIF,divdif,FLOATV,FLOATV,INT,FLOAT,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN8(DOUBLE,DMBIL,dmbil,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV)
+#define DMBIL(A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFFUN8(DMBIL,dmbil,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFFUN6(DOUBLE,DVMPA,dvmpa,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE)
+#define DVMPA(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DVMPA,dvmpa,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLE,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN5(DOUBLE,DVMPY,dvmpy,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV)
+#define DVMPY(A2,A3,A4,A5,A6)  CCALLSFFUN5(DVMPY,dvmpy,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN3(DOUBLE,DVSUM,dvsum,INT,DOUBLEV,DOUBLEV)
+#define DVSUM(A2,A3,A4)  CCALLSFFUN3(DVSUM,dvsum,INT,DOUBLEV,DOUBLEV,A2,A3,A4)
+
+PROTOCCALLSFFUN1(FLOAT,ELLICE,ellice,FLOAT)
+#define ELLICE(A2)  CCALLSFFUN1(ELLICE,ellice,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ELLICK,ellick,FLOAT)
+#define ELLICK(A2)  CCALLSFFUN1(ELLICK,ellick,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,ERF,erf,FLOAT)
+#define ERF(A2)  CCALLSFFUN1(ERF,erf,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,EXPINT,expint,FLOAT)
+#define EXPINT(A2)  CCALLSFFUN1(EXPINT,expint,FLOAT,A2)
+
+PROTOCCALLSFFUN5(FLOAT,FINT,fint,INT,FLOATV,INTV,FLOATV,FLOATV)
+#define FINT(A2,A3,A4,A5,A6)  CCALLSFFUN5(FINT,fint,INT,FLOATV,INTV,FLOATV,FLOATV,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN1(FLOAT,FREQ,freq,FLOAT)
+#define FREQ(A2)  CCALLSFFUN1(FREQ,freq,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,GAMMA,gamma,FLOAT)
+#define GAMMA(A2)  CCALLSFFUN1(GAMMA,gamma,FLOAT,A2)
+
+PROTOCCALLSFFUN4(FLOAT,GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT)
+#define GAUSS(A2,A3,A4,A5)  CCALLSFFUN4(GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(FLOAT,GQUAD,gquad,FLOAT,FLOAT,FLOAT,INT)
+#define GQUAD(A2,A3,A4,A5)  CCALLSFFUN4(GQUAD,gquad,FLOAT,FLOAT,FLOAT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,LOCATF,locatf,FLOATV,INT,FLOAT)
+#define LOCATF(A2,A3,A4)  CCALLSFFUN3(LOCATF,locatf,FLOATV,INT,FLOAT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LOCATI,locati,INTV,INT,INT)
+#define LOCATI(A2,A3,A4)  CCALLSFFUN3(LOCATI,locati,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(FLOAT,PROB,prob,FLOAT,INT)
+#define PROB(A2,A3)  CCALLSFFUN2(PROB,prob,FLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN0(FLOAT,RANF,ranf)
+#define RANF() CCALLSFFUN0(RANF,ranf)
+
+PROTOCCALLSFFUN8(FLOAT,RMBIL,rmbil,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV)
+#define RMBIL(A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFFUN8(RMBIL,rmbil,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFFUN6(FLOAT,RVMPA,rvmpa,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOAT)
+#define RVMPA(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(RVMPA,rvmpa,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOAT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN5(FLOAT,RVMPY,rvmpy,INT,FLOATV,FLOATV,FLOATV,FLOATV)
+#define RVMPY(A2,A3,A4,A5,A6)  CCALLSFFUN5(RVMPY,rvmpy,INT,FLOATV,FLOATV,FLOATV,FLOATV,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN3(FLOAT,RVSUM,rvsum,INT,FLOATV,FLOATV)
+#define RVSUM(A2,A3,A4)  CCALLSFFUN3(RVSUM,rvsum,INT,FLOATV,FLOATV,A2,A3,A4)
+
+PROTOCCALLSFFUN1(FLOAT,SININT,sinint,FLOAT)
+#define SININT(A2)  CCALLSFFUN1(SININT,sinint,FLOAT,A2)
+
+PROTOCCALLSFFUN2(LOGICAL,ACCESSF,accessf,STRING,INT)
+#define ACCESSF(A2,A3)  CCALLSFFUN2(ACCESSF,accessf,STRING,INT,A2,A3)
+
+PROTOCCALLSFFUN4(FLOAT,AMAXMU,amaxmu,FLOATV,INT,INT,INT)
+#define AMAXMU(A2,A3,A4,A5)  CCALLSFFUN4(AMAXMU,amaxmu,FLOATV,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN2(FLOAT,ATG,atg,FLOAT,FLOAT)
+#define ATG(A2,A3)  CCALLSFFUN2(ATG,atg,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN1(STRING,CFROMI,cfromi,INT)
+#define CFROMI(A2)  CCALLSFFUN1(CFROMI,cfromi,INT,A2)
+
+PROTOCCALLSFFUN1(INT,CHDIRF,chdirf,BYTE)
+#define CHDIRF(A2)  CCALLSFFUN1(CHDIRF,chdirf,BYTE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,DOTI,doti,FLOATV,FLOATV)
+#define DOTI(A2,A3)  CCALLSFFUN2(DOTI,doti,FLOATV,FLOATV,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,FLOARG,floarg,FLOATV)
+#define FLOARG(A2)  CCALLSFFUN1(FLOARG,floarg,FLOATV,A2)
+
+PROTOCCALLSFFUN3(INT,ICDECI,icdeci,BYTE,INTV,INTV)
+#define ICDECI(A2,A3,A4)  CCALLSFFUN3(ICDECI,icdeci,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICEQU,icequ,BYTEV,BYTEV,INT)
+#define ICEQU(A2,A3,A4)  CCALLSFFUN3(ICEQU,icequ,BYTEV,BYTEV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,ICFILA,icfila,BYTE,BYTE,INTV,INTV)
+#define ICFILA(A2,A3,A4,A5)  CCALLSFFUN4(ICFILA,icfila,BYTE,BYTE,INTV,INTV,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(INT,ICFIND,icfind,BYTE,BYTE,INTV,INTV)
+#define ICFIND(A2,A3,A4,A5)  CCALLSFFUN4(ICFIND,icfind,BYTE,BYTE,INTV,INTV,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(INT,ICFMUL,icfmul,BYTE,BYTE,INTV,INTV)
+#define ICFMUL(A2,A3,A4,A5)  CCALLSFFUN4(ICFMUL,icfmul,BYTE,BYTE,INTV,INTV,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,ICFNBL,icfnbl,BYTE,INTV,INTV)
+#define ICFNBL(A2,A3,A4)  CCALLSFFUN3(ICFNBL,icfnbl,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICHEXI,ichexi,BYTE,INTV,INTV)
+#define ICHEXI(A2,A3,A4)  CCALLSFFUN3(ICHEXI,ichexi,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICINQ,icinq,STRING,STRINGV,INT)
+#define ICINQ(A2,A3,A4)  CCALLSFFUN3(ICINQ,icinq,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICINQL,icinql,STRING,STRINGV,INT)
+#define ICINQL(A2,A3,A4)  CCALLSFFUN3(ICINQL,icinql,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICINQU,icinqu,STRING,STRINGV,INT)
+#define ICINQU(A2,A3,A4)  CCALLSFFUN3(ICINQU,icinqu,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN5(INT,ICLOC,icloc,BYTE,INT,BYTE,INT,INT)
+#define ICLOC(A2,A3,A4,A5,A6)  CCALLSFFUN5(ICLOC,icloc,BYTE,INT,BYTE,INT,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN5(INT,ICLOCL,iclocl,BYTE,INT,BYTE,INT,INT)
+#define ICLOCL(A2,A3,A4,A5,A6)  CCALLSFFUN5(ICLOCL,iclocl,BYTE,INT,BYTE,INT,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN5(INT,ICLOCU,iclocu,BYTE,INT,BYTE,INT,INT)
+#define ICLOCU(A2,A3,A4,A5,A6)  CCALLSFFUN5(ICLOCU,iclocu,BYTE,INT,BYTE,INT,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN3(INT,ICLUNS,icluns,BYTE,INT,INT)
+#define ICLUNS(A2,A3,A4)  CCALLSFFUN3(ICLUNS,icluns,BYTE,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(INT,ICMPCH,icmpch,INT,INT)
+#define ICMPCH(A2,A3)  CCALLSFFUN2(ICMPCH,icmpch,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN3(INT,ICNEXT,icnext,BYTE,INTV,INTV)
+#define ICNEXT(A2,A3,A4)  CCALLSFFUN3(ICNEXT,icnext,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNTH,icnth,STRING,STRINGV,INT)
+#define ICNTH(A2,A3,A4)  CCALLSFFUN3(ICNTH,icnth,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNTHL,icnthl,STRING,STRINGV,INT)
+#define ICNTHL(A2,A3,A4)  CCALLSFFUN3(ICNTHL,icnthl,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNTHU,icnthu,STRING,STRINGV,INT)
+#define ICNTHU(A2,A3,A4)  CCALLSFFUN3(ICNTHU,icnthu,STRING,STRINGV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNUM,icnum,BYTE,INTV,INTV)
+#define ICNUM(A2,A3,A4)  CCALLSFFUN3(ICNUM,icnum,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNUMA,icnuma,BYTE,INTV,INTV)
+#define ICNUMA(A2,A3,A4)  CCALLSFFUN3(ICNUMA,icnuma,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICNUMU,icnumu,BYTE,INTV,INTV)
+#define ICNUMU(A2,A3,A4)  CCALLSFFUN3(ICNUMU,icnumu,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,ICOCTI,icocti,BYTE,INTV,INTV)
+#define ICOCTI(A2,A3,A4)  CCALLSFFUN3(ICOCTI,icocti,BYTE,INTV,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN1(INT,ICTYPE,ictype,BYTE)
+#define ICTYPE(A2)  CCALLSFFUN1(ICTYPE,ictype,BYTE,A2)
+
+PROTOCCALLSFFUN1(INT,IFROMC,ifromc,STRING)
+#define IFROMC(A2)  CCALLSFFUN1(IFROMC,ifromc,STRING,A2)
+
+PROTOCCALLSFFUN4(INT,INCBYT,incbyt,INTV,PINT,INTV,INTV)
+#define INCBYT(A2,A3,A4,A5)  CCALLSFFUN4(INCBYT,incbyt,INTV,PINT,INTV,INTV,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(INT,INTARG,intarg,FLOATV)
+#define INTARG(A2)  CCALLSFFUN1(INTARG,intarg,FLOATV,A2)
+
+PROTOCCALLSFFUN1(LOGICAL,INTRAC,intrac,FLOAT)
+#define INTRAC(A2)  CCALLSFFUN1(INTRAC,intrac,FLOAT,A2)
+
+PROTOCCALLSFFUN3(INT,IUBACK,iuback,INTV,INT,INT)
+#define IUBACK(A2,A3,A4)  CCALLSFFUN3(IUBACK,iuback,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,IUBIN,iubin,FLOAT,FLOATV,PLOGICAL)
+#define IUBIN(A2,A3,A4)  CCALLSFFUN3(IUBIN,iubin,FLOAT,FLOATV,PLOGICAL,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,IUCHAN,iuchan,FLOAT,FLOAT,FLOAT,INT)
+#define IUCHAN(A2,A3,A4,A5)  CCALLSFFUN4(IUCHAN,iuchan,FLOAT,FLOAT,FLOAT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,IUCOLA,iucola,INT,INTV,INT)
+#define IUCOLA(A2,A3,A4)  CCALLSFFUN3(IUCOLA,iucola,INT,INTV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,IUCOMP,iucomp,INT,INTV,INT)
+#define IUCOMP(A2,A3,A4)  CCALLSFFUN3(IUCOMP,iucomp,INT,INTV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN1(INT,IUEND,iuend,PINT)
+#define IUEND(A2)  CCALLSFFUN1(IUEND,iuend,PINT,A2)
+
+PROTOCCALLSFFUN4(INT,IUFILA,iufila,INT,INTV,INT,INT)
+#define IUFILA(A2,A3,A4,A5)  CCALLSFFUN4(IUFILA,iufila,INT,INTV,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(INT,IUFIND,iufind,INT,INTV,INT,INT)
+#define IUFIND(A2,A3,A4,A5)  CCALLSFFUN4(IUFIND,iufind,INT,INTV,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,IUFNBL,iufnbl,INTV,INT,INT)
+#define IUFNBL(A2,A3,A4)  CCALLSFFUN3(IUFNBL,iufnbl,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,IUFORW,iuforw,INTV,INT,INT)
+#define IUFORW(A2,A3,A4)  CCALLSFFUN3(IUFORW,iuforw,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,IUHIST,iuhist,FLOAT,FLOATV,PLOGICAL)
+#define IUHIST(A2,A3,A4)  CCALLSFFUN3(IUHIST,iuhist,FLOAT,FLOATV,PLOGICAL,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,IUHUNT,iuhunt,INT,INTV,INT,INT)
+#define IUHUNT(A2,A3,A4,A5)  CCALLSFFUN4(IUHUNT,iuhunt,INT,INTV,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,IULAST,iulast,INT,INTV,INT)
+#define IULAST(A2,A3,A4)  CCALLSFFUN3(IULAST,iulast,INT,INTV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,IULOOK,iulook,INT,INTV,INT,INT)
+#define IULOOK(A2,A3,A4,A5)  CCALLSFFUN4(IULOOK,iulook,INT,INTV,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(INT,IUMODE,iumode,INT)
+#define IUMODE(A2)  CCALLSFFUN1(IUMODE,iumode,INT,A2)
+
+PROTOCCALLSFFUN2(INT,IUNEXT,iunext,INTV,INT)
+#define IUNEXT(A2,A3)  CCALLSFFUN2(IUNEXT,iunext,INTV,INT,A2,A3)
+
+PROTOCCALLSFFUN5(INT,IUSAME,iusame,INTV,INT,INT,INT,PINT)
+#define IUSAME(A2,A3,A4,A5,A6)  CCALLSFFUN5(IUSAME,iusame,INTV,INT,INT,INT,PINT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN2(INT,IUWEED,iuweed,INTV,INT)
+#define IUWEED(A2,A3)  CCALLSFFUN2(IUWEED,iuweed,INTV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,JBIT,jbit,INT,INT)
+#define JBIT(A2,A3)  CCALLSFFUN2(JBIT,jbit,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN3(INT,JBYT,jbyt,INT,INT,INT)
+#define JBYT(A2,A3,A4)  CCALLSFFUN3(JBYT,jbyt,INT,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,JBYTET,jbytet,INT,INT,INT,INT)
+#define JBYTET(A2,A3,A4,A5)  CCALLSFFUN4(JBYTET,jbytet,INT,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(INT,JBYTOR,jbytor,INT,INT,INT,INT)
+#define JBYTOR(A2,A3,A4,A5)  CCALLSFFUN4(JBYTOR,jbytor,INT,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN3(INT,JBYTPK,jbytpk,INTV,INT,INTV)
+#define JBYTPK(A2,A3,A4)  CCALLSFFUN3(JBYTPK,jbytpk,INTV,INT,INTV,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,JRSBYT,jrsbyt,INT,PINT,INT,INT)
+#define JRSBYT(A2,A3,A4,A5)  CCALLSFFUN4(JRSBYT,jrsbyt,INT,PINT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(INT,JUMPAD,jumpad,INT)
+#define JUMPAD(A2)  CCALLSFFUN1(JUMPAD,jumpad,INT,A2)
+
+PROTOCCALLSFFUN1(INT,LOCB,locb,FLOATV)
+#define LOCB(A2)  CCALLSFFUN1(LOCB,locb,FLOATV,A2)
+
+PROTOCCALLSFFUN6(INT,LOCBYT,locbyt,INT,INTV,INT,INT,INT,INT)
+#define LOCBYT(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(LOCBYT,locbyt,INT,INTV,INT,INT,INT,INT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN1(INT,LOCF,locf,FLOATV)
+#define LOCF(A2)  CCALLSFFUN1(LOCF,locf,FLOATV,A2)
+
+PROTOCCALLSFFUN2(INT,LSTATF,lstatf,STRING,INTV)
+#define LSTATF(A2,A3)  CCALLSFFUN2(LSTATF,lstatf,STRING,INTV,A2,A3)
+
+PROTOCCALLSFFUN2(INT,LVMAX,lvmax,FLOATV,INT)
+#define LVMAX(A2,A3)  CCALLSFFUN2(LVMAX,lvmax,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,LVMAXA,lvmaxa,FLOATV,INT)
+#define LVMAXA(A2,A3)  CCALLSFFUN2(LVMAXA,lvmaxa,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,LVMIN,lvmin,FLOATV,INT)
+#define LVMIN(A2,A3)  CCALLSFFUN2(LVMIN,lvmin,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,LVMINA,lvmina,FLOATV,INT)
+#define LVMINA(A2,A3)  CCALLSFFUN2(LVMINA,lvmina,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN3(INT,LVSDMI,lvsdmi,DOUBLEV,INT,INT)
+#define LVSDMI(A2,A3,A4)  CCALLSFFUN3(LVSDMI,lvsdmi,DOUBLEV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LVSDMX,lvsdmx,DOUBLEV,INT,INT)
+#define LVSDMX(A2,A3,A4)  CCALLSFFUN3(LVSDMX,lvsdmx,DOUBLEV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LVSIMI,lvsimi,INTV,INT,INT)
+#define LVSIMI(A2,A3,A4)  CCALLSFFUN3(LVSIMI,lvsimi,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LVSIMX,lvsimx,INTV,INT,INT)
+#define LVSIMX(A2,A3,A4)  CCALLSFFUN3(LVSIMX,lvsimx,INTV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LVSMI,lvsmi,FLOATV,INT,INT)
+#define LVSMI(A2,A3,A4)  CCALLSFFUN3(LVSMI,lvsmi,FLOATV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(INT,LVSMX,lvsmx,FLOATV,INT,INT)
+#define LVSMX(A2,A3,A4)  CCALLSFFUN3(LVSMX,lvsmx,FLOATV,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN4(INT,MBYTET,mbytet,INT,INT,INT,INT)
+#define MBYTET(A2,A3,A4,A5)  CCALLSFFUN4(MBYTET,mbytet,INT,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN4(INT,MBYTOR,mbytor,INT,INT,INT,INT)
+#define MBYTOR(A2,A3,A4,A5)  CCALLSFFUN4(MBYTOR,mbytor,INT,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN5(INT,MCBYT,mcbyt,INT,INT,INT,INT,INT)
+#define MCBYT(A2,A3,A4,A5,A6)  CCALLSFFUN5(MCBYT,mcbyt,INT,INT,INT,INT,INT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN3(INT,MSBIT,msbit,INT,INT,INT)
+#define MSBIT(A2,A3,A4)  CCALLSFFUN3(MSBIT,msbit,INT,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(INT,MSBIT0,msbit0,INT,INT)
+#define MSBIT0(A2,A3)  CCALLSFFUN2(MSBIT0,msbit0,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN2(INT,MSBIT1,msbit1,INT,INT)
+#define MSBIT1(A2,A3)  CCALLSFFUN2(MSBIT1,msbit1,INT,INT,A2,A3)
+
+PROTOCCALLSFFUN4(INT,MSBYT,msbyt,INT,INT,INT,INT)
+#define MSBYT(A2,A3,A4,A5)  CCALLSFFUN4(MSBYT,msbyt,INT,INT,INT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN1(INT,NCDECI,ncdeci,BYTE)
+#define NCDECI(A2)  CCALLSFFUN1(NCDECI,ncdeci,BYTE,A2)
+
+PROTOCCALLSFFUN1(INT,NCHEXI,nchexi,BYTE)
+#define NCHEXI(A2)  CCALLSFFUN1(NCHEXI,nchexi,BYTE,A2)
+
+PROTOCCALLSFFUN1(INT,NCOCTI,ncocti,BYTE)
+#define NCOCTI(A2)  CCALLSFFUN1(NCOCTI,ncocti,BYTE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,PROXIM,proxim,FLOAT,FLOAT)
+#define PROXIM(A2,A3)  CCALLSFFUN2(PROXIM,proxim,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN4(FLOAT,PSCALE,pscale,PINT,INT,FLOAT,INT)
+#define PSCALE(A2,A3,A4,A5)  CCALLSFFUN4(PSCALE,pscale,PINT,INT,FLOAT,INT,A2,A3,A4,A5)
+
+PROTOCCALLSFFUN2(INT,READLNF,readlnf,STRING,STRING)
+#define READLNF(A2,A3)  CCALLSFFUN2(READLNF,readlnf,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN2(INT,RENAMEF,renamef,STRING,STRING)
+#define RENAMEF(A2,A3)  CCALLSFFUN2(RENAMEF,renamef,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,RNDM,rndm,INT)
+#define RNDM(A2)  CCALLSFFUN1(RNDM,rndm,INT,A2)
+
+PROTOCCALLSFFUN2(INT,SETENVF,setenvf,STRING,STRING)
+#define SETENVF(A2,A3)  CCALLSFFUN2(SETENVF,setenvf,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN2(INT,STATF,statf,STRING,INTV)
+#define STATF(A2,A3)  CCALLSFFUN2(STATF,statf,STRING,INTV,A2,A3)
+
+PROTOCCALLSFFUN1(INT,SYSTEMF,systemf,BYTE)
+#define SYSTEMF(A2)  CCALLSFFUN1(SYSTEMF,systemf,BYTE,A2)
+
+PROTOCCALLSFFUN1(INT,UNLINKF,unlinkf,BYTE)
+#define UNLINKF(A2)  CCALLSFFUN1(UNLINKF,unlinkf,BYTE,A2)
+
+PROTOCCALLSFFUN2(FLOAT,VASUM,vasum,FLOATV,INT)
+#define VASUM(A2,A3)  CCALLSFFUN2(VASUM,vasum,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN3(FLOAT,VDIST,vdist,FLOATV,FLOATV,INT)
+#define VDIST(A2,A3,A4)  CCALLSFFUN3(VDIST,vdist,FLOATV,FLOATV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,VDIST2,vdist2,FLOATV,FLOATV,INT)
+#define VDIST2(A2,A3,A4)  CCALLSFFUN3(VDIST2,vdist2,FLOATV,FLOATV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,VDOT,vdot,FLOATV,FLOATV,INT)
+#define VDOT(A2,A3,A4)  CCALLSFFUN3(VDOT,vdot,FLOATV,FLOATV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,VDOTN,vdotn,FLOATV,FLOATV,INT)
+#define VDOTN(A2,A3,A4)  CCALLSFFUN3(VDOTN,vdotn,FLOATV,FLOATV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN3(FLOAT,VDOTN2,vdotn2,FLOATV,FLOATV,INT)
+#define VDOTN2(A2,A3,A4)  CCALLSFFUN3(VDOTN2,vdotn2,FLOATV,FLOATV,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(FLOAT,VMAX,vmax,FLOATV,INT)
+#define VMAX(A2,A3)  CCALLSFFUN2(VMAX,vmax,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,VMAXA,vmaxa,FLOATV,INT)
+#define VMAXA(A2,A3)  CCALLSFFUN2(VMAXA,vmaxa,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,VMIN,vmin,FLOATV,INT)
+#define VMIN(A2,A3)  CCALLSFFUN2(VMIN,vmin,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,VMINA,vmina,FLOATV,INT)
+#define VMINA(A2,A3)  CCALLSFFUN2(VMINA,vmina,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,VMOD,vmod,FLOATV,INT)
+#define VMOD(A2,A3)  CCALLSFFUN2(VMOD,vmod,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN2(FLOAT,VSUM,vsum,FLOATV,INT)
+#define VSUM(A2,A3)  CCALLSFFUN2(VSUM,vsum,FLOATV,INT,A2,A3)
+
+PROTOCCALLSFFUN1(STRING,CHARN,charn,INT)
+#define CHARN(A2)  CCALLSFFUN1(CHARN,charn,INT,A2)
+
+PROTOCCALLSFFUN1(INT,CLEAP,cleap,INT)
+#define CLEAP(A2)  CCALLSFFUN1(CLEAP,cleap,INT,A2)
+
+PROTOCCALLSFFUN1(INT,CYEAR4,cyear4,INT)
+#define CYEAR4(A2)  CCALLSFFUN1(CYEAR4,cyear4,INT,A2)
+
+PROTOCCALLSFFUN1(INT,ICHARN,icharn,STRING)
+#define ICHARN(A2)  CCALLSFFUN1(ICHARN,icharn,STRING,A2)
+
+PROTOCCALLSFFUN1(INT,INDEXA,indexa,STRING)
+#define INDEXA(A2)  CCALLSFFUN1(INDEXA,indexa,STRING,A2)
+
+PROTOCCALLSFFUN2(INT,INDEXB,indexb,STRING,STRING)
+#define INDEXB(A2,A3)  CCALLSFFUN2(INDEXB,indexb,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN2(INT,INDEXC,indexc,STRING,STRING)
+#define INDEXC(A2,A3)  CCALLSFFUN2(INDEXC,indexc,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN1(INT,INDEXN,indexn,STRING)
+#define INDEXN(A2)  CCALLSFFUN1(INDEXN,indexn,STRING,A2)
+
+PROTOCCALLSFFUN1(INT,INDEXS,indexs,STRING)
+#define INDEXS(A2)  CCALLSFFUN1(INDEXS,indexs,STRING,A2)
+
+PROTOCCALLSFFUN1(INT,INDXAC,indxac,STRING)
+#define INDXAC(A2)  CCALLSFFUN1(INDXAC,indxac,STRING,A2)
+
+PROTOCCALLSFFUN2(INT,INDXBC,indxbc,STRING,STRING)
+#define INDXBC(A2,A3)  CCALLSFFUN2(INDXBC,indxbc,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN1(INT,INDXNC,indxnc,STRING)
+#define INDXNC(A2)  CCALLSFFUN1(INDXNC,indxnc,STRING,A2)
+
+PROTOCCALLSFFUN2(INT,ISCAN,iscan,STRING,STRING)
+#define ISCAN(A2,A3)  CCALLSFFUN2(ISCAN,iscan,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN1(INT,NUMBIT,numbit,INT)
+#define NUMBIT(A2)  CCALLSFFUN1(NUMBIT,numbit,INT,A2)
+
+PROTOCCALLSFFUN0(LOGICAL,RALPH,ralph)
+#define RALPH() CCALLSFFUN0(RALPH,ralph)
+
+PROTOCCALLSFFUN1(FLOAT,RCHAR,rchar,STRING)
+#define RCHAR(A2)  CCALLSFFUN1(RCHAR,rchar,STRING,A2)
+
+PROTOCCALLSFFUN0(LOGICAL,RDENDB,rdendb)
+#define RDENDB() CCALLSFFUN0(RDENDB,rdendb)
+
+PROTOCCALLSFFUN0(LOGICAL,RDIGI,rdigi)
+#define RDIGI() CCALLSFFUN0(RDIGI,rdigi)
+
+PROTOCCALLSFFUN1(STRING,RDUPCH,rdupch,STRING)
+#define RDUPCH(A2)  CCALLSFFUN1(RDUPCH,rdupch,STRING,A2)
+
+PROTOCCALLSFFUN2(STRING,REPEAT,repeat,STRING,INT)
+#define REPEAT(A2,A3)  CCALLSFFUN2(REPEAT,repeat,STRING,INT,A2,A3)
+
+PROTOCCALLSFFUN2(STRING,SPACES,spaces,STRING,INT)
+#define SPACES(A2,A3)  CCALLSFFUN2(SPACES,spaces,STRING,INT,A2,A3)
+
+PROTOCCALLSFFUN3(STRING,STRIP,strip,STRING,STRING,STRING)
+#define STRIP(A2,A3,A4)  CCALLSFFUN3(STRIP,strip,STRING,STRING,STRING,A2,A3,A4)
+
+PROTOCCALLSFFUN3(STRING,SUBWORD,subword,STRING,INT,INT)
+#define SUBWORD(A2,A3,A4)  CCALLSFFUN3(SUBWORD,subword,STRING,INT,INT,A2,A3,A4)
+
+PROTOCCALLSFFUN2(INT,VERIFY,verify,STRING,STRING)
+#define VERIFY(A2,A3)  CCALLSFFUN2(VERIFY,verify,STRING,STRING,A2,A3)
+
+PROTOCCALLSFFUN2(STRING,WORD,word,STRING,INT)
+#define WORD(A2,A3)  CCALLSFFUN2(WORD,word,STRING,INT,A2,A3)
+
+PROTOCCALLSFFUN1(INT,WORDS,words,STRING)
+#define WORDS(A2)  CCALLSFFUN1(WORDS,words,STRING,A2)
+
+
+/* Subroutines/Functions with COMPLEX not supported ***
+
+#define CCMMPY(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CCMMPY,ccmmpy,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CCUMPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CCUMPY,ccumpy,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CEQINV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CEQINV,ceqinv,INT,COMPLEXVV,INT,FLOATV,PINT,INT,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CEQN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CEQN,ceqn,INT,COMPLEXVV,INT,FLOATV,PINT,INT,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CFACT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CFACT,cfact,INT,PCOMPLEX,INT,PINT,PINT,PCOMPLEX,PINT,A1,A2,A3,A4,A5,A6,A7)
+#define CFEQN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CFEQN,cfeqn,INT,PCOMPLEX,INT,INTV,INT,PCOMPLEX,A1,A2,A3,A4,A5,A6)
+#define CFFT(A1,A2)  CCALLSFSUB2(CFFT,cfft,PCOMPLEX,INT,A1,A2)
+#define CFINV(A1,A2,A3,A4)  CCALLSFSUB4(CFINV,cfinv,INT,PCOMPLEX,INT,INTV,A1,A2,A3,A4)
+#define CINV(A1,A2,A3,A4,A5)  CCALLSFSUB5(CINV,cinv,INT,COMPLEXVV,INT,FLOATV,PINT,A1,A2,A3,A4,A5)
+#define CMADD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(CMADD,cmadd,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+PROTOCCALLSFFUN8(COMPLEX,CMBIL,cmbil,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV)
+#define CMBIL(A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFFUN8(CMBIL,cmbil,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMCPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CMCPY,cmcpy,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CMMLA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(CMMLA,cmmla,INT,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+#define CMMLS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(CMMLS,cmmls,INT,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+#define CMMLT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(CMMLT,cmmlt,INT,INT,INT,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+#define CMMLTC(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(CMMLTC,cmmltc,INT,INT,INT,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+#define CMMNA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMNA,cmmna,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMMNS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMNS,cmmns,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMMPA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMPA,cmmpa,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMMPS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMPS,cmmps,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMMPY(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMPY,cmmpy,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMMPYC(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMMPYC,cmmpyc,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMNMA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(CMNMA,cmnma,INT,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+#define CMNMS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(CMNMS,cmnms,INT,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+#define CMRAN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CMRAN,cmran,INT,INT,COMPLEX,COMPLEX,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CMSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(CMSCL,cmscl,INT,INT,COMPLEX,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+#define CMSET(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CMSET,cmset,INT,INT,COMPLEX,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6)
+#define CMSUB(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(CMSUB,cmsub,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+#define CMUTL(A1,A2,A3,A4)  CCALLSFSUB4(CMUTL,cmutl,INT,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4)
+#define CRSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(CRSCL,crscl,INT,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+#define CUMNA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMNA,cumna,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CUMNS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMNS,cumns,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CUMPA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMPA,cumpa,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CUMPS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMPS,cumps,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CUMPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMPY,cumpy,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CUMPYC(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CUMPYC,cumpyc,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CVADD(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CVADD,cvadd,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CVCPY(A1,A2,A3,A4,A5)  CCALLSFSUB5(CVCPY,cvcpy,INT,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5)
+#define CVDIV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CVDIV,cvdiv,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+PROTOCCALLSFFUN6(COMPLEX,CVMPA,cvmpa,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEX)
+#define CVMPA(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(CVMPA,cvmpa,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEX,A2,A3,A4,A5,A6,A7)
+PROTOCCALLSFFUN6(COMPLEX,CVMPAC,cvmpac,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEX)
+#define CVMPAC(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(CVMPAC,cvmpac,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEX,A2,A3,A4,A5,A6,A7)
+PROTOCCALLSFFUN5(COMPLEX,CVMPY,cvmpy,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV)
+#define CVMPY(A2,A3,A4,A5,A6)  CCALLSFFUN5(CVMPY,cvmpy,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,A2,A3,A4,A5,A6)
+PROTOCCALLSFFUN5(COMPLEX,CVMPYC,cvmpyc,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV)
+#define CVMPYC(A2,A3,A4,A5,A6)  CCALLSFFUN5(CVMPYC,cvmpyc,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,A2,A3,A4,A5,A6)
+#define CVMUL(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CVMUL,cvmul,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CVMULA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CVMULA,cvmula,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CVMUNA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CVMUNA,cvmuna,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+#define CVRAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(CVRAN,cvran,INT,COMPLEX,COMPLEX,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5)
+#define CVSCA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CVSCA,cvsca,INT,COMPLEX,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CVSCL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CVSCL,cvscl,INT,COMPLEX,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6)
+#define CVSCS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CVSCS,cvscs,INT,COMPLEX,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7,A8)
+#define CVSET(A1,A2,A3,A4)  CCALLSFSUB4(CVSET,cvset,INT,COMPLEX,PCOMPLEX,COMPLEXV,A1,A2,A3,A4)
+#define CVSUB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CVSUB,cvsub,INT,COMPLEXV,COMPLEXV,COMPLEXV,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5,A6,A7)
+PROTOCCALLSFFUN3(COMPLEX,CVSUM,cvsum,INT,COMPLEXV,COMPLEXV)
+#define CVSUM(A2,A3,A4)  CCALLSFFUN3(CVSUM,cvsum,INT,COMPLEXV,COMPLEXV,A2,A3,A4)
+#define CVXCH(A1,A2,A3,A4,A5)  CCALLSFSUB5(CVXCH,cvxch,INT,PCOMPLEX,COMPLEXV,PCOMPLEX,COMPLEXV,A1,A2,A3,A4,A5)
+#define MULLER(A1,A2,A3)  CCALLSFSUB3(MULLER,muller,FLOATV,INT,PCOMPLEX,A1,A2,A3)
+#define RFFT(A1,A2)  CCALLSFSUB2(RFFT,rfft,PCOMPLEX,INT,A1,A2)
+
+*** End Subroutines/Functions using COMPLEX */
+
+
+PROTOCCALLSFSUB7(D106XX,d106xx,INT,FLOAT,FLOAT,FLOAT,INT,PFLOAT,PFLOAT)
+#define D106XX(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(D106XX,d106xx,INT,FLOAT,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB14(D509HI,d509hi,PFLOAT,PFLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,PINT,INT,FLOAT,PINT,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define D509HI(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)  CCALLSFSUB14(D509HI,d509hi,PFLOAT,PFLOAT,FLOAT,FLOAT,PFLOAT,FLOAT,PINT,INT,FLOAT,PINT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14)
+
+PROTOCCALLSFSUB7(DBEQN,dbeqn,INT,INT,PDOUBLE,INT,PINT,INT,PDOUBLE)
+#define DBEQN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DBEQN,dbeqn,INT,INT,PDOUBLE,INT,PINT,INT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DEQINV,deqinv,INT,DOUBLEVV,INT,FLOATV,PINT,INT,DOUBLEV)
+#define DEQINV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DEQINV,deqinv,INT,DOUBLEVV,INT,FLOATV,PINT,INT,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DEQN,deqn,INT,DOUBLEVV,INT,FLOATV,PINT,INT,DOUBLEV)
+#define DEQN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DEQN,deqn,INT,DOUBLEVV,INT,FLOATV,PINT,INT,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DFACT,dfact,INT,PDOUBLE,INT,PINT,PINT,PDOUBLE,PINT)
+#define DFACT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DFACT,dfact,INT,PDOUBLE,INT,PINT,PINT,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(DFEQN,dfeqn,INT,PDOUBLE,INT,INTV,INT,PDOUBLE)
+#define DFEQN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DFEQN,dfeqn,INT,PDOUBLE,INT,INTV,INT,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(DFINV,dfinv,INT,PDOUBLE,INT,INTV)
+#define DFINV(A1,A2,A3,A4)  CCALLSFSUB4(DFINV,dfinv,INT,PDOUBLE,INT,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(DINV,dinv,INT,DOUBLEVV,INT,FLOATV,PINT)
+#define DINV(A1,A2,A3,A4,A5)  CCALLSFSUB5(DINV,dinv,INT,DOUBLEVV,INT,FLOATV,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB11(DMADD,dmadd,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMADD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(DMADD,dmadd,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB8(DMCPY,dmcpy,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMCPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DMCPY,dmcpy,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB12(DMMLA,dmmla,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMMLA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DMMLA,dmmla,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(DMMLS,dmmls,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMMLS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DMMLS,dmmls,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB13(DMMLT,dmmlt,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE)
+#define DMMLT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(DMMLT,dmmlt,INT,INT,INT,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB9(DMMNA,dmmna,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DMMNA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMMNA,dmmna,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(DMMNS,dmmns,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DMMNS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMMNS,dmmns,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(DMMPA,dmmpa,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DMMPA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMMPA,dmmpa,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(DMMPS,dmmps,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DMMPS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMMPS,dmmps,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(DMMPY,dmmpy,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DMMPY(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMMPY,dmmpy,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB12(DMNMA,dmnma,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMNMA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DMNMA,dmnma,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(DMNMS,dmnms,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMNMS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(DMNMS,dmnms,INT,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB7(DMRAN,dmran,INT,INT,DOUBLE,DOUBLE,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMRAN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DMRAN,dmran,INT,INT,DOUBLE,DOUBLE,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB9(DMSCL,dmscl,INT,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(DMSCL,dmscl,INT,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB6(DMSET,dmset,INT,INT,DOUBLE,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMSET(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DMSET,dmset,INT,INT,DOUBLE,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(DMSUB,dmsub,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMSUB(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(DMSUB,dmsub,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB4(DMUTL,dmutl,INT,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DMUTL(A1,A2,A3,A4)  CCALLSFSUB4(DMUTL,dmutl,INT,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(DRKSTP,drkstp,INT,DOUBLE,PDOUBLE,PDOUBLE,FLOAT,PDOUBLE)
+#define DRKSTP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DRKSTP,drkstp,INT,DOUBLE,PDOUBLE,PDOUBLE,FLOAT,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB10(DRSCL,drscl,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV)
+#define DRSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(DRSCL,drscl,INT,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB6(DSEQN,dseqn,INT,PDOUBLE,INT,PINT,INT,PDOUBLE)
+#define DSEQN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DSEQN,dseqn,INT,PDOUBLE,INT,PINT,INT,PDOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(DSFACT,dsfact,INT,PDOUBLE,INT,PINT,PDOUBLE,PINT)
+#define DSFACT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DSFACT,dsfact,INT,PDOUBLE,INT,PINT,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(DSFEQN,dsfeqn,INT,PDOUBLE,INT,INT,PDOUBLE)
+#define DSFEQN(A1,A2,A3,A4,A5)  CCALLSFSUB5(DSFEQN,dsfeqn,INT,PDOUBLE,INT,INT,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(DSFINV,dsfinv,INT,PDOUBLE,INT)
+#define DSFINV(A1,A2,A3)  CCALLSFSUB3(DSFINV,dsfinv,INT,PDOUBLE,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(DSINV,dsinv,INT,PDOUBLE,INT,PINT)
+#define DSINV(A1,A2,A3,A4)  CCALLSFSUB4(DSINV,dsinv,INT,PDOUBLE,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(DUMNA,dumna,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DUMNA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DUMNA,dumna,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DUMNS,dumns,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DUMNS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DUMNS,dumns,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DUMPA,dumpa,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DUMPA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DUMPA,dumpa,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DUMPS,dumps,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DUMPS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DUMPS,dumps,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(DUMPY,dumpy,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DUMPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DUMPY,dumpy,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(DVADD,dvadd,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVADD(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DVADD,dvadd,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(DVCPY,dvcpy,INT,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVCPY(A1,A2,A3,A4,A5)  CCALLSFSUB5(DVCPY,dvcpy,INT,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB8(DVDIV,dvdiv,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,PINT)
+#define DVDIV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DVDIV,dvdiv,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(DVMUL,dvmul,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVMUL(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DVMUL,dvmul,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DVMULA,dvmula,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVMULA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DVMULA,dvmula,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(DVMUNA,dvmuna,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVMUNA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DVMUNA,dvmuna,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(DVRAN,dvran,INT,DOUBLE,DOUBLE,PDOUBLE,DOUBLEV)
+#define DVRAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(DVRAN,dvran,INT,DOUBLE,DOUBLE,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB8(DVSCA,dvsca,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVSCA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DVSCA,dvsca,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(DVSCL,dvscl,INT,DOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVSCL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(DVSCL,dvscl,INT,DOUBLE,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(DVSCS,dvscs,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVSCS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(DVSCS,dvscs,INT,DOUBLE,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB4(DVSET,dvset,INT,DOUBLE,PDOUBLE,DOUBLEV)
+#define DVSET(A1,A2,A3,A4)  CCALLSFSUB4(DVSET,dvset,INT,DOUBLE,PDOUBLE,DOUBLEV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(DVSUB,dvsub,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVSUB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DVSUB,dvsub,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(DVXCH,dvxch,INT,PDOUBLE,DOUBLEV,PDOUBLE,DOUBLEV)
+#define DVXCH(A1,A2,A3,A4,A5)  CCALLSFSUB5(DVXCH,dvxch,INT,PDOUBLE,DOUBLEV,PDOUBLE,DOUBLEV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(DZERO,dzero,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,INT,DOUBLE)
+#define DZERO(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(DZERO,dzero,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,INT,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(E208PR,e208pr,INT,PINT,INT)
+#define E208PR(A1,A2,A3)  CCALLSFSUB3(E208PR,e208pr,INT,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(F010PR,f010pr,STRING,INT,INT,INT,INT)
+#define F010PR(A1,A2,A3,A4,A5)  CCALLSFSUB5(F010PR,f010pr,STRING,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(GSET,gset,FLOAT,FLOAT,INT,FLOATV,FLOATV)
+#define GSET(A1,A2,A3,A4,A5)  CCALLSFSUB5(GSET,gset,FLOAT,FLOAT,INT,FLOATV,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(KERNNT,kernnt,INT)
+#define KERNNT(A1)  CCALLSFSUB1(KERNNT,kernnt,INT,A1)
+
+PROTOCCALLSFSUB4(KERSET,kerset,STRING,INT,INT,INT)
+#define KERSET(A1,A2,A3,A4)  CCALLSFSUB4(KERSET,kerset,STRING,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(LLSQ,llsq,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT)
+#define LLSQ(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(LLSQ,llsq,INT,FLOATV,FLOATV,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(LSQ,lsq,INT,FLOATV,FLOATV,INT,PFLOAT)
+#define LSQ(A1,A2,A3,A4,A5)  CCALLSFSUB5(LSQ,lsq,INT,FLOATV,FLOATV,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB9(MINVAR,minvar,PFLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT)
+#define MINVAR(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(MINVAR,minvar,PFLOAT,PFLOAT,PFLOAT,FLOAT,FLOAT,INT,FLOAT,FLOAT,FLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB5(POLINT,polint,FLOATV,FLOATV,INT,FLOAT,PFLOAT)
+#define POLINT(A1,A2,A3,A4,A5)  CCALLSFSUB5(POLINT,polint,FLOATV,FLOATV,INT,FLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(RAN2VS,ran2vs,FLOAT,PFLOAT,PFLOAT)
+#define RAN2VS(A1,A2,A3)  CCALLSFSUB3(RAN2VS,ran2vs,FLOAT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(RAN3VS,ran3vs,FLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define RAN3VS(A1,A2,A3,A4)  CCALLSFSUB4(RAN3VS,ran3vs,FLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB1(RANGET,ranget,PDOUBLE)
+#define RANGET(A1)  CCALLSFSUB1(RANGET,ranget,PDOUBLE,A1)
+
+PROTOCCALLSFSUB7(RBEQN,rbeqn,INT,INT,PFLOAT,INT,PINT,INT,PFLOAT)
+#define RBEQN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RBEQN,rbeqn,INT,INT,PFLOAT,INT,PINT,INT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(REQINV,reqinv,INT,FLOATVV,INT,FLOATV,PINT,INT,FLOATV)
+#define REQINV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(REQINV,reqinv,INT,FLOATVV,INT,FLOATV,PINT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(REQN,reqn,INT,FLOATVV,INT,FLOATV,PINT,INT,FLOATV)
+#define REQN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(REQN,reqn,INT,FLOATVV,INT,FLOATV,PINT,INT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(RFACT,rfact,INT,PFLOAT,INT,PINT,PINT,PFLOAT,PINT)
+#define RFACT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RFACT,rfact,INT,PFLOAT,INT,PINT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB6(RFEQN,rfeqn,INT,PFLOAT,INT,INTV,INT,PFLOAT)
+#define RFEQN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RFEQN,rfeqn,INT,PFLOAT,INT,INTV,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(RFINV,rfinv,INT,PFLOAT,INT,INTV)
+#define RFINV(A1,A2,A3,A4)  CCALLSFSUB4(RFINV,rfinv,INT,PFLOAT,INT,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(RINV,rinv,INT,FLOATVV,INT,FLOATV,PINT)
+#define RINV(A1,A2,A3,A4,A5)  CCALLSFSUB5(RINV,rinv,INT,FLOATVV,INT,FLOATV,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(RKSTP,rkstp,INT,FLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT)
+#define RKSTP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RKSTP,rkstp,INT,FLOAT,PFLOAT,PFLOAT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(RMADD,rmadd,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMADD(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RMADD,rmadd,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB8(RMCPY,rmcpy,INT,INT,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMCPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RMCPY,rmcpy,INT,INT,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB12(RMMLA,rmmla,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMMLA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RMMLA,rmmla,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(RMMLS,rmmls,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMMLS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RMMLS,rmmls,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB13(RMMLT,rmmlt,INT,INT,INT,PFLOAT,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,PFLOAT)
+#define RMMLT(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)  CCALLSFSUB13(RMMLT,rmmlt,INT,INT,INT,PFLOAT,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13)
+
+PROTOCCALLSFSUB9(RMMNA,rmmna,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RMMNA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMMNA,rmmna,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(RMMNS,rmmns,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RMMNS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMMNS,rmmns,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(RMMPA,rmmpa,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RMMPA(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMMPA,rmmpa,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(RMMPS,rmmps,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RMMPS(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMMPS,rmmps,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB9(RMMPY,rmmpy,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RMMPY(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMMPY,rmmpy,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB12(RMNMA,rmnma,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMNMA(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RMNMA,rmnma,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB12(RMNMS,rmnms,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMNMS(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)  CCALLSFSUB12(RMNMS,rmnms,INT,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12)
+
+PROTOCCALLSFSUB7(RMRAN,rmran,INT,INT,FLOAT,FLOAT,PFLOAT,FLOATV,FLOATV)
+#define RMRAN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RMRAN,rmran,INT,INT,FLOAT,FLOAT,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB9(RMSCL,rmscl,INT,INT,FLOAT,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(RMSCL,rmscl,INT,INT,FLOAT,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB6(RMSET,rmset,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV)
+#define RMSET(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RMSET,rmset,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB11(RMSUB,rmsub,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RMSUB(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(RMSUB,rmsub,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+PROTOCCALLSFSUB4(RMUTL,rmutl,INT,PFLOAT,FLOATV,FLOATV)
+#define RMUTL(A1,A2,A3,A4)  CCALLSFSUB4(RMUTL,rmutl,INT,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB10(RRSCL,rrscl,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV)
+#define RRSCL(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)  CCALLSFSUB10(RRSCL,rrscl,INT,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
+
+PROTOCCALLSFSUB6(RSEQN,rseqn,INT,PFLOAT,INT,PINT,INT,PFLOAT)
+#define RSEQN(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RSEQN,rseqn,INT,PFLOAT,INT,PINT,INT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(RSFACT,rsfact,INT,PFLOAT,INT,PINT,PFLOAT,PINT)
+#define RSFACT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RSFACT,rsfact,INT,PFLOAT,INT,PINT,PFLOAT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(RSFEQN,rsfeqn,INT,PFLOAT,INT,INT,PFLOAT)
+#define RSFEQN(A1,A2,A3,A4,A5)  CCALLSFSUB5(RSFEQN,rsfeqn,INT,PFLOAT,INT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(RSFINV,rsfinv,INT,PFLOAT,INT)
+#define RSFINV(A1,A2,A3)  CCALLSFSUB3(RSFINV,rsfinv,INT,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(RSINV,rsinv,INT,PFLOAT,INT,PINT)
+#define RSINV(A1,A2,A3,A4)  CCALLSFSUB4(RSINV,rsinv,INT,PFLOAT,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(RUMNA,rumna,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RUMNA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RUMNA,rumna,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(RUMNS,rumns,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RUMNS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RUMNS,rumns,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(RUMPA,rumpa,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RUMPA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RUMPA,rumpa,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(RUMPS,rumps,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RUMPS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RUMPS,rumps,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(RUMPY,rumpy,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RUMPY(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RUMPY,rumpy,INT,FLOATV,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(RVADD,rvadd,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVADD(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RVADD,rvadd,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(RVCPY,rvcpy,INT,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVCPY(A1,A2,A3,A4,A5)  CCALLSFSUB5(RVCPY,rvcpy,INT,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB8(RVDIV,rvdiv,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,PINT)
+#define RVDIV(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RVDIV,rvdiv,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,PINT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB7(RVMUL,rvmul,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVMUL(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RVMUL,rvmul,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(RVMULA,rvmula,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVMULA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RVMULA,rvmula,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(RVMUNA,rvmuna,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVMUNA(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RVMUNA,rvmuna,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(RVRAN,rvran,INT,FLOAT,FLOAT,PFLOAT,FLOATV)
+#define RVRAN(A1,A2,A3,A4,A5)  CCALLSFSUB5(RVRAN,rvran,INT,FLOAT,FLOAT,PFLOAT,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB8(RVSCA,rvsca,INT,FLOAT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVSCA(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RVSCA,rvsca,INT,FLOAT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB6(RVSCL,rvscl,INT,FLOAT,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVSCL(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(RVSCL,rvscl,INT,FLOAT,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB8(RVSCS,rvscs,INT,FLOAT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVSCS(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(RVSCS,rvscs,INT,FLOAT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB4(RVSET,rvset,INT,FLOAT,PFLOAT,FLOATV)
+#define RVSET(A1,A2,A3,A4)  CCALLSFSUB4(RVSET,rvset,INT,FLOAT,PFLOAT,FLOATV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(RVSUB,rvsub,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV)
+#define RVSUB(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RVSUB,rvsub,INT,FLOATV,FLOATV,FLOATV,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB5(RVXCH,rvxch,INT,PFLOAT,FLOATV,PFLOAT,FLOATV)
+#define RVXCH(A1,A2,A3,A4,A5)  CCALLSFSUB5(RVXCH,rvxch,INT,PFLOAT,FLOATV,PFLOAT,FLOATV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(RZERO,rzero,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,INT,FLOAT)
+#define RZERO(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(RZERO,rzero,FLOAT,FLOAT,PFLOAT,PFLOAT,FLOAT,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(TMPRNT,tmprnt,STRING,INT,INT,INT)
+#define TMPRNT(A1,A2,A3,A4)  CCALLSFSUB4(TMPRNT,tmprnt,STRING,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(VRAN2S,vran2s,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT)
+#define VRAN2S(A1,A2,A3,A4,A5)  CCALLSFSUB5(VRAN2S,vran2s,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(VRAN3S,vran3s,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT)
+#define VRAN3S(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(VRAN3S,vran3s,FLOAT,INT,PFLOAT,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB0(ABEND,abend)
+#define ABEND() CCALLSFSUB0(ABEND,abend)
+
+PROTOCCALLSFSUB4(BITPOS,bitpos,INTV,INT,PINT,PINT)
+#define BITPOS(A1,A2,A3,A4)  CCALLSFSUB4(BITPOS,bitpos,INTV,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(BLOW,blow,FLOATV,INTV,INTV,INT)
+#define BLOW(A1,A2,A3,A4)  CCALLSFSUB4(BLOW,blow,FLOATV,INTV,INTV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(BUNCH,bunch,INTV,FLOATV,INTV,INT)
+#define BUNCH(A1,A2,A3,A4)  CCALLSFSUB4(BUNCH,bunch,INTV,FLOATV,INTV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(CBYT,cbyt,INT,INT,PINT,INT,INT)
+#define CBYT(A1,A2,A3,A4,A5)  CCALLSFSUB5(CBYT,cbyt,INT,INT,PINT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(CCOPIV,ccopiv,BYTEV,PBYTE,INT)
+#define CCOPIV(A1,A2,A3)  CCALLSFSUB3(CCOPIV,ccopiv,BYTEV,PBYTE,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(CCOPYL,ccopyl,BYTEV,PBYTE,INT)
+#define CCOPYL(A1,A2,A3)  CCALLSFSUB3(CCOPYL,ccopyl,BYTEV,PBYTE,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(CCOPYR,ccopyr,BYTEV,PBYTE,INT)
+#define CCOPYR(A1,A2,A3)  CCALLSFSUB3(CCOPYR,ccopyr,BYTEV,PBYTE,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(CCOSUB,ccosub,BYTE,PBYTE,INT,INT,BYTE,BYTE)
+#define CCOSUB(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CCOSUB,ccosub,BYTE,PBYTE,INT,INT,BYTE,BYTE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(CENVIR,cenvir,BYTE,INT,PBYTE,INT,INT,INT)
+#define CENVIR(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(CENVIR,cenvir,BYTE,INT,PBYTE,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(CFILL,cfill,BYTE,PBYTE,INT,INT)
+#define CFILL(A1,A2,A3,A4)  CCALLSFSUB4(CFILL,cfill,BYTE,PBYTE,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(CFOPEN,cfopen,PINT,INT,INT,BYTE,INT,BYTE,PINT)
+#define CFOPEN(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(CFOPEN,cfopen,PINT,INT,INT,BYTE,INT,BYTE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(CFWEOF,cfweof,INT,INT,PINT)
+#define CFWEOF(A1,A2,A3)  CCALLSFSUB3(CFWEOF,cfweof,INT,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(CHTOI,chtoi,FLOAT,INT)
+#define CHTOI(A1,A2)  CCALLSFSUB2(CHTOI,chtoi,FLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB4(CIOPEN,ciopen,PINT,BYTE,BYTE,PINT)
+#define CIOPEN(A1,A2,A3,A4)  CCALLSFSUB4(CIOPEN,ciopen,PINT,BYTE,BYTE,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(CKRACK,ckrack,BYTEV,INTV,INTV,INT)
+#define CKRACK(A1,A2,A3,A4)  CCALLSFSUB4(CKRACK,ckrack,BYTEV,INTV,INTV,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(CLEFT,cleft,PBYTE,INTV,INTV)
+#define CLEFT(A1,A2,A3)  CCALLSFSUB3(CLEFT,cleft,PBYTE,INTV,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB1(CLTOU,cltou,PBYTE)
+#define CLTOU(A1)  CCALLSFSUB1(CLTOU,cltou,PBYTE,A1)
+
+PROTOCCALLSFSUB3(CRIGHT,cright,PBYTE,INTV,INTV)
+#define CRIGHT(A1,A2,A3)  CCALLSFSUB3(CRIGHT,cright,PBYTE,INTV,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB3(CROSS,cross,FLOATV,FLOATV,PFLOAT)
+#define CROSS(A1,A2,A3)  CCALLSFSUB3(CROSS,cross,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(CSETDI,csetdi,INTV,PBYTE,INTV,INTV)
+#define CSETDI(A1,A2,A3,A4)  CCALLSFSUB4(CSETDI,csetdi,INTV,PBYTE,INTV,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(CSETHI,csethi,INTV,PBYTE,INTV,INTV)
+#define CSETHI(A1,A2,A3,A4)  CCALLSFSUB4(CSETHI,csethi,INTV,PBYTE,INTV,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(CSETOI,csetoi,INTV,PBYTE,INTV,INTV)
+#define CSETOI(A1,A2,A3,A4)  CCALLSFSUB4(CSETOI,csetoi,INTV,PBYTE,INTV,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(CSETVI,csetvi,INTV,INTV,INTV,BYTE,INTV,INTV,INTV,INTV)
+#define CSETVI(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CSETVI,csetvi,INTV,INTV,INTV,BYTE,INTV,INTV,INTV,INTV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB8(CSETVM,csetvm,INTV,INTV,INTV,BYTE,INTV,INTV,INTV,INTV)
+#define CSETVM(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(CSETVM,csetvm,INTV,INTV,INTV,BYTE,INTV,INTV,INTV,INTV,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB3(CSQMBL,csqmbl,PBYTE,INTV,INTV)
+#define CSQMBL(A1,A2,A3)  CCALLSFSUB3(CSQMBL,csqmbl,PBYTE,INTV,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(CSQMCH,csqmch,STRING,PBYTE,INTV,INTV)
+#define CSQMCH(A1,A2,A3,A4)  CCALLSFSUB4(CSQMCH,csqmch,STRING,PBYTE,INTV,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(CTRANS,ctrans,STRING,STRING,STRING,INT,INT)
+#define CTRANS(A1,A2,A3,A4,A5)  CCALLSFSUB5(CTRANS,ctrans,STRING,STRING,STRING,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(CUTOL,cutol,PBYTE)
+#define CUTOL(A1)  CCALLSFSUB1(CUTOL,cutol,PBYTE,A1)
+
+PROTOCCALLSFSUB2(DATIME,datime,PINT,PINT)
+#define DATIME(A1,A2)  CCALLSFSUB2(DATIME,datime,PINT,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(DATIMH,datimh,INTV,INTV)
+#define DATIMH(A1,A2)  CCALLSFSUB2(DATIMH,datimh,INTV,INTV,A1,A2)
+
+PROTOCCALLSFSUB4(FFSIZE,ffsize,INT,INT,PINT,PINT)
+#define FFSIZE(A1,A2,A3,A4)  CCALLSFSUB4(FFSIZE,ffsize,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(FLPSOR,flpsor,PFLOAT,INT)
+#define FLPSOR(A1,A2)  CCALLSFSUB2(FLPSOR,flpsor,PFLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(GETENVF,getenvf,STRING,STRING)
+#define GETENVF(A1,A2)  CCALLSFSUB2(GETENVF,getenvf,STRING,STRING,A1,A2)
+
+PROTOCCALLSFSUB1(GETWDF,getwdf,BYTE)
+#define GETWDF(A1)  CCALLSFSUB1(GETWDF,getwdf,BYTE,A1)
+
+PROTOCCALLSFSUB1(GSHOW,gshow,INT)
+#define GSHOW(A1)  CCALLSFSUB1(GSHOW,gshow,INT,A1)
+
+PROTOCCALLSFSUB1(GSHOWF,gshowf,INT)
+#define GSHOWF(A1)  CCALLSFSUB1(GSHOWF,gshowf,INT,A1)
+
+PROTOCCALLSFSUB4(IE3FOD,ie3fod,INTV,INTV,INT,PINT)
+#define IE3FOD(A1,A2,A3,A4)  CCALLSFSUB4(IE3FOD,ie3fod,INTV,INTV,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(IE3FOS,ie3fos,INTV,INTV,INT,PINT)
+#define IE3FOS(A1,A2,A3,A4)  CCALLSFSUB4(IE3FOS,ie3fos,INTV,INTV,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(IE3TOD,ie3tod,INTV,INTV,INT,PINT)
+#define IE3TOD(A1,A2,A3,A4)  CCALLSFSUB4(IE3TOD,ie3tod,INTV,INTV,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(IE3TOS,ie3tos,INTV,INTV,INT,PINT)
+#define IE3TOS(A1,A2,A3,A4)  CCALLSFSUB4(IE3TOS,ie3tos,INTV,INTV,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(INTSOR,intsor,PINT,INT)
+#define INTSOR(A1,A2)  CCALLSFSUB2(INTSOR,intsor,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(ITOCH,itoch,INT,FLOAT)
+#define ITOCH(A1,A2)  CCALLSFSUB2(ITOCH,itoch,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(JOBNAM,jobnam,PINT)
+#define JOBNAM(A1)  CCALLSFSUB1(JOBNAM,jobnam,PINT,A1)
+
+PROTOCCALLSFSUB2(JUMPX2,jumpx2,INTV,INTV)
+#define JUMPX2(A1,A2)  CCALLSFSUB2(JUMPX2,jumpx2,INTV,INTV,A1,A2)
+
+PROTOCCALLSFSUB3(JUMPY2,jumpy2,FLOAT,INTV,INTV)
+#define JUMPY2(A1,A2,A3)  CCALLSFSUB3(JUMPY2,jumpy2,FLOAT,INTV,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB1(KERNGT,kerngt,INT)
+#define KERNGT(A1)  CCALLSFSUB1(KERNGT,kerngt,INT,A1)
+
+PROTOCCALLSFSUB3(LOREN4,loren4,FLOATV,FLOATV,PFLOAT)
+#define LOREN4(A1,A2,A3)  CCALLSFSUB3(LOREN4,loren4,FLOATV,FLOATV,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(LORENB,lorenb,FLOAT,FLOATV,FLOATV,PFLOAT)
+#define LORENB(A1,A2,A3,A4)  CCALLSFSUB4(LORENB,lorenb,FLOAT,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(LORENF,lorenf,FLOAT,FLOATV,FLOATV,PFLOAT)
+#define LORENF(A1,A2,A3,A4)  CCALLSFSUB4(LORENF,lorenf,FLOAT,FLOATV,FLOATV,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(MATIN1,matin1,PFLOAT,INT,INT,INT,INT,PINT,PINT,PFLOAT)
+#define MATIN1(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(MATIN1,matin1,PFLOAT,INT,INT,INT,INT,PINT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB5(MVBITS,mvbits,INT,INT,INT,PINT,INT)
+#define MVBITS(A1,A2,A3,A4,A5)  CCALLSFSUB5(MVBITS,mvbits,INT,INT,INT,PINT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(MXEQU,mxequ,PFLOAT,FLOATV,INT,INT)
+#define MXEQU(A1,A2,A3,A4)  CCALLSFSUB4(MXEQU,mxequ,PFLOAT,FLOATV,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB6(MXMAD,mxmad,FLOATV,FLOATV,FLOATV,INT,INT,INT)
+#define MXMAD(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MXMAD,mxmad,FLOATV,FLOATV,FLOATV,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(MXMLRT,mxmlrt,FLOATV,FLOATV,FLOATV,INT,INT)
+#define MXMLRT(A1,A2,A3,A4,A5)  CCALLSFSUB5(MXMLRT,mxmlrt,FLOATV,FLOATV,FLOATV,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(MXTRP,mxtrp,FLOATV,PFLOAT,INT,INT)
+#define MXTRP(A1,A2,A3,A4)  CCALLSFSUB4(MXTRP,mxtrp,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(MXUTY,mxuty,PFLOAT,INT)
+#define MXUTY(A1,A2)  CCALLSFSUB2(MXUTY,mxuty,PFLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB1(NOARG,noarg,INT)
+#define NOARG(A1)  CCALLSFSUB1(NOARG,noarg,INT,A1)
+
+PROTOCCALLSFSUB1(PERRORF,perrorf,BYTE)
+#define PERRORF(A1)  CCALLSFSUB1(PERRORF,perrorf,BYTE,A1)
+
+PROTOCCALLSFSUB5(PKBYT,pkbyt,INTV,PINT,INTV,INTV,INTV)
+#define PKBYT(A1,A2,A3,A4,A5)  CCALLSFSUB5(PKBYT,pkbyt,INTV,PINT,INTV,INTV,INTV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(PKCHAR,pkchar,INTV,PINT,INT,INTV)
+#define PKCHAR(A1,A2,A3,A4)  CCALLSFSUB4(PKCHAR,pkchar,INTV,PINT,INT,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(POWEZE,poweze,FLOAT,PFLOAT,INT)
+#define POWEZE(A1,A2,A3)  CCALLSFSUB3(POWEZE,poweze,FLOAT,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(RANECQ,ranecq,PINT,PINT,INT,STRING)
+#define RANECQ(A1,A2,A3,A4)  CCALLSFSUB4(RANECQ,ranecq,PINT,PINT,INT,STRING,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(RANECU,ranecu,PFLOAT,INT,INT)
+#define RANECU(A1,A2,A3)  CCALLSFSUB3(RANECU,ranecu,PFLOAT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(RANMAR,ranmar,PFLOAT,INT)
+#define RANMAR(A1,A2)  CCALLSFSUB2(RANMAR,ranmar,PFLOAT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(RANNOR,rannor,PFLOAT,PFLOAT)
+#define RANNOR(A1,A2)  CCALLSFSUB2(RANNOR,rannor,PFLOAT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB3(RMMAQ,rmmaq,PINT,PINT,BYTE)
+#define RMMAQ(A1,A2,A3)  CCALLSFSUB3(RMMAQ,rmmaq,PINT,PINT,BYTE,A1,A2,A3)
+
+PROTOCCALLSFSUB3(RMMAR,rmmar,PFLOAT,INT,INT)
+#define RMMAR(A1,A2,A3)  CCALLSFSUB3(RMMAR,rmmar,PFLOAT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(ROT,rot,FLOATV,FLOAT,PFLOAT)
+#define ROT(A1,A2,A3)  CCALLSFSUB3(ROT,rot,FLOATV,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(SBIT,sbit,INT,PINT,INT)
+#define SBIT(A1,A2,A3)  CCALLSFSUB3(SBIT,sbit,INT,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(SBIT0,sbit0,PINT,INT)
+#define SBIT0(A1,A2)  CCALLSFSUB2(SBIT0,sbit0,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB2(SBIT1,sbit1,PINT,INT)
+#define SBIT1(A1,A2)  CCALLSFSUB2(SBIT1,sbit1,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB4(SBYT,sbyt,INT,PINT,INT,INT)
+#define SBYT(A1,A2,A3,A4)  CCALLSFSUB4(SBYT,sbyt,INT,PINT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SBYTOR,sbytor,INT,PINT,INT,INT)
+#define SBYTOR(A1,A2,A3,A4)  CCALLSFSUB4(SBYTOR,sbytor,INT,PINT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SBYTPK,sbytpk,INT,FLOATV,INT,INTV)
+#define SBYTPK(A1,A2,A3,A4)  CCALLSFSUB4(SBYTPK,sbytpk,INT,FLOATV,INT,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(SETFMT,setfmt,PINT,PINT,INT,FLOATV,INT)
+#define SETFMT(A1,A2,A3,A4,A5)  CCALLSFSUB5(SETFMT,setfmt,PINT,PINT,INT,FLOATV,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(SMXINV,smxinv,PFLOAT,INT,PINT)
+#define SMXINV(A1,A2,A3)  CCALLSFSUB3(SMXINV,smxinv,PFLOAT,INT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(SORCHA,sorcha,PSTRINGV,INT,INT,INT,INT)
+#define SORCHA(A1,A2,A3,A4,A5)  CCALLSFSUB5(SORCHA,sorcha,PSTRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(SORTD,sortd,PDOUBLE,INT,INT,INT)
+#define SORTD(A1,A2,A3,A4)  CCALLSFSUB4(SORTD,sortd,PDOUBLE,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SORTI,sorti,PINT,INT,INT,INT)
+#define SORTI(A1,A2,A3,A4)  CCALLSFSUB4(SORTI,sorti,PINT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(SORTR,sortr,PFLOAT,INT,INT,INT)
+#define SORTR(A1,A2,A3,A4)  CCALLSFSUB4(SORTR,sortr,PFLOAT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(SORTTC,sorttc,INTV,PINT,INT)
+#define SORTTC(A1,A2,A3)  CCALLSFSUB3(SORTTC,sorttc,INTV,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(SORTTF,sorttf,FLOATV,PINT,INT)
+#define SORTTF(A1,A2,A3)  CCALLSFSUB3(SORTTF,sorttf,FLOATV,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(SORTTI,sortti,INTV,PINT,INT)
+#define SORTTI(A1,A2,A3)  CCALLSFSUB3(SORTTI,sortti,INTV,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(SORTX,sortx,PINT,INT,INT,INT,PINT)
+#define SORTX(A1,A2,A3,A4,A5)  CCALLSFSUB5(SORTX,sortx,PINT,INT,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(SORTZV,sortzv,FLOATV,PINT,INT,INT,INT,INT)
+#define SORTZV(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(SORTZV,sortzv,FLOATV,PINT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(TCDUMP,tcdump,INT,INTV,INT,INT)
+#define TCDUMP(A1,A2,A3,A4)  CCALLSFSUB4(TCDUMP,tcdump,INT,INTV,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(TLERR,tlerr,PFLOAT,PFLOAT,PFLOAT,PINT)
+#define TLERR(A1,A2,A3,A4)  CCALLSFSUB4(TLERR,tlerr,PFLOAT,PFLOAT,PFLOAT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(TLPIV,tlpiv,FLOATV,FLOATV,INT,INT,INT,PFLOAT,PFLOAT)
+#define TLPIV(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(TLPIV,tlpiv,FLOATV,FLOATV,INT,INT,INT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB3(TLRES,tlres,FLOATV,PFLOAT,FLOATV)
+#define TLRES(A1,A2,A3)  CCALLSFSUB3(TLRES,tlres,FLOATV,PFLOAT,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB6(TLS,tls,FLOATV,FLOATV,PFLOAT,PINT,FLOAT,PFLOAT)
+#define TLS(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TLS,tls,FLOATV,FLOATV,PFLOAT,PINT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(TLSC,tlsc,PFLOAT,PFLOAT,PFLOAT,PINT,FLOAT,PFLOAT)
+#define TLSC(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(TLSC,tlsc,PFLOAT,PFLOAT,PFLOAT,PINT,FLOAT,PFLOAT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(TLSMSQ,tlsmsq,FLOATV,INT,INT,PFLOAT)
+#define TLSMSQ(A1,A2,A3,A4)  CCALLSFSUB4(TLSMSQ,tlsmsq,FLOATV,INT,INT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB7(TLSTEP,tlstep,FLOATV,PFLOAT,INT,INT,INT,INT,FLOAT)
+#define TLSTEP(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(TLSTEP,tlstep,FLOATV,PFLOAT,INT,INT,INT,INT,FLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(TLSWOP,tlswop,PFLOAT,PFLOAT,INT,INT)
+#define TLSWOP(A1,A2,A3,A4)  CCALLSFSUB4(TLSWOP,tlswop,PFLOAT,PFLOAT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(TLUK,tluk,PFLOAT,INT,PINT,PFLOAT,PFLOAT)
+#define TLUK(A1,A2,A3,A4,A5)  CCALLSFSUB5(TLUK,tluk,PFLOAT,INT,PINT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(TMPRO,tmpro,BYTE)
+#define TMPRO(A1)  CCALLSFSUB1(TMPRO,tmpro,BYTE,A1)
+
+PROTOCCALLSFSUB2(TOSLAT,toslat,INT,INT)
+#define TOSLAT(A1,A2)  CCALLSFSUB2(TOSLAT,toslat,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB4(TRAAT,traat,FLOATV,PFLOAT,INT,INT)
+#define TRAAT(A1,A2,A3,A4)  CCALLSFSUB4(TRAAT,traat,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(TRACEQ,traceq,INT,INT)
+#define TRACEQ(A1,A2)  CCALLSFSUB2(TRACEQ,traceq,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB5(TRAL,tral,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRAL(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRAL,tral,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRALT,tralt,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRALT(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRALT,tralt,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRAS,tras,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRAS(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRAS,tras,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRASAT,trasat,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRASAT(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRASAT,trasat,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(TRATA,trata,FLOATV,PFLOAT,INT,INT)
+#define TRATA(A1,A2,A3,A4)  CCALLSFSUB4(TRATA,trata,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(TRATS,trats,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRATS(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRATS,trats,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRATSA,tratsa,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRATSA(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRATSA,tratsa,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(TRCHLU,trchlu,FLOATV,PFLOAT,INT)
+#define TRCHLU(A1,A2,A3)  CCALLSFSUB3(TRCHLU,trchlu,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(TRCHUL,trchul,FLOATV,PFLOAT,INT)
+#define TRCHUL(A1,A2,A3)  CCALLSFSUB3(TRCHUL,trchul,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(TRINV,trinv,FLOATV,PFLOAT,INT)
+#define TRINV(A1,A2,A3)  CCALLSFSUB3(TRINV,trinv,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(TRLA,trla,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRLA(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRLA,trla,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRLTA,trlta,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRLTA(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRLTA,trlta,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(TRPCK,trpck,FLOATV,PFLOAT,INT)
+#define TRPCK(A1,A2,A3)  CCALLSFSUB3(TRPCK,trpck,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(TRQSQ,trqsq,FLOATV,FLOATV,PFLOAT,INT)
+#define TRQSQ(A1,A2,A3,A4)  CCALLSFSUB4(TRQSQ,trqsq,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB5(TRSA,trsa,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRSA(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRSA,trsa,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(TRSAT,trsat,FLOATV,FLOATV,PFLOAT,INT,INT)
+#define TRSAT(A1,A2,A3,A4,A5)  CCALLSFSUB5(TRSAT,trsat,FLOATV,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(TRSINV,trsinv,FLOATV,FLOATV,INT)
+#define TRSINV(A1,A2,A3)  CCALLSFSUB3(TRSINV,trsinv,FLOATV,FLOATV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(TRSMLU,trsmlu,FLOATV,PFLOAT,INT)
+#define TRSMLU(A1,A2,A3)  CCALLSFSUB3(TRSMLU,trsmlu,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(TRSMUL,trsmul,FLOATV,PFLOAT,INT)
+#define TRSMUL(A1,A2,A3)  CCALLSFSUB3(TRSMUL,trsmul,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(TRUPCK,trupck,FLOATV,PFLOAT,INT)
+#define TRUPCK(A1,A2,A3)  CCALLSFSUB3(TRUPCK,trupck,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(UBITS,ubits,INTV,INT,PINT,PINT)
+#define UBITS(A1,A2,A3,A4)  CCALLSFSUB4(UBITS,ubits,INTV,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(UBLANK,ublank,PINT,INT,INT)
+#define UBLANK(A1,A2,A3)  CCALLSFSUB3(UBLANK,ublank,PINT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UBLOW,ublow,INTV,PINT,INTV)
+#define UBLOW(A1,A2,A3)  CCALLSFSUB3(UBLOW,ublow,INTV,PINT,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UBUNCH,ubunch,INTV,PINT,INTV)
+#define UBUNCH(A1,A2,A3)  CCALLSFSUB3(UBUNCH,ubunch,INTV,PINT,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB6(UCOCOP,ucocop,FLOATV,PFLOAT,INT,INT,INT,INT)
+#define UCOCOP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(UCOCOP,ucocop,FLOATV,PFLOAT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB3(UCOPIV,ucopiv,FLOATV,PFLOAT,INT)
+#define UCOPIV(A1,A2,A3)  CCALLSFSUB3(UCOPIV,ucopiv,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UCOPY,ucopy,FLOATV,PFLOAT,INT)
+#define UCOPY(A1,A2,A3)  CCALLSFSUB3(UCOPY,ucopy,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UCOPY2,ucopy2,FLOATV,PFLOAT,INT)
+#define UCOPY2(A1,A2,A3)  CCALLSFSUB3(UCOPY2,ucopy2,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UCOPYN,ucopyn,INTV,PINT,INT)
+#define UCOPYN(A1,A2,A3)  CCALLSFSUB3(UCOPYN,ucopyn,INTV,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(UCTOH,uctoh,BYTE,PINT,INT,INT)
+#define UCTOH(A1,A2,A3,A4)  CCALLSFSUB4(UCTOH,uctoh,BYTE,PINT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(UCTOH1,uctoh1,BYTE,PINT,INT)
+#define UCTOH1(A1,A2,A3)  CCALLSFSUB3(UCTOH1,uctoh1,BYTE,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB6(UDICOP,udicop,FLOATV,PFLOAT,INT,INT,INT,INT)
+#define UDICOP(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(UDICOP,udicop,FLOATV,PFLOAT,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB4(UFILL,ufill,PINT,INT,INT,INT)
+#define UFILL(A1,A2,A3,A4)  CCALLSFSUB4(UFILL,ufill,PINT,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(UFLINT,uflint,PFLOAT,INTV,INTV)
+#define UFLINT(A1,A2,A3)  CCALLSFSUB3(UFLINT,uflint,PFLOAT,INTV,INTV,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UH1TOC,uh1toc,INTV,PBYTE,INT)
+#define UH1TOC(A1,A2,A3)  CCALLSFSUB3(UH1TOC,uh1toc,INTV,PBYTE,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(UHOLLR,uhollr,FLOATV,INT,FLOATV)
+#define UHOLLR(A1,A2,A3)  CCALLSFSUB3(UHOLLR,uhollr,FLOATV,INT,FLOATV,A1,A2,A3)
+
+PROTOCCALLSFSUB4(UHTOC,uhtoc,INTV,INT,PBYTE,INT)
+#define UHTOC(A1,A2,A3,A4)  CCALLSFSUB4(UHTOC,uhtoc,INTV,INT,PBYTE,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(ULEFT,uleft,PINT,INT,INT)
+#define ULEFT(A1,A2,A3)  CCALLSFSUB3(ULEFT,uleft,PINT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(UOPT,uopt,FLOATV,FLOATV,PINT,INT)
+#define UOPT(A1,A2,A3,A4)  CCALLSFSUB4(UOPT,uopt,FLOATV,FLOATV,PINT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(UOPTC,uoptc,STRING,STRING,PINT)
+#define UOPTC(A1,A2,A3)  CCALLSFSUB3(UOPTC,uoptc,STRING,STRING,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(UPKBYT,upkbyt,INTV,INTV,PINT,INTV,INTV)
+#define UPKBYT(A1,A2,A3,A4,A5)  CCALLSFSUB5(UPKBYT,upkbyt,INTV,INTV,PINT,INTV,INTV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(UPKCH,upkch,INTV,PINT,INT,INTV)
+#define UPKCH(A1,A2,A3,A4)  CCALLSFSUB4(UPKCH,upkch,INTV,PINT,INT,INTV,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(URIGHT,uright,PINT,INT,INT)
+#define URIGHT(A1,A2,A3)  CCALLSFSUB3(URIGHT,uright,PINT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(USET,uset,INT,PINT,INT,INT)
+#define USET(A1,A2,A3,A4)  CCALLSFSUB4(USET,uset,INT,PINT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(USWOP,uswop,PFLOAT,PFLOAT,INT)
+#define USWOP(A1,A2,A3)  CCALLSFSUB3(USWOP,uswop,PFLOAT,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(UTRANS,utrans,FLOATV,FLOATV,INTV,INTV,INTV)
+#define UTRANS(A1,A2,A3,A4,A5)  CCALLSFSUB5(UTRANS,utrans,FLOATV,FLOATV,INTV,INTV,INTV,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(UZERO,uzero,PINT,INT,INT)
+#define UZERO(A1,A2,A3)  CCALLSFSUB3(UZERO,uzero,PINT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(VADD,vadd,FLOATV,FLOATV,PFLOAT,INT)
+#define VADD(A1,A2,A3,A4)  CCALLSFSUB4(VADD,vadd,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(VBIAS,vbias,FLOATV,FLOAT,PFLOAT,INT)
+#define VBIAS(A1,A2,A3,A4)  CCALLSFSUB4(VBIAS,vbias,FLOATV,FLOAT,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(VBLANK,vblank,PINT,INT)
+#define VBLANK(A1,A2)  CCALLSFSUB2(VBLANK,vblank,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB3(VCOPYN,vcopyn,FLOATV,PFLOAT,INT)
+#define VCOPYN(A1,A2,A3)  CCALLSFSUB3(VCOPYN,vcopyn,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(VEXCUM,vexcum,FLOATV,PFLOAT,INT)
+#define VEXCUM(A1,A2,A3)  CCALLSFSUB3(VEXCUM,vexcum,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(VFILL,vfill,PFLOAT,INT,FLOAT)
+#define VFILL(A1,A2,A3)  CCALLSFSUB3(VFILL,vfill,PFLOAT,INT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(VFIX,vfix,FLOATV,PINT,INT)
+#define VFIX(A1,A2,A3)  CCALLSFSUB3(VFIX,vfix,FLOATV,PINT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(VFLOAT,vfloat,INTV,PFLOAT,INT)
+#define VFLOAT(A1,A2,A3)  CCALLSFSUB3(VFLOAT,vfloat,INTV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(VIZPRI,vizpri,INT,BYTE)
+#define VIZPRI(A1,A2)  CCALLSFSUB2(VIZPRI,vizpri,INT,BYTE,A1,A2)
+
+PROTOCCALLSFSUB6(VLINCO,vlinco,FLOATV,FLOAT,FLOATV,FLOAT,PFLOAT,INT)
+#define VLINCO(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(VLINCO,vlinco,FLOATV,FLOAT,FLOATV,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB6(VLINE,vline,FLOATV,FLOAT,FLOATV,FLOAT,PFLOAT,INT)
+#define VLINE(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(VLINE,vline,FLOATV,FLOAT,FLOATV,FLOAT,PFLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB5(VMATL,vmatl,PFLOAT,FLOATV,PFLOAT,INT,INT)
+#define VMATL(A1,A2,A3,A4,A5)  CCALLSFSUB5(VMATL,vmatl,PFLOAT,FLOATV,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(VMATR,vmatr,FLOATV,PFLOAT,PFLOAT,INT,INT)
+#define VMATR(A1,A2,A3,A4,A5)  CCALLSFSUB5(VMATR,vmatr,FLOATV,PFLOAT,PFLOAT,INT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(VMUL,vmul,FLOATV,FLOATV,PFLOAT,INT)
+#define VMUL(A1,A2,A3,A4)  CCALLSFSUB4(VMUL,vmul,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(VSCALE,vscale,FLOATV,FLOAT,PFLOAT,INT)
+#define VSCALE(A1,A2,A3,A4)  CCALLSFSUB4(VSCALE,vscale,FLOATV,FLOAT,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(VSUB,vsub,FLOATV,FLOATV,PFLOAT,INT)
+#define VSUB(A1,A2,A3,A4)  CCALLSFSUB4(VSUB,vsub,FLOATV,FLOATV,PFLOAT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(VUNIT,vunit,FLOATV,PFLOAT,INT)
+#define VUNIT(A1,A2,A3)  CCALLSFSUB3(VUNIT,vunit,FLOATV,PFLOAT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(VZERO,vzero,PINT,INT)
+#define VZERO(A1,A2)  CCALLSFSUB2(VZERO,vzero,PINT,INT,A1,A2)
+
+PROTOCCALLSFSUB3(XINB,xinb,INT,FLOATV,PINT)
+#define XINB(A1,A2,A3)  CCALLSFSUB3(XINB,xinb,INT,FLOATV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(XINBF,xinbf,INT,FLOATV,PINT)
+#define XINBF(A1,A2,A3)  CCALLSFSUB3(XINBF,xinbf,INT,FLOATV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(XINBS,xinbs,INT,FLOATV,INT,FLOATV,PINT)
+#define XINBS(A1,A2,A3,A4,A5)  CCALLSFSUB5(XINBS,xinbs,INT,FLOATV,INT,FLOATV,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(XINCF,xincf,INT,FLOATV,PINT)
+#define XINCF(A1,A2,A3)  CCALLSFSUB3(XINCF,xincf,INT,FLOATV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(XOUTB,xoutb,INT,FLOATV,INT)
+#define XOUTB(A1,A2,A3)  CCALLSFSUB3(XOUTB,xoutb,INT,FLOATV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(XOUTBF,xoutbf,INT,FLOATV,INT)
+#define XOUTBF(A1,A2,A3)  CCALLSFSUB3(XOUTBF,xoutbf,INT,FLOATV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB5(XOUTBS,xoutbs,INT,FLOATV,INT,FLOATV,INT)
+#define XOUTBS(A1,A2,A3,A4,A5)  CCALLSFSUB5(XOUTBS,xoutbs,INT,FLOATV,INT,FLOATV,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(XOUTCF,xoutcf,INT,FLOATV,INT)
+#define XOUTCF(A1,A2,A3)  CCALLSFSUB3(XOUTCF,xoutcf,INT,FLOATV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB7(BINSIZ,binsiz,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PINT,PFLOAT)
+#define BINSIZ(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(BINSIZ,binsiz,FLOAT,FLOAT,INT,PFLOAT,PFLOAT,PINT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(CALDAT,caldat,INT,PBYTE,PINT,PINT)
+#define CALDAT(A1,A2,A3,A4)  CCALLSFSUB4(CALDAT,caldat,INT,PBYTE,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(CDMON,cdmon,INT,INT,PINT,PINT)
+#define CDMON(A1,A2,A3,A4)  CCALLSFSUB4(CDMON,cdmon,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB4(CYDIY,cydiy,INT,PINT,PINT,PINT)
+#define CYDIY(A1,A2,A3,A4)  CCALLSFSUB4(CYDIY,cydiy,INT,PINT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(GETBIT,getbit,INT,INTV,PINT)
+#define GETBIT(A1,A2,A3)  CCALLSFSUB3(GETBIT,getbit,INT,INTV,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(GETBYT,getbyt,INTV,INT,INT,PINT)
+#define GETBYT(A1,A2,A3,A4)  CCALLSFSUB4(GETBYT,getbyt,INTV,INT,INT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(INITC,initc)
+#define INITC() CCALLSFSUB0(INITC,initc)
+
+PROTOCCALLSFSUB7(NAMEFD,namefd,INT,STRING,PSTRINGV,INT,PSTRINGV,INT,PINT)
+#define NAMEFD(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(NAMEFD,namefd,INT,STRING,STRINGV,INT,PSTRINGV,INT,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(RDINT,rdint,PINT)
+#define RDINT(A1)  CCALLSFSUB1(RDINT,rdint,PINT,A1)
+
+PROTOCCALLSFSUB1(RDLOAD,rdload,STRING)
+#define RDLOAD(A1)  CCALLSFSUB1(RDLOAD,rdload,STRING,A1)
+
+PROTOCCALLSFSUB2(RDMANT,rdmant,INT,PINT)
+#define RDMANT(A1,A2)  CCALLSFSUB2(RDMANT,rdmant,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB1(RDMODE,rdmode,INT)
+#define RDMODE(A1)  CCALLSFSUB1(RDMODE,rdmode,INT,A1)
+
+PROTOCCALLSFSUB1(RDNAME,rdname,PSTRING)
+#define RDNAME(A1)  CCALLSFSUB1(RDNAME,rdname,PSTRING,A1)
+
+PROTOCCALLSFSUB0(RDNEXT,rdnext)
+#define RDNEXT() CCALLSFSUB0(RDNEXT,rdnext)
+
+PROTOCCALLSFSUB0(RDSKIP,rdskip)
+#define RDSKIP() CCALLSFSUB0(RDSKIP,rdskip)
+
+PROTOCCALLSFSUB0(RDSKPB,rdskpb)
+#define RDSKPB() CCALLSFSUB0(RDSKPB,rdskpb)
+
+PROTOCCALLSFSUB1(RDUPST,rdupst,PSTRING)
+#define RDUPST(A1)  CCALLSFSUB1(RDUPST,rdupst,PSTRING,A1)
+
+PROTOCCALLSFSUB4(RDWORD,rdword,PINT,PFLOAT,PSTRING,PINT)
+#define RDWORD(A1,A2,A3,A4)  CCALLSFSUB4(RDWORD,rdword,PINT,PFLOAT,PSTRING,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(SETBIT,setbit,INT,INTV,INT)
+#define SETBIT(A1,A2,A3)  CCALLSFSUB3(SETBIT,setbit,INT,INTV,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(SETBYT,setbyt,INTV,INT,INT,INT)
+#define SETBYT(A1,A2,A3,A4)  CCALLSFSUB4(SETBYT,setbyt,INTV,INT,INT,INT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(UMCOM,umcom,STRING,STRING,STRING)
+#define UMCOM(A1,A2,A3)  CCALLSFSUB3(UMCOM,umcom,STRING,STRING,STRING,A1,A2,A3)
+
+PROTOCCALLSFSUB2(WHICH,which,PINT,PINT)
+#define WHICH(A1,A2)  CCALLSFSUB2(WHICH,which,PINT,PINT,A1,A2)
+
+PROTOCCALLSFSUB3(WHICHF,whichf,STRING,STRING,PSTRING)
+#define WHICHF(A1,A2,A3)  CCALLSFSUB3(WHICHF,whichf,STRING,STRING,PSTRING,A1,A2,A3)
+
+PROTOCCALLSFSUB1(WORDSEP,wordsep,STRING)
+#define WORDSEP(A1)  CCALLSFSUB1(WORDSEP,wordsep,STRING,A1)
Index: trunk/SophyaExt/CodeMinuit/cfortran/kuip.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/kuip.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/kuip.h	(revision 2403)
@@ -0,0 +1,8 @@
+PROTOCCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT)
+#define KUCLOS(A1,A2,A3)    CCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB4(KUOPEN,kuopen,INT,STRING,STRING,PINT)
+#define KUOPEN(A1,A2,A3,A4) CCALLSFSUB4(KUOPEN,kuopen,INT,STRING,STRING,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(KUWHAG,kuwhag)
+#define KUWHAG() CCALLSFSUB0(KUWHAG,kuwhag)
Index: trunk/SophyaExt/CodeMinuit/cfortran/lepto62.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/lepto62.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/lepto62.h	(revision 2403)
@@ -0,0 +1,176 @@
+PROTOCCALLSFFUN2(FLOAT,DCROSS,dcross,FLOAT,FLOAT)
+#define DCROSS(A2,A3)  CCALLSFFUN2(DCROSS,dcross,FLOAT,FLOAT,A2,A3)
+
+PROTOCCALLSFFUN2(DOUBLE,DFUN,dfun,INT,DOUBLEV)
+#define DFUN(A2,A3)  CCALLSFFUN2(DFUN,dfun,INT,DOUBLEV,A2,A3)
+
+PROTOCCALLSFFUN1(FLOAT,DLOWER,dlower,FLOAT)
+#define DLOWER(A2)  CCALLSFFUN1(DLOWER,dlower,FLOAT,A2)
+
+PROTOCCALLSFFUN6(FLOAT,DQCD,dqcd,INT,INT,INT,FLOAT,FLOAT,FLOAT)
+#define DQCD(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(DQCD,dqcd,INT,INT,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFFUN5(FLOAT,DQCDI,dqcdi,INT,INT,FLOAT,FLOAT,FLOAT)
+#define DQCDI(A2,A3,A4,A5,A6)  CCALLSFFUN5(DQCDI,dqcdi,INT,INT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN1(FLOAT,DSIGMA,dsigma,FLOAT)
+#define DSIGMA(A2)  CCALLSFFUN1(DSIGMA,dsigma,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,DUPPER,dupper,FLOAT)
+#define DUPPER(A2)  CCALLSFFUN1(DUPPER,dupper,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,FLGINT,flgint,FLOAT)
+#define FLGINT(A2)  CCALLSFFUN1(FLGINT,flgint,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,FLQINT,flqint,FLOAT)
+#define FLQINT(A2)  CCALLSFFUN1(FLQINT,flqint,FLOAT,A2)
+
+PROTOCCALLSFFUN1(FLOAT,FLTINT,fltint,FLOAT)
+#define FLTINT(A2)  CCALLSFFUN1(FLTINT,fltint,FLOAT,A2)
+
+PROTOCCALLSFFUN5(FLOAT,GADAPF,gadapf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT)
+#define GADAPF(A2,A3,A4,A5,A6)  CCALLSFFUN5(GADAPF,gadapf,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN1(INT,LKINEM,lkinem,INT)
+#define LKINEM(A2)  CCALLSFFUN1(LKINEM,lkinem,INT,A2)
+
+PROTOCCALLSFFUN2(FLOAT,LMPINT,lmpint,PFLOAT,INT)
+#define LMPINT(A2,A3)  CCALLSFFUN2(LMPINT,lmpint,PFLOAT,INT,A2,A3)
+
+PROTOCCALLSFFUN5(INT,LQMCUT,lqmcut,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT)
+#define LQMCUT(A2,A3,A4,A5,A6)  CCALLSFFUN5(LQMCUT,lqmcut,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFFUN1(DOUBLE,RIWFUN,riwfun,DOUBLEV)
+#define RIWFUN(A2)  CCALLSFFUN1(RIWFUN,riwfun,DOUBLEV,A2)
+
+PROTOCCALLSFSUB0(DVNOPT,dvnopt)
+#define DVNOPT() CCALLSFSUB0(DVNOPT,dvnopt)
+
+PROTOCCALLSFSUB3(FLINTG,flintg,FLOAT,FLOAT,FLOAT)
+#define FLINTG(A1,A2,A3)  CCALLSFSUB3(FLINTG,flintg,FLOAT,FLOAT,FLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(FLIPOL,flipol,PFLOAT,PFLOAT,PFLOAT)
+#define FLIPOL(A1,A2,A3)  CCALLSFSUB3(FLIPOL,flipol,PFLOAT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB0(FLTABL,fltabl)
+#define FLTABL() CCALLSFSUB0(FLTABL,fltabl)
+
+PROTOCCALLSFSUB5(GADAP,gadap,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define GADAP(A1,A2,A3,A4,A5)  CCALLSFSUB5(GADAP,gadap,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB7(GADAP2,gadap2,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT)
+#define GADAP2(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(GADAP2,gadap2,FLOAT,FLOAT,FLOAT,FLOAT,FLOAT,PFLOAT,PFLOAT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(LAZIMU,lazimu,FLOAT,FLOAT)
+#define LAZIMU(A1,A2)  CCALLSFSUB2(LAZIMU,lazimu,FLOAT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB0(LEPTO,lepto)
+#define LEPTO() CCALLSFSUB0(LEPTO,lepto)
+
+PROTOCCALLSFSUB0(LEPTOX,leptox)
+#define LEPTOX() CCALLSFSUB0(LEPTOX,leptox)
+
+PROTOCCALLSFSUB2(LFLAV,lflav,PINT,PINT)
+#define LFLAV(A1,A2)  CCALLSFSUB2(LFLAV,lflav,PINT,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(LFRAME,lframe,INT,INT)
+#define LFRAME(A1,A2)  CCALLSFSUB2(LFRAME,lframe,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB5(LINIT,linit,INT,INT,FLOAT,FLOAT,INT)
+#define LINIT(A1,A2,A3,A4,A5)  CCALLSFSUB5(LINIT,linit,INT,INT,FLOAT,FLOAT,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB0(LMCMND,lmcmnd)
+#define LMCMND() CCALLSFSUB0(LMCMND,lmcmnd)
+
+PROTOCCALLSFSUB0(LMEPS,lmeps)
+#define LMEPS() CCALLSFSUB0(LMEPS,lmeps)
+
+PROTOCCALLSFSUB0(LMIDA2,lmida2)
+#define LMIDA2() CCALLSFSUB0(LMIDA2,lmida2)
+
+PROTOCCALLSFSUB0(LMIDAT,lmidat)
+#define LMIDAT() CCALLSFSUB0(LMIDAT,lmidat)
+
+PROTOCCALLSFSUB0(LMINEW,lminew)
+#define LMINEW() CCALLSFSUB0(LMINEW,lminew)
+
+PROTOCCALLSFSUB1(LMINTO,lminto,FLOATV)
+#define LMINTO(A1)  CCALLSFSUB1(LMINTO,lminto,FLOATV,A1)
+
+PROTOCCALLSFSUB2(LMPRIN,lmprin,INT,FLOAT)
+#define LMPRIN(A1,A2)  CCALLSFSUB2(LMPRIN,lmprin,INT,FLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(LMRAZZ,lmrazz,FLOAT,FLOATV)
+#define LMRAZZ(A1,A2)  CCALLSFSUB2(LMRAZZ,lmrazz,FLOAT,FLOATV,A1,A2)
+
+PROTOCCALLSFSUB0(LMSIMP,lmsimp)
+#define LMSIMP() CCALLSFSUB0(LMSIMP,lmsimp)
+
+PROTOCCALLSFSUB3(LNSTRF,lnstrf,FLOAT,FLOAT,PFLOAT)
+#define LNSTRF(A1,A2,A3)  CCALLSFSUB3(LNSTRF,lnstrf,FLOAT,FLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB3(LPRIKT,lprikt,FLOAT,PFLOAT,PFLOAT)
+#define LPRIKT(A1,A2,A3)  CCALLSFSUB3(LPRIKT,lprikt,FLOAT,PFLOAT,PFLOAT,A1,A2,A3)
+
+PROTOCCALLSFSUB1(LPRWTS,lprwts,INT)
+#define LPRWTS(A1)  CCALLSFSUB1(LPRWTS,lprwts,INT,A1)
+
+PROTOCCALLSFSUB2(LQCDPR,lqcdpr,PFLOAT,PFLOAT)
+#define LQCDPR(A1,A2)  CCALLSFSUB2(LQCDPR,lqcdpr,PFLOAT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB2(LQEVAR,lqevar,INT,INT)
+#define LQEVAR(A1,A2)  CCALLSFSUB2(LQEVAR,lqevar,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB0(LQEV,lqev)
+#define LQEV() CCALLSFSUB0(LQEV,lqev)
+
+PROTOCCALLSFSUB0(LQGEV,lqgev)
+#define LQGEV() CCALLSFSUB0(LQGEV,lqgev)
+
+PROTOCCALLSFSUB0(LQQBEV,lqqbev)
+#define LQQBEV() CCALLSFSUB0(LQQBEV,lqqbev)
+
+PROTOCCALLSFSUB5(LREMH,lremh,INT,FLOAT,PINT,INT,PFLOAT)
+#define LREMH(A1,A2,A3,A4,A5)  CCALLSFSUB5(LREMH,lremh,INT,FLOAT,PINT,INT,PFLOAT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB2(LSCALE,lscale,INT,PFLOAT)
+#define LSCALE(A1,A2)  CCALLSFSUB2(LSCALE,lscale,INT,PFLOAT,A1,A2)
+
+PROTOCCALLSFSUB1(LSHOWR,lshowr,INT)
+#define LSHOWR(A1)  CCALLSFSUB1(LSHOWR,lshowr,INT,A1)
+
+PROTOCCALLSFSUB5(LSIGMX,lsigmx,INT,FLOATV,PFLOAT,FLOATV,INT)
+#define LSIGMX(A1,A2,A3,A4,A5)  CCALLSFSUB5(LSIGMX,lsigmx,INT,FLOATV,PFLOAT,FLOATV,INT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB1(LTIMEX,ltimex,PFLOAT)
+#define LTIMEX(A1)  CCALLSFSUB1(LTIMEX,ltimex,PFLOAT,A1)
+
+PROTOCCALLSFSUB1(LWBB,lwbb,PFLOAT)
+#define LWBB(A1)  CCALLSFSUB1(LWBB,lwbb,PFLOAT,A1)
+
+PROTOCCALLSFSUB1(LWEITS,lweits,INT)
+#define LWEITS(A1)  CCALLSFSUB1(LWEITS,lweits,INT,A1)
+
+PROTOCCALLSFSUB2(LXP,lxp,PFLOAT,PINT)
+#define LXP(A1,A2)  CCALLSFSUB2(LXP,lxp,PFLOAT,PINT,A1,A2)
+
+PROTOCCALLSFSUB0(LXSECT,lxsect)
+#define LXSECT() CCALLSFSUB0(LXSECT,lxsect)
+
+PROTOCCALLSFSUB2(LYREMN,lyremn,INT,INT)
+#define LYREMN(A1,A2)  CCALLSFSUB2(LYREMN,lyremn,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB4(LYSPLI,lyspli,INT,INT,PINT,PINT)
+#define LYSPLI(A1,A2,A3,A4)  CCALLSFSUB4(LYSPLI,lyspli,INT,INT,PINT,PINT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(LYSSPA,lysspa,INT,INT)
+#define LYSSPA(A1,A2)  CCALLSFSUB2(LYSSPA,lysspa,INT,INT,A1,A2)
+
+PROTOCCALLSFSUB4(LYSTFU,lystfu,INT,FLOAT,FLOAT,PFLOAT)
+#define LYSTFU(A1,A2,A3,A4)  CCALLSFSUB4(LYSTFU,lystfu,INT,FLOAT,FLOAT,PFLOAT,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB3(LZP,lzp,FLOAT,PFLOAT,PINT)
+#define LZP(A1,A2,A3)  CCALLSFSUB3(LZP,lzp,FLOAT,PFLOAT,PINT,A1,A2,A3)
+
+PROTOCCALLSFSUB0(RIWIBD,riwibd)
+#define RIWIBD() CCALLSFSUB0(RIWIBD,riwibd)
Index: trunk/SophyaExt/CodeMinuit/cfortran/minuit.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/minuit.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/minuit.h	(revision 2403)
@@ -0,0 +1,192 @@
+/*
+ *  Interface to minuit using cfortran.h
+ *
+ *  Edit history:
+ *  G.Folger  12-Dec-94  change some to use ROUTINE for passing fcn/futil
+ */
+
+PROTOCCALLSFFUN1(LOGICAL,MNUNPT,mnunpt,BYTE)
+#define MNUNPT(A2)  CCALLSFFUN1(MNUNPT,mnunpt,BYTE,A2)
+
+PROTOCCALLSFSUB2(MINUIT,minuit,ROUTINE,ROUTINE)
+#define MINUIT(A1,A2)  CCALLSFSUB2(MINUIT,minuit,ROUTINE,ROUTINE,A1,A2)
+
+PROTOCCALLSFSUB2(MNAMIN,mnamin,DOUBLE,DOUBLE)
+#define MNAMIN(A1,A2)  CCALLSFSUB2(MNAMIN,mnamin,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB7(MNBINS,mnbins,DOUBLE,DOUBLE,INT,PDOUBLE,PDOUBLE,PINT,PDOUBLE)
+#define MNBINS(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNBINS,mnbins,DOUBLE,DOUBLE,INT,PDOUBLE,PDOUBLE,PINT,PDOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB4(MNCALF,mncalf,DOUBLE,DOUBLEV,PDOUBLE,DOUBLE)
+#define MNCALF(A1,A2,A3,A4)  CCALLSFSUB4(MNCALF,mncalf,DOUBLE,DOUBLEV,PDOUBLE,DOUBLE,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB0(MNCLER,mncler)
+#define MNCLER() CCALLSFSUB0(MNCLER,mncler)
+
+PROTOCCALLSFSUB5(MNCNTR,mncntr,DOUBLE,INT,INT,PINT,DOUBLE)
+#define MNCNTR(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNCNTR,mncntr,DOUBLE,INT,INT,PINT,DOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(MNCOMD,mncomd,ROUTINE,STRING,PINT,ROUTINE)
+#define MNCOMD(A1,A2,A3,A4)  CCALLSFSUB4(MNCOMD,mncomd,ROUTINE,STRING,PINT,ROUTINE,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB8(MNCONT,mncont,ROUTINE,INT,INT,INT,PDOUBLE,PDOUBLE,PINT,ROUTINE)
+#define MNCONT(A1,A2,A3,A4,A5,A6,A7,A8)  CCALLSFSUB8(MNCONT,mncont,ROUTINE,INT,INT,INT,PDOUBLE,PDOUBLE,PINT,ROUTINE,A1,A2,A3,A4,A5,A6,A7,A8)
+
+PROTOCCALLSFSUB9(MNCRCK,mncrck,STRING,INT,PSTRING,PINT,INT,PDOUBLE,PINT,PINT,INT)
+#define MNCRCK(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(MNCRCK,mncrck,STRING,INT,PSTRING,PINT,INT,PDOUBLE,PINT,PINT,INT,A1,A2,A3,A4,A5,A6,A7,A8,A9)
+
+PROTOCCALLSFSUB4(MNCROS,mncros,DOUBLE,PDOUBLE,PINT,DOUBLE)
+#define MNCROS(A1,A2,A3,A4)  CCALLSFSUB4(MNCROS,mncros,DOUBLE,PDOUBLE,PINT,DOUBLE,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(MNCUVE,mncuve,DOUBLE,DOUBLE)
+#define MNCUVE(A1,A2)  CCALLSFSUB2(MNCUVE,mncuve,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNDERI,mnderi,DOUBLE,DOUBLE)
+#define MNDERI(A1,A2)  CCALLSFSUB2(MNDERI,mnderi,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB3(MNDXDI,mndxdi,DOUBLE,INT,PDOUBLE)
+#define MNDXDI(A1,A2,A3)  CCALLSFSUB3(MNDXDI,mndxdi,DOUBLE,INT,PDOUBLE,A1,A2,A3)
+
+PROTOCCALLSFSUB7(MNEIG,mneig,PDOUBLE,INT,INT,INT,PDOUBLE,DOUBLE,PINT)
+#define MNEIG(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNEIG,mneig,PDOUBLE,INT,INT,INT,PDOUBLE,DOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(MNEMAT,mnemat,PDOUBLE,INT)
+#define MNEMAT(A1,A2)  CCALLSFSUB2(MNEMAT,mnemat,PDOUBLE,INT,A1,A2)
+
+PROTOCCALLSFSUB5(MNERRS,mnerrs,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE)
+#define MNERRS(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNERRS,mnerrs,INT,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB5(MNEVAL,mneval,DOUBLE,DOUBLE,PDOUBLE,PINT,DOUBLE)
+#define MNEVAL(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNEVAL,mneval,DOUBLE,DOUBLE,PDOUBLE,PINT,DOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB6(MNEXCM,mnexcm,ROUTINE,STRING,DOUBLEV,INT,PINT,ROUTINE)
+#define MNEXCM(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MNEXCM,mnexcm,ROUTINE,STRING,DOUBLEV,INT,PINT,ROUTINE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB1(MNEXIN,mnexin,PDOUBLE)
+#define MNEXIN(A1)  CCALLSFSUB1(MNEXIN,mnexin,PDOUBLE,A1)
+
+PROTOCCALLSFSUB2(MNFIXP,mnfixp,INT,PINT)
+#define MNFIXP(A1,A2)  CCALLSFSUB2(MNFIXP,mnfixp,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB1(MNFREE,mnfree,INT)
+#define MNFREE(A1)  CCALLSFSUB1(MNFREE,mnfree,INT,A1)
+
+PROTOCCALLSFSUB2(MNGRAD,mngrad,DOUBLE,DOUBLE)
+#define MNGRAD(A1,A2)  CCALLSFSUB2(MNGRAD,mngrad,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNHELP,mnhelp,STRING,INT)
+#define MNHELP(A1,A2)  CCALLSFSUB2(MNHELP,mnhelp,STRING,INT,A1,A2)
+
+PROTOCCALLSFSUB2(MNHES1,mnhes1,DOUBLE,DOUBLE)
+#define MNHES1(A1,A2)  CCALLSFSUB2(MNHES1,mnhes1,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNHESS,mnhess,DOUBLE,DOUBLE)
+#define MNHESS(A1,A2)  CCALLSFSUB2(MNHESS,mnhess,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNIMPR,mnimpr,DOUBLE,DOUBLE)
+#define MNIMPR(A1,A2)  CCALLSFSUB2(MNIMPR,mnimpr,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB1(MNINEX,mninex,DOUBLEV)
+#define MNINEX(A1)  CCALLSFSUB1(MNINEX,mninex,DOUBLEV,A1)
+
+PROTOCCALLSFSUB3(MNINIT,mninit,INT,INT,INT)
+#define MNINIT(A1,A2,A3)  CCALLSFSUB3(MNINIT,mninit,INT,INT,INT,A1,A2,A3)
+
+PROTOCCALLSFSUB2(MNINPU,mninpu,INT,PINT)
+#define MNINPU(A1,A2)  CCALLSFSUB2(MNINPU,mninpu,INT,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(MNINTR,mnintr,ROUTINE,ROUTINE)
+#define MNINTR(A1,A2)  CCALLSFSUB2(MNINTR,mnintr,ROUTINE,ROUTINE,A1,A2)
+
+PROTOCCALLSFSUB2(MNLIMS,mnlims,DOUBLE,DOUBLE)
+#define MNLIMS(A1,A2)  CCALLSFSUB2(MNLIMS,mnlims,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB7(MNLINE,mnline,DOUBLE,DOUBLEV,DOUBLE,DOUBLEV,DOUBLE,DOUBLE,DOUBLE)
+#define MNLINE(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNLINE,mnline,DOUBLE,DOUBLEV,DOUBLE,DOUBLEV,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB1(MNMATU,mnmatu,INT)
+#define MNMATU(A1)  CCALLSFSUB1(MNMATU,mnmatu,INT,A1)
+
+PROTOCCALLSFSUB2(MNMIGR,mnmigr,DOUBLE,DOUBLE)
+#define MNMIGR(A1,A2)  CCALLSFSUB2(MNMIGR,mnmigr,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNMNOS,mnmnos,DOUBLE,DOUBLE)
+#define MNMNOS(A1,A2)  CCALLSFSUB2(MNMNOS,mnmnos,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB6(MNMNOT,mnmnot,DOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE)
+#define MNMNOT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MNMNOT,mnmnot,DOUBLE,INT,INT,DOUBLE,DOUBLE,DOUBLE,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB7(MNPARM,mnparm,INT,STRING,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PINT)
+#define MNPARM(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNPARM,mnparm,INT,STRING,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(MNPARS,mnpars,BYTE,PINT)
+#define MNPARS(A1,A2)  CCALLSFSUB2(MNPARS,mnpars,BYTE,PINT,A1,A2)
+
+PROTOCCALLSFSUB5(MNPFIT,mnpfit,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE)
+#define MNPFIT(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNPFIT,mnpfit,DOUBLEV,DOUBLEV,INT,PDOUBLE,PDOUBLE,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(MNPINT,mnpint,PDOUBLE,INT,PDOUBLE)
+#define MNPINT(A1,A2,A3)  CCALLSFSUB3(MNPINT,mnpint,PDOUBLE,INT,PDOUBLE,A1,A2,A3)
+
+PROTOCCALLSFSUB7(MNPLOT,mnplot,PDOUBLE,PDOUBLE,PSTRINGV,INT,INT,INT,INT)
+#define MNPLOT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNPLOT,mnplot,PDOUBLE,PDOUBLE,PSTRINGV,INT,INT,INT,INT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB7(MNPOUT,mnpout,INT,PSTRING,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT)
+#define MNPOUT(A1,A2,A3,A4,A5,A6,A7)  CCALLSFSUB7(MNPOUT,mnpout,INT,PSTRING,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,A1,A2,A3,A4,A5,A6,A7)
+
+PROTOCCALLSFSUB2(MNPRIN,mnprin,INT,DOUBLE)
+#define MNPRIN(A1,A2)  CCALLSFSUB2(MNPRIN,mnprin,INT,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB0(MNPSDF,mnpsdf)
+#define MNPSDF() CCALLSFSUB0(MNPSDF,mnpsdf)
+
+PROTOCCALLSFSUB5(MNRAZZ,mnrazz,DOUBLE,DOUBLEV,PDOUBLE,PINT,PINT)
+#define MNRAZZ(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNRAZZ,mnrazz,DOUBLE,DOUBLEV,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB4(MNREAD,mnread,DOUBLE,INT,PINT,DOUBLE)
+#define MNREAD(A1,A2,A3,A4)  CCALLSFSUB4(MNREAD,mnread,DOUBLE,INT,PINT,DOUBLE,A1,A2,A3,A4)
+
+PROTOCCALLSFSUB2(MNRN15,mnrn15,PDOUBLE,PINT)
+#define MNRN15(A1,A2)  CCALLSFSUB2(MNRN15,mnrn15,PDOUBLE,PINT,A1,A2)
+
+PROTOCCALLSFSUB1(MNRSET,mnrset,INT)
+#define MNRSET(A1)  CCALLSFSUB1(MNRSET,mnrset,INT,A1)
+
+PROTOCCALLSFSUB0(MNSAVE,mnsave)
+#define MNSAVE() CCALLSFSUB0(MNSAVE,mnsave)
+
+PROTOCCALLSFSUB2(MNSCAN,mnscan,DOUBLE,DOUBLE)
+#define MNSCAN(A1,A2)  CCALLSFSUB2(MNSCAN,mnscan,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNSEEK,mnseek,DOUBLE,DOUBLE)
+#define MNSEEK(A1,A2)  CCALLSFSUB2(MNSEEK,mnseek,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB2(MNSET,mnset,DOUBLE,DOUBLE)
+#define MNSET(A1,A2)  CCALLSFSUB2(MNSET,mnset,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB1(MNSETI,mnseti,STRING)
+#define MNSETI(A1)  CCALLSFSUB1(MNSETI,mnseti,STRING,A1)
+
+PROTOCCALLSFSUB2(MNSIMP,mnsimp,DOUBLE,DOUBLE)
+#define MNSIMP(A1,A2)  CCALLSFSUB2(MNSIMP,mnsimp,DOUBLE,DOUBLE,A1,A2)
+
+PROTOCCALLSFSUB6(MNSTAT,mnstat,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,PINT)
+#define MNSTAT(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(MNSTAT,mnstat,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,PINT,A1,A2,A3,A4,A5,A6)
+
+PROTOCCALLSFSUB2(MNSTIN,mnstin,BYTE,PINT)
+#define MNSTIN(A1,A2)  CCALLSFSUB2(MNSTIN,mnstin,BYTE,PINT,A1,A2)
+
+PROTOCCALLSFSUB2(MNTINY,mntiny,DOUBLE,PDOUBLE)
+#define MNTINY(A1,A2)  CCALLSFSUB2(MNTINY,mntiny,DOUBLE,PDOUBLE,A1,A2)
+
+PROTOCCALLSFSUB5(MNVERT,mnvert,PDOUBLE,INT,INT,INT,PINT)
+#define MNVERT(A1,A2,A3,A4,A5)  CCALLSFSUB5(MNVERT,mnvert,PDOUBLE,INT,INT,INT,PINT,A1,A2,A3,A4,A5)
+
+PROTOCCALLSFSUB3(MNWARN,mnwarn,BYTE,BYTE,BYTE)
+#define MNWARN(A1,A2,A3)  CCALLSFSUB3(MNWARN,mnwarn,BYTE,BYTE,BYTE,A1,A2,A3)
+
+PROTOCCALLSFSUB0(MNWERR,mnwerr)
+#define MNWERR() CCALLSFSUB0(MNWERR,mnwerr)
+
+PROTOCCALLSFSUB0(STAND,stand)
+#define STAND() CCALLSFSUB0(STAND,stand)
Index: trunk/SophyaExt/CodeMinuit/cfortran/packlib.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/packlib.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/packlib.h	(revision 2403)
@@ -0,0 +1,4 @@
+#include "hbook.h"
+#include "minuit.h"
+#include "kuip.h"
+#include "zebra.h"
Index: trunk/SophyaExt/CodeMinuit/cfortran/zebra.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/cfortran/zebra.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/cfortran/zebra.h	(revision 2403)
@@ -0,0 +1,5 @@
+PROTOCCALLSFSUB1(MZEBRA,mzebra,INT)
+#define MZEBRA(A1)    CCALLSFSUB1(MZEBRA,mzebra,INT,A1)
+
+PROTOCCALLSFSUB2(MZPAW,mzpaw,INT,STRING)
+#define MZPAW(A1,A2)  CCALLSFSUB2(MZPAW,mzpaw,INT,STRING,A1,A2)
Index: trunk/SophyaExt/CodeMinuit/code/Imakefile
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/Imakefile	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/Imakefile	(revision 2403)
@@ -0,0 +1,11 @@
+SRCS_F= minuit.F mnamin.F mnbins.F mncalf.F mncler.F mncntr.F mncomd.F \ @@\
+	mncont.F mncrck.F mncros.F mncuve.F mnderi.F mndxdi.F mneig.F \ @@\
+	mnemat.F mnerrs.F mneval.F mnexcm.F mnexin.F mnfixp.F mnfree.F \ @@\
+	mngrad.F mnhelp.F mnhes1.F mnhess.F mnimpr.F mninex.F mninit.F \ @@\
+	mninpu.F mnintr.F mnlims.F mnline.F mnmatu.F mnmigr.F mnmnos.F \ @@\
+	mnmnot.F mnparm.F mnpars.F mnpfit.F mnpint.F mnplot.F mnpout.F \ @@\
+	mnprin.F mnpsdf.F mnrazz.F mnread.F mnrn15.F mnrset.F mnsave.F \ @@\
+	mnscan.F mnseek.F mnset.F mnseti.F mnsimp.F mnstat.F mnstin.F \ @@\
+	mntiny.F mnunpt.F mnvers.F mnvert.F mnwarn.F mnwerr.F stand.F
+
+SubdirLibraryTarget(NullParameter,NullParameter)
Index: trunk/SophyaExt/CodeMinuit/code/MakeMinuit
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/MakeMinuit	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/MakeMinuit	(revision 2403)
@@ -0,0 +1,35 @@
+include $(DPCBASEREP)/Include/MakefileUser.h
+
+
+OBJ := $(addsuffix .o,$(basename $(wildcard *.F)))
+
+%.o: %.F
+	$(COMPILE.f) -O -o $@ $<
+
+all: include libminuit.a
+
+echo:
+	@echo $(OBJ)
+
+include:
+	ln -f -s ../minuit minuit
+
+clean:
+	rm -f $(OBJ)
+
+cleanall: clean cleantest
+	rm -f libminuit.a minuit
+
+libminuit.a : $(OBJ)
+	$(AR) $(ARFLAGS) $@ $(OBJ)
+
+test:
+	cd ../examples/; \
+	rm -f minuit minexam minexam.o fcnk0.o; \
+	ln -f -s ../minuit minuit; \
+	$(COMPILE.f) -O -o fcnk0.o fcnk0.F; \
+	$(COMPILE.f) -O -o minexam.o minexam.F; \
+	$(LINK.f) -O -o minexam minexam.o fcnk0.o -L../code/ -lminuit
+
+cleantest:
+	cd ../examples/; rm -f minuit minexam minexam.o fcnk0.o;
Index: trunk/SophyaExt/CodeMinuit/code/minuit.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/minuit.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/minuit.F	(revision 2403)
@@ -0,0 +1,141 @@
+*
+* $Id: minuit.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MINUIT(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+#include "minuit/d506cm.inc"
+C
+C  CPNAM   Parameter name (10 characters)
+C  U       External (visible to user in FCN) value of parameter
+C  ALIM, BLIM Lower and upper parameter limits. If both zero, no limits.
+C  ERP,ERN Positive and negative MINOS errors, if calculated.
+C  WERR    External parameter error (standard deviation, defined by UP)
+C  GLOBCC  Global Correlation Coefficient
+C  NVARL   =-1 if parameter undefined,      =0 if constant,
+C          = 1 if variable without limits,  =4 if variable with limits
+C   (Note that if parameter has been fixed, NVARL=1 or =4, and NIOFEX=0)
+C  NIOFEX  Internal parameter number, or zero if not currently variable
+C  NEXOFI  External parameter number for currently variable parameters
+C  X, XT   Internal parameter values (X are sometimes saved in XT)
+C  DIRIN   (Internal) step sizes for current step
+C  variables with names ending in ..S are saved values for fixed params
+C  VHMAT   (Internal) error matrix stored as Half MATrix, since
+C                it is symmetric
+C  VTHMAT  VHMAT is sometimes saved in VTHMAT, especially in MNMNOT
+C
+C  ISW definitions:
+C      ISW(1) =0 normally, =1 means CALL LIMIT EXCEEDED
+C      ISW(2) =0 means no error matrix
+C             =1 means only approximate error matrix
+C             =2 means full error matrix, but forced pos-def.
+C             =3 means good normal full error matrix exists
+C      ISW(3) =0 if Minuit is calculating the first derivatives
+C             =1 if first derivatives calculated inside FCN
+C      ISW(4) =-1 if most recent minimization did not converge.
+C             = 0 if problem redefined since most recent minimization.
+C             =+1 if most recent minimization did converge.
+C      ISW(5) is the PRInt level.  See SHO PRIntlevel
+C      ISW(6) = 0 for batch mode, =1 for interactive mode
+C                      =-1 for originally interactive temporarily batch
+C
+C  LWARN is true if warning messges are to be put out (default=true)
+C            SET WARN turns it on, set NOWarn turns it off
+C  LREPOR is true if exceptional conditions are put out (default=false)
+C            SET DEBUG turns it on, SET NODebug turns it off
+C  LIMSET is true if a parameter is up against limits (for MINOS)
+C  LNOLIM is true if there are no limits on any parameters (not yet used)
+C  LNEWMN is true if the previous process has unexpectedly improved FCN
+C  LPHEAD is true if a heading should be put out for the next parameter
+C        definition, false if a parameter has just been defined
+C
+      EXTERNAL FCN,FUTIL
+      CHARACTER*40 CWHYXT
+      DATA CWHYXT/'FOR UNKNOWN REASONS                     '/
+      DATA JSYSRD,JSYSWR,JSYSSA/5,6,7/
+C                                 . . . . . . . . . . initialize minuit
+      WRITE (JSYSWR,'(1X,75(1H*))')
+      CALL MNINIT (JSYSRD,JSYSWR,JSYSSA)
+C                                      . . . . initialize new data block
+  100 CONTINUE
+      WRITE (ISYSWR,'(1X,75(1H*))')
+      NBLOCK = NBLOCK + 1
+      WRITE (ISYSWR,'(26X,A,I4)')  'MINUIT DATA BLOCK NO.',NBLOCK
+      WRITE (ISYSWR,'(1X,75(1H*))')
+C               . . . . . . . . . . .   set parameter lists to undefined
+      CALL MNCLER
+C                                             . . . . . . . . read title
+      CALL MNREAD(FCN,1,IFLGUT,FUTIL)
+      IF (IFLGUT .EQ. 2)  GO TO 500
+      IF (IFLGUT .EQ. 3)  GO TO 600
+C                                        . . . . . . . . read parameters
+      CALL MNREAD(FCN,2,IFLGUT,FUTIL)
+      IF (IFLGUT .EQ. 2)  GO TO 500
+      IF (IFLGUT .EQ. 3)  GO TO 600
+      IF (IFLGUT .EQ. 4)  GO TO 700
+C                              . . . . . . verify FCN not time-dependent
+      WRITE (ISYSWR,'(/A,A)') ' MINUIT: FIRST CALL TO USER FUNCTION,',
+     +    ' WITH IFLAG=1'
+      NPARX = NPAR
+      CALL MNINEX(X)
+      FZERO = UNDEFI
+      CALL FCN(NPARX,GIN,FZERO,U,1,FUTIL)
+      FIRST = UNDEFI
+      CALL FCN(NPARX,GIN,FIRST,U,4,FUTIL)
+      NFCN = 2
+      IF (FZERO.EQ.UNDEFI .AND. FIRST.EQ.UNDEFI)  THEN
+          CWHYXT = 'BY ERROR IN USER FUNCTION.  '
+          WRITE (ISYSWR,'(/A,A/)') ' USER HAS NOT CALCULATED FUNCTION',
+     +    ' VALUE WHEN IFLAG=1 OR 4'
+          GO TO 800
+      ENDIF
+      AMIN = FIRST
+      IF (FIRST .EQ. UNDEFI) AMIN=FZERO
+      CALL MNPRIN(1,AMIN)
+      NFCN = 2
+      IF (FIRST .EQ. FZERO)  GO TO 300
+      FNEW = 0.0
+      CALL FCN(NPARX,GIN,FNEW,U,4,FUTIL)
+      IF  (FNEW .NE. AMIN) WRITE (ISYSWR,280) AMIN, FNEW
+  280 FORMAT (/' MINUIT WARNING: PROBABLE ERROR IN USER FUNCTION.'/
+     +         ' FOR FIXED VALUES OF PARAMETERS, FCN IS TIME-DEPENDENT'/
+     +         ' F =',E22.14,' FOR FIRST CALL'/
+     +         ' F =',E22.14,' FOR SECOND CALL.'/)
+      NFCN = 3
+  300 FVAL3 = 2.0*AMIN+1.0
+C                                   . . . . . . . . . . . read commands
+      CALL MNREAD(FCN,3,IFLGUT,FUTIL)
+      IF (IFLGUT .EQ. 2)  GO TO 500
+      IF (IFLGUT .EQ. 3)  GO TO 600
+      IF (IFLGUT .EQ. 4)  GO TO 700
+      CWHYXT = 'BY MINUIT COMMAND: '//CWORD
+      IF (INDEX(CWORD,'STOP').GT. 0)  GO TO 800
+      IF (INDEX(CWORD,'EXI') .GT. 0)  GO TO 800
+      IF (INDEX(CWORD,'RET') .EQ. 0)  GO TO 100
+      CWHYXT = 'AND RETURNS TO USER PROGRAM.    '
+      WRITE (ISYSWR,'(A,A)')  ' ..........MINUIT TERMINATED ',CWHYXT
+      RETURN
+C                                           . . . . . . stop conditions
+  500 CONTINUE
+      CWHYXT = 'BY END-OF-DATA ON PRIMARY INPUT FILE.   '
+      GO TO 800
+  600 CONTINUE
+      CWHYXT = 'BY UNRECOVERABLE READ ERROR ON INPUT.   '
+      GO TO 800
+  700 CONTINUE
+      CWHYXT = ': FATAL ERROR IN PARAMETER DEFINITIONS. '
+  800 WRITE (ISYSWR,'(A,A)')  ' ..........MINUIT TERMINATED ',CWHYXT
+      STOP
+C
+C  ......................entry to set unit numbers  - - - - - - - - - -
+      ENTRY MINTIO(I1,I2,I3)
+      JSYSRD = I1
+      JSYSWR = I2
+      JSYSSA = I3
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnamin.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnamin.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnamin.F	(revision 2403)
@@ -0,0 +1,27 @@
+*
+* $Id: mnamin.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNAMIN(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Called  from many places.  Initializes the value of AMIN by
+CC        calling the user function. Prints out the function value and
+CC        parameter values if Print Flag value is high enough.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      NPARX = NPAR
+      IF (ISW(5) .GE. 1) WRITE (ISYSWR,'(/A,A)') ' FIRST CALL TO ',
+     + 'USER FUNCTION AT NEW START POINT, WITH IFLAG=4.'
+      CALL MNEXIN(X)
+      CALL FCN(NPARX,GIN,FNEW,U,4,FUTIL)
+      NFCN = NFCN + 1
+      AMIN = FNEW
+      EDM = BIGEDM
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnbins.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnbins.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnbins.F	(revision 2403)
@@ -0,0 +1,67 @@
+*
+* $Id: mnbins.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNBINS(A1,A2,NAA,BL,BH,NB,BWID)
+#include "minuit/d506dp.inc"
+C         SUBROUTINE TO DETERMINE REASONABLE HISTOGRAM INTERVALS
+C         GIVEN ABSOLUTE UPPER AND LOWER BOUNDS  A1 AND A2
+C         AND DESIRED MAXIMUM NUMBER OF BINS NAA
+C         PROGRAM MAKES REASONABLE BINNING FROM BL TO BH OF WIDTH BWID
+C         F. JAMES,   AUGUST, 1974 , stolen for Minuit, 1988
+      PARAMETER (ZERO=0.0, ONE=1.0)
+      AL = MIN(A1,A2)
+      AH = MAX(A1,A2)
+      IF (AL.EQ.AH)  AH = AL + 1.
+C         IF NAA .EQ. -1 , PROGRAM USES BWID INPUT FROM CALLING ROUTINE
+      IF (NAA .EQ. -1)  GO TO 150
+   10 NA = NAA - 1
+      IF (NA .LT. 1)  NA = 1
+C          GET NOMINAL BIN WIDTH IN EXPON FORM
+   20 AWID = (AH-AL)/FLOAT(NA)
+      LOG = INT(DLOG10(DBLE(AWID)))
+      IF (AWID .LE. ONE)  LOG=LOG-1
+      SIGFIG = AWID * (10.00 **(-LOG))
+C         ROUND MANTISSA UP TO 2, 2.5, 5, OR 10
+      IF(SIGFIG .GT. 2.0)  GO TO 40
+      SIGRND = 2.0
+      GO TO 100
+   40 IF (SIGFIG .GT. 2.5)  GO TO 50
+      SIGRND = 2.5
+      GO TO 100
+   50 IF(SIGFIG .GT. 5.0)  GO TO 60
+      SIGRND =5.0
+      GO TO 100
+   60 SIGRND = 1.0
+      LOG = LOG + 1
+  100 CONTINUE
+      BWID = SIGRND*10.0**LOG
+      GO TO 200
+C         GET NEW BOUNDS FROM NEW WIDTH BWID
+  150 IF (BWID .LE. ZERO)  GO TO 10
+  200 CONTINUE
+      ALB = AL/BWID
+      LWID=ALB
+      IF (ALB .LT. ZERO)  LWID=LWID-1
+      BL = BWID*FLOAT(LWID)
+      ALB = AH/BWID + 1.0
+      KWID = ALB
+      IF (ALB .LT. ZERO)  KWID=KWID-1
+      BH = BWID*FLOAT(KWID)
+      NB = KWID-LWID
+      IF (NAA .GT. 5)  GO TO 240
+      IF (NAA .EQ. -1)  RETURN
+C          REQUEST FOR ONE BIN IS DIFFICULT CASE
+      IF (NAA .GT. 1 .OR. NB .EQ. 1)  RETURN
+      BWID =  BWID*2.0
+       NB  = 1
+       RETURN
+  240 IF (2*NB .NE. NAA)  RETURN
+      NA = NA + 1
+      GO TO 20
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncalf.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncalf.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncalf.F	(revision 2403)
@@ -0,0 +1,40 @@
+*
+* $Id: mncalf.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCALF(FCN,PVEC,YCALF,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Called only from MNIMPR.  Transforms the function FCN
+CC        by dividing out the quadratic part in order to find further
+CC        minima.    Calculates  ycalf = (f-fmin)/(x-xmin)*v*(x-xmin)
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION PVEC(15)
+      NPARX = NPAR
+      CALL MNINEX(PVEC)
+      CALL FCN(NPARX,GIN,F,U,4,FUTIL)
+      NFCN = NFCN + 1
+      DO 200 I= 1, NPAR
+      GRD(I) = 0.
+         DO 200 J= 1, NPAR
+         M = MAX(I,J)
+         N = MIN(I,J)
+         NDEX = M*(M-1)/2 + N
+  200    GRD(I) = GRD(I) + VTHMAT(NDEX) * (XT(J)-PVEC(J))
+      DENOM = 0.
+      DO 210 I= 1, NPAR
+  210 DENOM = DENOM + GRD(I) * (XT(I)-PVEC(I))
+      IF (DENOM .LE. ZERO)  THEN
+         DCOVAR = 1.
+         ISW(2) = 0
+         DENOM = 1.0
+      ENDIF
+      YCALF = (F-APSI) / DENOM
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncler.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncler.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncler.F	(revision 2403)
@@ -0,0 +1,33 @@
+*
+* $Id: mncler.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCLER
+#include "minuit/d506dp.inc"
+CC        Called from MINUIT and by option from MNEXCM
+CC        Resets the parameter list to UNDEFINED
+#include "minuit/d506cm.inc"
+      NPFIX = 0
+      NU = 0
+      NPAR = 0
+      NFCN = 0
+      NWRMES(1) = 0
+      NWRMES(2) = 0
+      DO 10 I= 1, MAXEXT
+      U(I) = 0.0
+      CPNAM(I) = CUNDEF
+      NVARL(I) = -1
+   10 NIOFEX(I) = 0
+      CALL MNRSET(1)
+      CFROM = 'CLEAR   '
+      NFCNFR = NFCN
+      CSTATU ='UNDEFINED '
+      LNOLIM = .TRUE.
+      LPHEAD = .TRUE.
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncntr.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncntr.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncntr.F	(revision 2403)
@@ -0,0 +1,155 @@
+*
+* $Id: mncntr.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:28  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCNTR(FCN,KE1,KE2,IERRF,FUTIL)
+#include "minuit/d506dp.inc"
+CC       to print function contours in two variables, on line printer
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      PARAMETER (NUMBCS=20,NXMAX=115)
+      DIMENSION CONTUR(NUMBCS), FCNA(NXMAX),FCNB(NXMAX)
+      CHARACTER CLABEL*(NUMBCS)
+      CHARACTER CHLN*(NXMAX),CHMID*(NXMAX),CHZERO*(NXMAX)
+      DATA CLABEL/'0123456789ABCDEFGHIJ'/
+C                 input arguments: parx, pary, devs, ngrid
+      IF (KE1.LE.0 .OR. KE2.LE.0)  GO TO 1350
+      IF (KE1.GT.NU .OR. KE2.GT.NU)  GO TO 1350
+      KI1 = NIOFEX(KE1)
+      KI2 = NIOFEX(KE2)
+      IF (KI1.LE.0 .OR. KI2.LE.0)  GO TO 1350
+      IF (KI1 .EQ. KI2)  GO TO 1350
+C
+      IF (ISW(2) .LT. 1)  THEN
+          CALL MNHESS(FCN,FUTIL)
+          CALL MNWERR
+          ENDIF
+      NPARX = NPAR
+      XSAV = U(KE1)
+      YSAV = U(KE2)
+      DEVS = WORD7(3)
+      IF (DEVS .LE. ZERO)  DEVS=2.
+      XLO = U(KE1) - DEVS*WERR(KI1)
+      XUP = U(KE1) + DEVS*WERR(KI1)
+      YLO = U(KE2) - DEVS*WERR(KI2)
+      YUP = U(KE2) + DEVS*WERR(KI2)
+      NGRID = WORD7(4)
+      IF (NGRID .LE. 0)  THEN
+          NGRID=25
+          NX = MIN(NPAGWD-15,NGRID)
+          NY = MIN(NPAGLN-7, NGRID)
+      ELSE
+          NX = NGRID
+          NY = NGRID
+      ENDIF
+      IF (NX .LT. 11) NX=11
+      IF (NY .LT. 11) NY=11
+      IF (NX .GE. NXMAX)  NX=NXMAX-1
+C         ask if parameter outside limits
+      IF (NVARL(KE1) .GT. 1)  THEN
+         IF (XLO .LT. ALIM(KE1))  XLO = ALIM(KE1)
+         IF (XUP .GT. BLIM(KE1))  XUP = BLIM(KE1)
+      ENDIF
+      IF (NVARL(KE2) .GT. 1)   THEN
+         IF (YLO .LT. ALIM(KE2))  YLO = ALIM(KE2)
+         IF (YUP .GT. BLIM(KE2))  YUP = BLIM(KE2)
+      ENDIF
+      BWIDX = (XUP-XLO)/REAL(NX)
+      BWIDY = (YUP-YLO)/REAL(NY)
+      IXMID = INT((XSAV-XLO)*REAL(NX)/(XUP-XLO)) + 1
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      DO 185 I= 1, NUMBCS
+      CONTUR(I) = AMIN + UP*FLOAT(I-1)**2
+  185 CONTINUE
+      CONTUR(1) = CONTUR(1) + 0.01*UP
+C                fill FCNB to prepare first row, and find column zero
+      U(KE2) = YUP
+      IXZERO = 0
+      XB4 = ONE
+      DO 200 IX= 1, NX+1
+      U(KE1) = XLO + REAL(IX-1)*BWIDX
+      CALL FCN(NPARX,GIN,FF,U,4,FUTIL)
+      FCNB(IX) = FF
+      IF (XB4.LT.ZERO .AND. U(KE1).GT.ZERO)  IXZERO = IX-1
+      XB4 = U(KE1)
+      CHMID(IX:IX) = '*'
+      CHZERO(IX:IX)= '-'
+  200 CONTINUE
+      WRITE (ISYSWR,'(A,I3,A,A)') ' Y-AXIS: PARAMETER ',
+     +      KE2,': ',CPNAM(KE2)
+      IF (IXZERO .GT. 0)  THEN
+         CHZERO(IXZERO:IXZERO) = '+'
+         CHLN = ' '
+         WRITE (ISYSWR,'(12X,A,A)') CHLN(1:IXZERO),'X=0'
+      ENDIF
+C                 loop over rows
+      DO 280 IY= 1, NY
+      UNEXT = U(KE2) - BWIDY
+C                 prepare this line's background pattern for contour
+      CHLN = ' '
+      CHLN(IXMID:IXMID) = '*'
+      IF (IXZERO .NE. 0) CHLN(IXZERO:IXZERO) = ':'
+      IF (U(KE2).GT.YSAV .AND. UNEXT.LT.YSAV) CHLN=CHMID
+      IF (U(KE2).GT.ZERO .AND. UNEXT.LT.ZERO) CHLN=CHZERO
+      U(KE2) = UNEXT
+      YLABEL = U(KE2) + 0.5*BWIDY
+C                 move FCNB to FCNA and fill FCNB with next row
+      DO 220 IX= 1, NX+1
+      FCNA(IX) = FCNB(IX)
+      U(KE1) = XLO + REAL(IX-1)*BWIDX
+      CALL FCN(NPARX,GIN,FF,U,4,FUTIL)
+      FCNB(IX) = FF
+  220 CONTINUE
+C                 look for contours crossing the FCNxy squares
+      DO 250 IX= 1, NX
+      FMX = MAX(FCNA(IX),FCNB(IX),FCNA(IX+1),FCNB(IX+1))
+      FMN = MIN(FCNA(IX),FCNB(IX),FCNA(IX+1),FCNB(IX+1))
+      DO 230 ICS= 1, NUMBCS
+      IF (CONTUR(ICS) .GT. FMN)  GO TO 240
+  230 CONTINUE
+      GO TO 250
+  240 IF (CONTUR(ICS) .LT. FMX) CHLN(IX:IX)=CLABEL(ICS:ICS)
+  250 CONTINUE
+C                 print a row of the contour plot
+      WRITE (ISYSWR,'(1X,G12.4,1X,A)') YLABEL,CHLN(1:NX)
+  280 CONTINUE
+C                 contours printed, label x-axis
+      CHLN = ' '
+      CHLN( 1: 1) = 'I'
+      CHLN(IXMID:IXMID) = 'I'
+      CHLN(NX:NX) = 'I'
+      WRITE (ISYSWR,'(14X,A)') CHLN(1:NX)
+C                the hardest of all: print x-axis scale!
+      CHLN = ' '
+      IF (NX .LE. 26) THEN
+          NL = MAX(NX-12,2)
+          NL2 = NL/2
+          WRITE (ISYSWR,'(8X,G12.4,A,G12.4)') XLO,CHLN(1:NL),XUP
+          WRITE (ISYSWR,'(14X,A,G12.4)')   CHLN(1:NL2),XSAV
+      ELSE
+          NL = MAX(NX-24,2)/2
+          NL2 = NL
+          IF (NL .GT. 10) NL2=NL-6
+          WRITE (ISYSWR,'(8X,G12.4,A,G12.4,A,G12.4)')  XLO,
+     +      CHLN(1:NL),XSAV,CHLN(1:NL2),XUP
+      ENDIF
+      WRITE (ISYSWR,'(6X,A,I3,A,A,A,G12.4)') ' X-AXIS: PARAMETER',
+     +    KE1,': ',CPNAM(KE1),'  ONE COLUMN=',BWIDX
+      WRITE (ISYSWR,'(A,G12.4,A,G12.4,A)') ' FUNCTION VALUES: F(I)=',
+     +    AMIN,' +',UP,' *I**2'
+C                 finished.  reset input values
+      U(KE1) = XSAV
+      U(KE2) = YSAV
+      IERRF = 0
+      RETURN
+ 1350 WRITE (ISYSWR,1351)
+ 1351 FORMAT (' INVALID PARAMETER NUMBER(S) REQUESTED.  IGNORED.' /)
+      IERRF = 1
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncomd.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncomd.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncomd.F	(revision 2403)
@@ -0,0 +1,103 @@
+*
+* $Id: mncomd.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCOMD(FCN,CRDBIN,ICONDN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Called by user.  'Reads' a command string and executes.
+CC     Equivalent to MNEXCM except that the command is given as a
+CC          character string.
+CC
+CC     ICONDN = 0: command executed normally
+CC              1: command is blank, ignored
+CC              2: command line unreadable, ignored
+CC              3: unknown command, ignored
+CC              4: abnormal termination (e.g., MIGRAD not converged)
+CC              5: command is a request to read PARAMETER definitions
+CC              6: 'SET INPUT' command
+CC              7: 'SET TITLE' command
+CC              8: 'SET COVAR' command
+CC              9: reserved
+CC             10: END command
+CC             11: EXIT or STOP command
+CC             12: RETURN command
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION PLIST(MAXP)
+      CHARACTER COMAND*(MAXCWD)
+      CHARACTER CLOWER*26, CUPPER*26
+      LOGICAL LEADER
+C
+      EXTERNAL FCN,FUTIL
+      CHARACTER*(*) CRDBIN
+      CHARACTER*100 CRDBUF
+      DATA CLOWER/'abcdefghijklmnopqrstuvwxyz'/
+      DATA CUPPER/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
+C
+      LENBUF = LEN(CRDBIN)
+      CRDBUF = CRDBIN
+      ICONDN = 0
+C     record not case-sensitive, get upper case, strip leading blanks
+      LEADER = .TRUE.
+      IPOS = 1
+         DO 110 I= 1, MIN(MAXCWD,LENBUF)
+         IF (CRDBUF(I:I) .EQ. '''') GO TO 111
+         IF (CRDBUF(I:I) .EQ. ' ')  THEN
+           IF (LEADER) IPOS = IPOS + 1
+           GO TO 110
+         ENDIF
+         LEADER = .FALSE.
+           DO 108 IC= 1, 26
+           IF (CRDBUF(I:I) .EQ. CLOWER(IC:IC)) CRDBUF(I:I)=CUPPER(IC:IC)
+  108      CONTINUE
+  110    CONTINUE
+  111 CONTINUE
+C                     blank or null command
+      IF (IPOS .GT. LENBUF)  THEN
+         WRITE (ISYSWR,'(A)') ' BLANK COMMAND IGNORED.'
+         ICONDN = 1
+         GO TO 900
+      ENDIF
+C                                           . .   preemptive commands
+C               if command is 'PARAMETER'
+      IF (CRDBUF(IPOS:IPOS+2) .EQ. 'PAR')    THEN
+         ICONDN = 5
+         LPHEAD = .TRUE.
+         GO TO 900
+         ENDIF
+C               if command is 'SET INPUT'
+      IF (CRDBUF(IPOS:IPOS+6) .EQ. 'SET INP')  THEN
+         ICONDN = 6
+         LPHEAD = .TRUE.
+         GO TO 900
+         ENDIF
+C              if command is 'SET TITLE'
+      IF (CRDBUF(IPOS:IPOS+6) .EQ. 'SET TIT')  THEN
+         ICONDN = 7
+         LPHEAD = .TRUE.
+         GO TO 900
+         ENDIF
+C               if command is 'SET COVARIANCE'
+      IF (CRDBUF(IPOS:IPOS+6) .EQ. 'SET COV')   THEN
+         ICONDN = 8
+         LPHEAD = .TRUE.
+         GO TO 900
+         ENDIF
+C               crack the command . . . . . . . . . . . . . . . .
+      CALL MNCRCK(CRDBUF(IPOS:LENBUF),MAXCWD,COMAND,LNC,
+     +                            MAXP,  PLIST, LLIST, IERR,ISYSWR)
+      IF (IERR .GT. 0) THEN
+            WRITE (ISYSWR,'(A)') ' COMMAND CANNOT BE INTERPRETED'
+            ICONDN = 2
+            GO TO 900
+      ENDIF
+C
+      CALL MNEXCM(FCN,COMAND(1:LNC),PLIST,LLIST,IERR,FUTIL)
+      ICONDN = IERR
+  900 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncont.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncont.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncont.F	(revision 2403)
@@ -0,0 +1,276 @@
+*
+* $Id: mncont.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCONT(FCN,KE1,KE2,NPTU,XPTU,YPTU,IERRF,FUTIL)
+#include "minuit/d506dp.inc"
+CC       Find NPTU points along a contour where the function
+CC             FMIN (X(KE1),X(KE2)) =  AMIN+UP
+CC       where FMIN is the minimum of FCN with respect to all
+CC       the other NPAR-2 variable parameters (if any).
+CC   IERRF on return will be equal to the number of points found:
+CC     NPTU if normal termination with NPTU points found
+CC     -1   if errors in the calling sequence (KE1, KE2 not variable)
+CC      0   if less than four points can be found (using MNMNOT)
+CC     n>3  if only n points can be found (n < NPTU)
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION XPTU(NPTU), YPTU(NPTU), W(MNI),GCC(MNI)
+      CHARACTER CHERE*10
+      PARAMETER (CHERE='MNContour ')
+      LOGICAL LDEBUG
+      EXTERNAL FCN,FUTIL
+C                 input arguments: parx, pary, devs, ngrid
+      LDEBUG = (IDBG(6) .GE. 1)
+      IF (KE1.LE.0 .OR. KE2.LE.0)  GO TO 1350
+      IF (KE1.GT.NU .OR. KE2.GT.NU)  GO TO 1350
+      KI1 = NIOFEX(KE1)
+      KI2 = NIOFEX(KE2)
+      IF (KI1.LE.0 .OR. KI2.LE.0)  GO TO 1350
+      IF (KI1 .EQ. KI2)  GO TO 1350
+      IF (NPTU .LT. 4)  GO TO 1400
+C
+      NFCNCO = NFCN
+      NFCNMX = 100*(NPTU+5)*(NPAR+1)
+C           The minimum
+      CALL MNCUVE(FCN,FUTIL)
+      U1MIN = U(KE1)
+      U2MIN = U(KE2)
+      IERRF = 0
+      CFROM = CHERE
+      NFCNFR = NFCNCO
+      IF (ISW(5) .GE. 0)  THEN
+         WRITE (ISYSWR,'(1X,A,I4,A)')
+     +   'START MNCONTOUR CALCULATION OF',NPTU,' POINTS ON CONTOUR.'
+         IF (NPAR .GT. 2) THEN
+            IF (NPAR .EQ. 3) THEN
+              KI3 = 6 - KI1 - KI2
+              KE3 = NEXOFI(KI3)
+              WRITE (ISYSWR,'(1X,A,I3,2X,A)')
+     +        'EACH POINT IS A MINIMUM WITH RESPECT TO PARAMETER ',
+     +        KE3, CPNAM(KE3)
+            ELSE
+              WRITE (ISYSWR,'(1X,A,I3,A)')
+     +        'EACH POINT IS A MINIMUM WITH RESPECT TO THE OTHER',
+     +        NPAR-2, ' VARIABLE PARAMETERS.'
+            ENDIF
+         ENDIF
+      ENDIF
+C
+C           Find the first four points using MNMNOT
+C              ........................ first two points
+      CALL MNMNOT(FCN,KE1,KE2,VAL2PL,VAL2MI,FUTIL)
+      IF (ERN(KI1) .EQ. UNDEFI)  THEN
+         XPTU(1) = ALIM(KE1)
+         CALL MNWARN('W',CHERE,'Contour squeezed by parameter limits.')
+      ELSE
+         IF (ERN(KI1) .GE. ZERO)  GO TO 1500
+         XPTU(1) = U1MIN+ERN(KI1)
+      ENDIF
+      YPTU(1) = VAL2MI
+C
+      IF (ERP(KI1) .EQ. UNDEFI)  THEN
+         XPTU(3) = BLIM(KE1)
+         CALL MNWARN('W',CHERE,'Contour squeezed by parameter limits.')
+      ELSE
+         IF (ERP(KI1) .LE. ZERO)  GO TO 1500
+         XPTU(3) = U1MIN+ERP(KI1)
+      ENDIF
+      YPTU(3) = VAL2PL
+      SCALX = 1.0/(XPTU(3) - XPTU(1))
+C              ........................... next two points
+      CALL MNMNOT(FCN,KE2,KE1,VAL2PL,VAL2MI,FUTIL)
+      IF (ERN(KI2) .EQ. UNDEFI)  THEN
+         YPTU(2) = ALIM(KE2)
+         CALL MNWARN('W',CHERE,'Contour squeezed by parameter limits.')
+      ELSE
+         IF (ERN(KI2) .GE. ZERO)  GO TO 1500
+         YPTU(2) = U2MIN+ERN(KI2)
+      ENDIF
+      XPTU(2) = VAL2MI
+      IF (ERP(KI2) .EQ. UNDEFI)  THEN
+         YPTU(4) = BLIM(KE2)
+         CALL MNWARN('W',CHERE,'Contour squeezed by parameter limits.')
+      ELSE
+         IF (ERP(KI2) .LE. ZERO)  GO TO 1500
+         YPTU(4) = U2MIN+ERP(KI2)
+      ENDIF
+      XPTU(4) = VAL2PL
+      SCALY = 1.0/(YPTU(4) - YPTU(2))
+      NOWPTS = 4
+      NEXT = 5
+      IF (LDEBUG) THEN
+         WRITE (ISYSWR,'(A)') ' Plot of four points found by MINOS'
+         XPT(1) = U1MIN
+         YPT(1) = U2MIN
+         CHPT(1) = ' '
+         NALL = MIN(NOWPTS+1,MAXCPT)
+         DO 85 I= 2, NALL
+           XPT(I) = XPTU(I-1)
+           YPT(I) = YPTU(I-1)
+   85    CONTINUE
+           CHPT(2)= 'A'
+           CHPT(3)= 'B'
+           CHPT(4)= 'C'
+           CHPT(5)= 'D'
+         CALL MNPLOT(XPT,YPT,CHPT,NALL,ISYSWR,NPAGWD,NPAGLN)
+      ENDIF
+C
+C               ..................... save some values before fixing
+      ISW2 = ISW(2)
+      ISW4 = ISW(4)
+      SIGSAV = EDM
+      ISTRAV = ISTRAT
+      DC = DCOVAR
+      APSI  = EPSI*0.5
+      ABEST=AMIN
+      MPAR=NPAR
+      NFMXIN = NFCNMX
+      DO 125 I= 1, MPAR
+  125 XT(I) = X(I)
+      DO 130 J= 1, MPAR*(MPAR+1)/2
+  130 VTHMAT(J) = VHMAT(J)
+      DO 135 I= 1, MPAR
+      GCC(I) = GLOBCC(I)
+  135 W(I) = WERR(I)
+C                           fix the two parameters in question
+      KINTS = NIOFEX(KE1)
+      CALL MNFIXP (KINTS,IERR)
+      KINTS = NIOFEX(KE2)
+      CALL MNFIXP (KINTS,IERR)
+C               ......................Fill in the rest of the points
+      DO 900 INEW= NEXT, NPTU
+C            find the two neighbouring points with largest separation
+      BIGDIS = 0.
+         DO 200  IOLD = 1, INEW-1
+         I2 = IOLD + 1
+         IF (I2 .EQ. INEW) I2 = 1
+         DIST = (SCALX*(XPTU(IOLD)-XPTU(I2)))**2 +
+     +          (SCALY*(YPTU(IOLD)-YPTU(I2)))**2
+         IF (DIST .GT. BIGDIS) THEN
+            BIGDIS = DIST
+            IDIST = IOLD
+         ENDIF
+  200    CONTINUE
+      I1 = IDIST
+      I2 = I1 + 1
+      IF (I2 .EQ. INEW) I2 = 1
+C                   next point goes between I1 and I2
+      A1 = HALF
+      A2 = HALF
+  300 XMIDCR = A1*XPTU(I1) + A2*XPTU(I2)
+      YMIDCR = A1*YPTU(I1) + A2*YPTU(I2)
+      XDIR = YPTU(I2) - YPTU(I1)
+      YDIR = XPTU(I1) - XPTU(I2)
+      SCLFAC = MAX(ABS(XDIR*SCALX), ABS(YDIR*SCALY))
+      XDIRCR = XDIR/SCLFAC
+      YDIRCR = YDIR/SCLFAC
+      KE1CR = KE1
+      KE2CR = KE2
+C                Find the contour crossing point along DIR
+      AMIN = ABEST
+      CALL MNCROS(FCN,AOPT,IERCR,FUTIL)
+      IF (IERCR .GT. 1)  THEN
+C              If cannot find mid-point, try closer to point 1
+         IF (A1 .GT. HALF) THEN
+            IF (ISW(5) .GE. 0)
+     +      WRITE (ISYSWR,'(A,A,I3,A)') ' MNCONT CANNOT FIND NEXT',
+     +           ' POINT ON CONTOUR.  ONLY ',NOWPTS,' POINTS FOUND.'
+            GO TO 950
+         ENDIF
+         CALL MNWARN('W',CHERE,'Cannot find midpoint, try closer.')
+         A1 = 0.75
+         A2 = 0.25
+         GO TO 300
+      ENDIF
+C                Contour has been located, insert new point in list
+         DO 830 MOVE= NOWPTS,I1+1,-1
+         XPTU(MOVE+1) = XPTU(MOVE)
+         YPTU(MOVE+1) = YPTU(MOVE)
+  830    CONTINUE
+      NOWPTS = NOWPTS + 1
+      XPTU(I1+1) = XMIDCR + XDIRCR*AOPT
+      YPTU(I1+1) = YMIDCR + YDIRCR*AOPT
+  900 CONTINUE
+  950 CONTINUE
+C
+      IERRF = NOWPTS
+      CSTATU = 'SUCCESSFUL'
+      IF (NOWPTS .LT. NPTU)  CSTATU = 'INCOMPLETE'
+C                make a lineprinter plot of the contour
+      IF (ISW(5) .GE. 0) THEN
+         XPT(1) = U1MIN
+         YPT(1) = U2MIN
+         CHPT(1) = ' '
+         NALL = MIN(NOWPTS+1,MAXCPT)
+         DO 1000 I= 2, NALL
+           XPT(I) = XPTU(I-1)
+           YPT(I) = YPTU(I-1)
+           CHPT(I)= 'X'
+ 1000    CONTINUE
+         WRITE (ISYSWR,'(A,I3,2X,A)') ' Y-AXIS: PARAMETER ',KE2,
+     +        CPNAM(KE2)
+         CALL MNPLOT(XPT,YPT,CHPT,NALL,ISYSWR,NPAGWD,NPAGLN)
+         WRITE (ISYSWR,'(25X,A,I3,2X,A)') 'X-AXIS: PARAMETER ',
+     +         KE1,CPNAM(KE1)
+      ENDIF
+C                 print out the coordinates around the contour
+      IF (ISW(5) .GE. 1)  THEN
+         NPCOL = (NOWPTS+1)/2
+         NFCOL = NOWPTS/2
+         WRITE (ISYSWR,'(/I5,A,G13.5,A,G11.3)') NOWPTS,
+     +    ' POINTS ON CONTOUR.   FMIN=',ABEST,'   ERRDEF=',UP
+         WRITE (ISYSWR,'(9X,A,3X,A,18X,A,3X,A)')
+     +         CPNAM(KE1),CPNAM(KE2),CPNAM(KE1),CPNAM(KE2)
+         DO 1050 LINE = 1, NFCOL
+           LR = LINE + NPCOL
+           WRITE (ISYSWR,'(1X,I5,2G13.5,10X,I5,2G13.5)')
+     +     LINE,XPTU(LINE),YPTU(LINE),LR,XPTU(LR),YPTU(LR)
+ 1050    CONTINUE
+         IF (NFCOL .LT. NPCOL) WRITE (ISYSWR,'(1X,I5,2G13.5)')
+     +                         NPCOL,XPTU(NPCOL),YPTU(NPCOL)
+      ENDIF
+C                                    . . contour finished. reset v
+      ITAUR = 1
+      CALL MNFREE(1)
+      CALL MNFREE(1)
+      DO 1100 J= 1, MPAR*(MPAR+1)/2
+ 1100 VHMAT(J) = VTHMAT(J)
+      DO 1120 I= 1, MPAR
+      GLOBCC(I) = GCC(I)
+      WERR(I) = W(I)
+ 1120 X(I) = XT(I)
+      CALL MNINEX (X)
+      EDM = SIGSAV
+      AMIN = ABEST
+      ISW(2) = ISW2
+      ISW(4) = ISW4
+      DCOVAR = DC
+      ITAUR = 0
+      NFCNMX = NFMXIN
+      ISTRAT = ISTRAV
+      U(KE1) = U1MIN
+      U(KE2) = U2MIN
+      GO TO 2000
+C                                     Error returns
+ 1350 WRITE (ISYSWR,'(A)') ' INVALID PARAMETER NUMBERS.'
+      GO TO 1450
+ 1400 WRITE (ISYSWR,'(A)') ' LESS THAN FOUR POINTS REQUESTED.'
+ 1450 IERRF = -1
+      CSTATU = 'USER ERROR'
+      GO TO 2000
+ 1500 WRITE (ISYSWR,'(A)') ' MNCONT UNABLE TO FIND FOUR POINTS.'
+      U(KE1) = U1MIN
+      U(KE2) = U2MIN
+      IERRF = 0
+      CSTATU = 'FAILED'
+ 2000 CONTINUE
+      CFROM = CHERE
+      NFCNFR = NFCNCO
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncrck.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncrck.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncrck.F	(revision 2403)
@@ -0,0 +1,129 @@
+*
+* $Id: mncrck.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCRCK(CRDBUF,MAXCWD,COMAND,LNC,
+     +                         MXP,   PLIST, LLIST,IERR,ISYSWR)
+#include "minuit/d506dp.inc"
+CC
+CC       Called from MNREAD.
+CC       Cracks the free-format input, expecting zero or more
+CC         alphanumeric fields (which it joins into COMAND(1:LNC))
+CC         followed by one or more numeric fields separated by
+CC         blanks and/or one comma.  The numeric fields are put into
+CC         the LLIST (but at most MXP) elements of PLIST.
+CC      IERR = 0 if no errors,
+CC           = 1 if error(s).
+CC      Diagnostic messages are written to ISYSWR
+CC
+      PARAMETER (MAXELM=25, MXLNEL=19)
+      CHARACTER*(*) COMAND, CRDBUF
+      CHARACTER CNUMER*13, CELMNT(MAXELM)*(MXLNEL), CNULL*15
+      DIMENSION LELMNT(MAXELM),PLIST(MXP)
+      DATA CNULL /')NULL STRING   '/
+      DATA CNUMER/'123456789-.0+'/
+      IELMNT = 0
+      LEND = LEN(CRDBUF)
+      NEXTB = 1
+      IERR = 0
+C                                   . . . .  loop over words CELMNT
+   10 CONTINUE
+      DO 100 IPOS= NEXTB,LEND
+         IBEGIN = IPOS
+         IF (CRDBUF(IPOS:IPOS).EQ.' ')  GO TO 100
+         IF (CRDBUF(IPOS:IPOS).EQ.',')  GO TO 250
+         GO TO 150
+  100 CONTINUE
+         GO TO 300
+  150 CONTINUE
+C               found beginning of word, look for end
+         DO 180 IPOS = IBEGIN+1,LEND
+         IF (CRDBUF(IPOS:IPOS).EQ.' ')  GO TO 250
+         IF (CRDBUF(IPOS:IPOS).EQ.',')  GO TO 250
+  180    CONTINUE
+      IPOS = LEND+1
+  250 IEND = IPOS-1
+      IELMNT = IELMNT + 1
+      IF (IEND .GE. IBEGIN) THEN
+         CELMNT(IELMNT) = CRDBUF(IBEGIN:IEND)
+      ELSE
+         CELMNT(IELMNT) = CNULL
+      ENDIF
+      LELMNT(IELMNT) = IEND-IBEGIN+1
+      IF (LELMNT(IELMNT) .GT. MXLNEL)  THEN
+         WRITE (ISYSWR, 253) CRDBUF(IBEGIN:IEND),CELMNT(IELMNT)
+  253    FORMAT (' MINUIT WARNING: INPUT DATA WORD TOO LONG.'
+     +   /'     ORIGINAL:',A
+     +   /' TRUNCATED TO:',A)
+         LELMNT(IELMNT) = MXLNEL
+         ENDIF
+      IF (IPOS .GE. LEND) GO TO 300
+      IF (IELMNT .GE. MAXELM)  GO TO 300
+C                     look for comma or beginning of next word
+         DO 280 IPOS= IEND+1,LEND
+         IF (CRDBUF(IPOS:IPOS) .EQ. ' ') GO TO 280
+         NEXTB = IPOS
+         IF (CRDBUF(IPOS:IPOS) .EQ. ',') NEXTB = IPOS+1
+         GO TO 10
+  280    CONTINUE
+C                 All elements found, join the alphabetic ones to
+C                                form a command
+  300 CONTINUE
+      NELMNT = IELMNT
+      COMAND = ' '
+      LNC = 1
+      PLIST(1) = 0.
+      LLIST = 0
+      IF (IELMNT .EQ. 0)  GO TO 900
+      KCMND = 0
+         DO 400 IELMNT = 1, NELMNT
+         IF (CELMNT(IELMNT) .EQ. CNULL)  GO TO 450
+            DO 350 IC= 1, 13
+            IF (CELMNT(IELMNT)(1:1) .EQ. CNUMER(IC:IC)) GO TO 450
+  350       CONTINUE
+         IF (KCMND .GE. MAXCWD) GO TO 400
+         LEFT = MAXCWD-KCMND
+         LTOADD = LELMNT(IELMNT)
+         IF (LTOADD .GT. LEFT) LTOADD=LEFT
+         COMAND(KCMND+1:KCMND+LTOADD) = CELMNT(IELMNT)(1:LTOADD)
+         KCMND = KCMND + LTOADD
+         IF (KCMND .EQ. MAXCWD)  GO TO 400
+         KCMND = KCMND + 1
+         COMAND(KCMND:KCMND) = ' '
+  400    CONTINUE
+      LNC = KCMND
+      GO TO 900
+  450 CONTINUE
+      LNC = KCMND
+C                      . . . .  we have come to a numeric field
+      LLIST = 0
+      DO 600 IFLD= IELMNT,NELMNT
+      LLIST = LLIST + 1
+      IF (LLIST .GT. MXP) THEN
+         NREQ = NELMNT-IELMNT+1
+         WRITE (ISYSWR,511) NREQ,MXP
+  511 FORMAT (/' MINUIT WARNING IN MNCRCK: '/ ' COMMAND HAS INPUT',I5,
+     + ' NUMERIC FIELDS, BUT MINUIT CAN ACCEPT ONLY',I3)
+         GO TO 900
+      ENDIF
+      IF (CELMNT(IFLD) .EQ. CNULL)  THEN
+          PLIST(LLIST) = 0.
+        ELSE
+          READ (CELMNT(IFLD), '(BN,F19.0)',ERR=575) PLIST(LLIST)
+      ENDIF
+      GO TO 600
+  575 WRITE (ISYSWR,'(A,A,A)') ' FORMAT ERROR IN NUMERIC FIELD: "',
+     + CELMNT(IFLD)(1:LELMNT(IFLD)),'"'
+      IERR = 1
+      PLIST(LLIST) = 0.
+  600 CONTINUE
+C                                  end loop over numeric fields
+  900 CONTINUE
+      IF (LNC .LE. 0)  LNC=1
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncros.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncros.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncros.F	(revision 2403)
@@ -0,0 +1,334 @@
+*
+* $Id: mncros.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCROS(FCN,AOPT,IERCR,FUTIL)
+#include "minuit/d506dp.inc"
+CC       Find point where MNEVAL=AMIN+UP, along the line through
+CC       XMIDCR,YMIDCR with direction XDIRCR,YDIRCR,   where X and Y 
+CC       are parameters KE1CR and KE2CR.  If KE2CR=0 (from MINOS),
+CC       only KE1CR is varied.  From MNCONT, both are varied.
+CC       Crossing point is at
+CC        (U(KE1),U(KE2)) = (XMID,YMID) + AOPT*(XDIR,YDIR)
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER CHERE*10, CHARAL*28, CHSIGN*4
+      PARAMETER (CHERE='MNCROS    ', MLSB=3, MAXITR=15, TLR=0.01)
+      DIMENSION FLSB(MLSB),ALSB(MLSB), COEFF(3)
+      LOGICAL LDEBUG
+      EXTERNAL FCN,FUTIL
+      DATA  CHARAL/' .ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
+      LDEBUG = (IDBG(6) .GE. 1)
+      AMINSV = AMIN
+C        convergence when F is within TLF of AIM and next prediction
+C        of AOPT is within TLA of previous value of AOPT
+      AIM = AMIN + UP
+      TLF = TLR*UP
+      TLA = TLR
+      XPT(1) = 0.0
+      YPT(1) = AIM
+      CHPT(1) = ' '
+      IPT = 1
+      IF (KE2CR .EQ. 0) THEN
+        XPT(2) = -1.0
+        YPT(2) = AMIN
+        CHPT(2) = '.'
+        IPT = 2
+      ENDIF
+C                    find the largest allowed A
+      AULIM = 100.
+      DO 100 IK= 1, 2
+         IF (IK .EQ. 1)  THEN
+            KEX = KE1CR
+            ZMID = XMIDCR
+            ZDIR = XDIRCR
+         ELSE
+            IF (KE2CR .EQ. 0)  GO TO 100
+            KEX = KE2CR
+            ZMID = YMIDCR
+            ZDIR = YDIRCR
+         ENDIF
+         IF (NVARL(KEX) .LE. 1) GO TO 100
+         IF (ZDIR .EQ. ZERO)      GO TO 100
+         ZLIM = ALIM(KEX)
+         IF (ZDIR .GT. ZERO) ZLIM = BLIM(KEX)
+         AULIM = MIN(AULIM,(ZLIM-ZMID)/ZDIR)
+  100 CONTINUE
+C                  LSB = Line Search Buffer
+C          first point
+      ANEXT = 0.
+      AOPT = ANEXT
+      LIMSET = .FALSE.
+        IF (AULIM .LT. AOPT+TLA)  LIMSET = .TRUE.
+      CALL MNEVAL(FCN,ANEXT,FNEXT,IEREV,FUTIL)
+C debug printout:
+      IF (LDEBUG) WRITE (ISYSWR,'(A,I8,A,F10.5,A,2F10.5)')
+     + ' MNCROS: calls=',NFCN,'   AIM=',AIM,'  F,A=',FNEXT,AOPT
+      IF (IEREV .GT. 0)  GO TO 900
+      IF (LIMSET .AND. FNEXT .LE. AIM)  GO TO 930
+      IPT = IPT + 1
+      XPT(IPT) = ANEXT
+      YPT(IPT) = FNEXT
+      CHPT(IPT)= CHARAL(IPT:IPT)
+      ALSB(1) = ANEXT
+      FLSB(1) = FNEXT
+      FNEXT = MAX(FNEXT,AMINSV+0.1*UP)
+      AOPT =  SQRT((UP)/(FNEXT-AMINSV)) - 1.0
+      IF (ABS(FNEXT-AIM) .LT. TLF)  GO TO 800
+C
+      IF (AOPT .LT. -HALF)  AOPT = -HALF
+      IF (AOPT .GT. ONE)    AOPT = ONE
+      LIMSET = .FALSE.
+      IF (AOPT .GT. AULIM)  THEN
+              AOPT = AULIM
+              LIMSET = .TRUE.
+      ENDIF
+      CALL MNEVAL(FCN,AOPT,FNEXT,IEREV,FUTIL)
+C debug printout:
+      IF (LDEBUG) WRITE (ISYSWR,'(A,I8,A,F10.5,A,2F10.5)')
+     + ' MNCROS: calls=',NFCN,'   AIM=',AIM,'  F,A=',FNEXT,AOPT
+      IF (IEREV .GT. 0)  GO TO 900
+      IF (LIMSET .AND. FNEXT .LE. AIM)  GO TO 930
+      ALSB(2) = AOPT
+      IPT = IPT + 1
+      XPT(IPT) = ALSB(2)
+      YPT(IPT) = FNEXT
+      CHPT(IPT)= CHARAL(IPT:IPT)
+      FLSB(2) = FNEXT
+      DFDA = (FLSB(2)-FLSB(1))/ (ALSB(2)-ALSB(1))
+C                   DFDA must be positive on the contour
+      IF (DFDA .GT. ZERO)  GO TO 460
+  300    CALL MNWARN('D',CHERE,'Looking for slope of the right sign')
+         MAXLK = MAXITR - IPT
+         DO 400 IT= 1, MAXLK
+            ALSB(1) = ALSB(2)
+            FLSB(1) = FLSB(2)
+            AOPT = ALSB(1) + 0.2*REAL(IT)
+            LIMSET = .FALSE.
+            IF (AOPT .GT. AULIM)  THEN
+              AOPT = AULIM
+              LIMSET = .TRUE.
+            ENDIF
+            CALL MNEVAL(FCN,AOPT,FNEXT,IEREV,FUTIL)
+C debug printout:
+      IF (LDEBUG) WRITE (ISYSWR,'(A,I8,A,F10.5,A,2F10.5)')
+     + ' MNCROS: calls=',NFCN,'   AIM=',AIM,'  F,A=',FNEXT,AOPT
+            IF (IEREV .GT. 0)  GO TO 900
+            IF (LIMSET .AND. FNEXT .LE. AIM)  GO TO 930
+               ALSB(2) = AOPT
+               IPT = IPT + 1
+               XPT(IPT) = ALSB(2)
+               YPT(IPT) = FNEXT
+               CHPT(IPT)= CHARAL(IPT:IPT)
+            FLSB(2) = FNEXT
+            DFDA = (FLSB(2)-FLSB(1))/ (ALSB(2)-ALSB(1))
+            IF (DFDA .GT. ZERO)  GO TO 450
+  400    CONTINUE
+         CALL MNWARN('W',CHERE,'Cannot find slope of the right sign')
+         GO TO 950
+  450    CONTINUE
+C                    we have two points with the right slope
+  460 AOPT = ALSB(2) + (AIM-FLSB(2))/DFDA
+      FDIST = MIN(ABS(AIM -FLSB(1)),ABS(AIM -FLSB(2)))
+      ADIST = MIN(ABS(AOPT-ALSB(1)),ABS(AOPT-ALSB(2)))
+      TLA = TLR
+      IF (ABS(AOPT) .GT. ONE)  TLA = TLR*ABS(AOPT)
+      IF (ADIST .LT. TLA .AND. FDIST .LT. TLF) GO TO 800
+      IF (IPT .GE. MAXITR)  GO TO 950
+      BMIN = MIN(ALSB(1),ALSB(2)) - 1.0
+      IF (AOPT .LT. BMIN)  AOPT = BMIN
+      BMAX = MAX(ALSB(1),ALSB(2)) + 1.0
+      IF (AOPT .GT. BMAX)  AOPT = BMAX
+C                    Try a third point
+      LIMSET = .FALSE.
+      IF (AOPT .GT. AULIM) THEN
+         AOPT = AULIM
+         LIMSET = .TRUE.
+      ENDIF
+      CALL MNEVAL(FCN,AOPT,FNEXT,IEREV,FUTIL)
+C debug printout:
+      IF (LDEBUG) WRITE (ISYSWR,'(A,I8,A,F10.5,A,2F10.5)')
+     + ' MNCROS: calls=',NFCN,'   AIM=',AIM,'  F,A=',FNEXT,AOPT
+      IF (IEREV .GT. 0)  GO TO 900
+      IF (LIMSET .AND. FNEXT .LE. AIM)  GO TO 930
+      ALSB(3) = AOPT
+      IPT = IPT + 1
+      XPT(IPT) = ALSB(3)
+      YPT(IPT) = FNEXT
+      CHPT(IPT)= CHARAL(IPT:IPT)
+      FLSB(3) = FNEXT
+      INEW = 3
+C                now we have three points, ask how many <AIM
+      ECARMN = ABS(FNEXT-AIM)
+      IBEST = 3
+      ECARMX = 0.
+      NOLESS = 0
+      DO 480 I= 1, 3
+         ECART = ABS(FLSB(I) - AIM)
+         IF (ECART .GT. ECARMX) THEN
+            ECARMX = ECART
+            IWORST = I
+         ENDIF
+         IF (ECART .LT. ECARMN) THEN
+            ECARMN = ECART
+            IBEST = I
+         ENDIF
+         IF (FLSB(I) .LT. AIM) NOLESS = NOLESS + 1
+  480 CONTINUE
+      INEW = IBEST
+C           if at least one on each side of AIM, fit a parabola
+      IF (NOLESS.EQ.1 .OR. NOLESS.EQ.2) GO TO 500
+C           if all three are above AIM, third must be closest to AIM
+      IF (NOLESS .EQ. 0 .AND. IBEST .NE. 3)  GO TO 950
+C           if all three below, and third is not best, then slope
+C             has again gone negative, look for positive slope.
+      IF (NOLESS .EQ. 3 .AND. IBEST .NE. 3) THEN
+          ALSB(2) = ALSB(3)
+          FLSB(2) = FLSB(3)
+          GO TO 300
+      ENDIF
+C           in other cases, new straight line thru last two points
+      ALSB(IWORST) = ALSB(3)
+      FLSB(IWORST) = FLSB(3)
+      DFDA = (FLSB(2)-FLSB(1))/ (ALSB(2)-ALSB(1))
+      GO TO 460
+C                parabola fit
+  500 CALL MNPFIT(ALSB,FLSB,3,COEFF,SDEV)
+      IF (COEFF(3) .LE. ZERO)  CALL MNWARN ('D',CHERE,
+     +             'Curvature is negative near contour line.')
+      DETERM =  COEFF(2)**2 - 4.*COEFF(3)*(COEFF(1)-AIM)
+      IF (DETERM .LE. ZERO)   THEN
+          CALL MNWARN('D',CHERE,'Problem 2, impossible determinant')
+          GO TO 950
+      ENDIF
+C                Find which root is the right one
+      RT = SQRT(DETERM)
+      X1 = (-COEFF(2) + RT)/(2.*COEFF(3))
+      X2 = (-COEFF(2) - RT)/(2.*COEFF(3))
+      S1 = COEFF(2) + 2.*X1*COEFF(3)
+      S2 = COEFF(2) + 2.*X2*COEFF(3)
+      IF (S1*S2 .GT. ZERO) WRITE (ISYSWR,'(A)') ' MNCONTour problem 1'
+      AOPT = X1
+      SLOPE = S1
+      IF (S2 .GT. ZERO)  THEN
+         AOPT = X2
+         SLOPE = S2
+      ENDIF
+C         ask if converged
+      TLA = TLR
+      IF (ABS(AOPT) .GT. ONE)  TLA = TLR*ABS(AOPT)
+      IF (ABS(AOPT-ALSB(IBEST)) .LT. TLA  .AND. 
+     &    ABS(FLSB(IBEST)-AIM)  .LT. TLF)  GO TO 800
+      IF (IPT .GE. MAXITR)  GO TO 950
+C         see if proposed point is in acceptable zone between L and R
+C         first find ILEFT, IRIGHT, IOUT and IBEST
+      ILEFT = 0
+      IRIGHT = 0
+      IBEST = 1
+      ECARMX = 0.
+      ECARMN = ABS(AIM-FLSB(1))
+      DO 550 I= 1, 3
+      ECART = ABS(FLSB(I) - AIM)
+      IF (ECART .LT. ECARMN) THEN
+         ECARMN = ECART
+         IBEST = I
+      ENDIF
+      IF (ECART .GT. ECARMX) ECARMX = ECART
+      IF (FLSB(I) .GT. AIM)  THEN
+         IF (IRIGHT .EQ. 0)  THEN
+            IRIGHT = I
+         ELSE IF (FLSB(I) .GT. FLSB(IRIGHT)) THEN
+            IOUT = I
+         ELSE
+            IOUT = IRIGHT
+            IRIGHT = I
+         ENDIF
+      ELSE IF (ILEFT .EQ. 0)  THEN
+         ILEFT = I
+      ELSE IF (FLSB(I) .LT. FLSB(ILEFT)) THEN
+         IOUT = I
+      ELSE     
+         IOUT = ILEFT
+         ILEFT = I
+      ENDIF
+  550 CONTINUE 
+C       avoid keeping a very bad point next time around
+      IF (ECARMX .GT. 10.*ABS(FLSB(IOUT)-AIM))
+     &    AOPT = HALF*AOPT + HALF*HALF*(ALSB(IRIGHT)+ALSB(ILEFT))      
+C         knowing ILEFT and IRIGHT, get acceptable window
+      SMALLA = 0.1*TLA
+      IF (SLOPE*SMALLA .GT. TLF)  SMALLA = TLF/SLOPE
+      ALEFT  = ALSB(ILEFT)  + SMALLA
+      ARIGHT = ALSB(IRIGHT) - SMALLA
+C         move proposed point AOPT into window if necessary
+      IF (AOPT .LT. ALEFT)  AOPT = ALEFT
+      IF (AOPT .GT. ARIGHT) AOPT = ARIGHT
+      IF (ALEFT .GT. ARIGHT)AOPT = HALF*(ALEFT + ARIGHT)
+C         see if proposed point outside limits (should be impossible!)
+      LIMSET = .FALSE.
+      IF (AOPT .GT. AULIM)  THEN
+              AOPT = AULIM
+              LIMSET = .TRUE.
+      ENDIF
+C                  Evaluate function at new point AOPT
+      CALL MNEVAL(FCN,AOPT,FNEXT,IEREV,FUTIL)
+C debug printout:
+      IF (LDEBUG) WRITE (ISYSWR,'(A,I8,A,F10.5,A,2F10.5)')
+     + ' MNCROS: calls=',NFCN,'   AIM=',AIM,'  F,A=',FNEXT,AOPT
+      IF (IEREV .GT. 0)  GO TO 900
+      IF (LIMSET .AND. FNEXT .LE. AIM)  GO TO 930
+      IPT = IPT + 1
+      XPT(IPT) = AOPT
+      YPT(IPT) = FNEXT
+      CHPT(IPT)= CHARAL(IPT:IPT)
+C                Replace odd point by new one
+      ALSB(IOUT) = AOPT
+      FLSB(IOUT) = FNEXT
+C          the new point may not be the best, but it is the only one
+C          which could be good enough to pass convergence criteria
+      IBEST = IOUT
+      GO TO 500
+C
+C       Contour has been located, return point to MNCONT OR MINOS
+  800 CONTINUE
+      IERCR = 0
+      GO TO 1000
+C                error in the minimization
+  900 IF (IEREV .EQ. 1)  GO TO 940
+      GO TO 950
+C                parameter up against limit
+  930 IERCR = 1
+      GO TO 1000
+C                too many calls to FCN
+  940 IERCR = 2
+      GO TO 1000
+C                cannot find next point
+  950 IERCR = 3
+C                in any case
+ 1000 CONTINUE
+      IF (LDEBUG) THEN
+         ITOOHI = 0
+         DO 1100 I= 1, IPT
+         IF (YPT(I) .GT. AIM+UP) THEN
+            YPT(I) = AIM+UP
+            CHPT(I) = '+'
+            ITOOHI = 1
+         ENDIF
+ 1100    CONTINUE
+         CHSIGN = 'POSI'
+         IF (XDIRCR .LT. ZERO)  CHSIGN = 'NEGA'
+         IF (KE2CR .EQ. 0)  WRITE (ISYSWR, '(2X,A,A,I3)')
+     +            CHSIGN,'TIVE MINOS ERROR, PARAMETER ',KE1CR
+         IF (ITOOHI .EQ. 1)  WRITE (ISYSWR, '(10X,A)')
+     +            'POINTS LABELLED "+" WERE TOO HIGH TO PLOT.'
+         IF (IERCR .EQ. 1) WRITE (ISYSWR,'(10X,A)')
+     +            'RIGHTMOST POINT IS UP AGAINST LIMIT.'
+         CALL MNPLOT(XPT,YPT,CHPT,IPT,ISYSWR,NPAGWD,NPAGLN)
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mncuve.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mncuve.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mncuve.F	(revision 2403)
@@ -0,0 +1,56 @@
+*
+* $Id: mncuve.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNCUVE(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Makes sure that the current point is a local
+CC        minimum and that the error matrix exists,
+CC        or at least something good enough for MINOS and MNCONT
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      IF (ISW(4) .LT. 1) THEN
+          WRITE (ISYSWR,'(/A,A)')
+     +    ' FUNCTION MUST BE MINIMIZED BEFORE CALLING ',CFROM
+          APSI = EPSI
+          CALL MNMIGR(FCN,FUTIL)
+      ENDIF
+      IF (ISW(2) .LT. 3)  THEN
+         CALL MNHESS(FCN,FUTIL)
+         IF (ISW(2) .LT. 1)  THEN
+            CALL MNWARN('W',CFROM,'NO ERROR MATRIX.  WILL IMPROVISE.')
+            DO 555 I=1,NPAR
+              NDEX = I*(I-1)/2
+              DO 554 J=1,I-1
+              NDEX = NDEX + 1
+  554         VHMAT(NDEX) = 0.
+            NDEX = NDEX + 1
+            IF (G2(I) .LE. ZERO)  THEN
+              WINT = WERR(I)
+              IEXT = NEXOFI(I)
+              IF (NVARL(IEXT) .GT. 1) THEN
+                 CALL MNDXDI(X(I),I,DXDI)
+                 IF (ABS(DXDI) .LT. .001) THEN
+                    WINT = .01
+                 ELSE
+                    WINT = WINT/ABS(DXDI)
+                 ENDIF
+              ENDIF
+              G2(I) = UP/WINT**2
+            ENDIF
+            VHMAT(NDEX) = 2./G2(I)
+  555       CONTINUE
+            ISW(2) = 1
+            DCOVAR = 1.
+         ELSE
+           CALL MNWERR
+         ENDIF
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnderi.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnderi.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnderi.F	(revision 2403)
@@ -0,0 +1,141 @@
+*
+* $Id: mnderi.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:43  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNDERI(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Calculates the first derivatives of FCN (GRD),
+CC        either by finite differences or by transforming the user-
+CC        supplied derivatives to internal coordinates,
+CC        according to whether ISW(3) is zero or one.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      LOGICAL LDEBUG
+      CHARACTER CBF1*22
+      NPARX = NPAR
+      LDEBUG = (IDBG(2) .GE. 1)
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      IF (ISW(3) .EQ. 1)  GO TO 100
+      IF (LDEBUG) THEN
+C                       make sure starting at the right place
+        CALL MNINEX(X)
+        NPARX = NPAR
+        CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+        NFCN = NFCN + 1
+        IF (FS1 .NE. AMIN) THEN
+           DF = AMIN - FS1
+           WRITE (CBF1(1:12),'(G12.3)') DF
+           CALL MNWARN('D','MNDERI',
+     +         'function value differs from AMIN by '//CBF1(1:12) )
+           AMIN = FS1
+        ENDIF
+          WRITE
+     +   (ISYSWR,'(/''  FIRST DERIVATIVE DEBUG PRINTOUT.  MNDERI''/
+     +   '' PAR    DERIV     STEP      MINSTEP   OPTSTEP '',
+     +   '' D1-D2    2ND DRV'')')
+      ENDIF
+      DFMIN = 8. * EPSMA2*(ABS(AMIN)+UP)
+      VRYSML = 8.* EPSMAC**2
+      IF (ISTRAT .LE. 0) THEN
+         NCYC = 2
+         TLRSTP = 0.5
+         TLRGRD = 0.1
+      ELSE IF (ISTRAT .EQ. 1) THEN
+         NCYC = 3
+         TLRSTP = 0.3
+         TLRGRD = 0.05
+      ELSE
+         NCYC = 5
+         TLRSTP = 0.1
+         TLRGRD = 0.02
+      ENDIF
+C                                loop over variable parameters
+      DO 60  I=1,NPAR
+      EPSPRI = EPSMA2 + ABS(GRD(I)*EPSMA2)
+C         two-point derivatives always assumed necessary
+C         maximum number of cycles over step size depends on strategy
+      XTF = X(I)
+      STEPB4 = 0.
+C                               loop as little as possible here!
+      DO 45 ICYC= 1, NCYC
+C                 ........ theoretically best step
+      OPTSTP = SQRT(DFMIN/(ABS(G2(I))+EPSPRI))
+C                     step cannot decrease by more than a factor of ten
+      STEP = MAX(OPTSTP, ABS(0.1*GSTEP(I)))
+C                 but if parameter has limits, max step size = 0.5
+      IF (GSTEP(I).LT.ZERO .AND. STEP.GT.0.5)  STEP=0.5
+C                 and not more than ten times the previous step
+      STPMAX = 10.*ABS(GSTEP(I))
+      IF (STEP .GT. STPMAX)  STEP = STPMAX
+C                 minimum step size allowed by machine precision
+      STPMIN = MAX(VRYSML, 8.*ABS(EPSMA2*X(I)))
+      IF (STEP .LT. STPMIN)  STEP = STPMIN
+C                 end of iterations if step change less than factor 2
+      IF (ABS((STEP-STEPB4)/STEP) .LT. TLRSTP)  GO TO 50
+C         take step positive
+      GSTEP(I) = SIGN(STEP, GSTEP(I))
+      STEPB4 = STEP
+      X(I) = XTF + STEP
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+      NFCN=NFCN+1
+C         take step negative
+      X(I) = XTF - STEP
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FS2,U,4,FUTIL)
+      NFCN=NFCN+1
+      GRBFOR = GRD(I)
+      GRD(I) = (FS1-FS2)/(2.0*STEP)
+      G2(I) = (FS1+FS2-2.0*AMIN)/(STEP**2)
+      X(I) = XTF
+      IF (LDEBUG) THEN
+         D1D2 = (FS1+FS2-2.0*AMIN)/STEP
+         WRITE (ISYSWR,41) I,GRD(I),STEP,STPMIN,OPTSTP,D1D2,G2(I)
+   41    FORMAT (I4,2G11.3,5G10.2)
+      ENDIF
+C         see if another iteration is necessary
+      IF (ABS(GRBFOR-GRD(I))/(ABS(GRD(I))+DFMIN/STEP) .LT. TLRGRD)
+     +        GO TO 50
+   45 CONTINUE
+C                           end of ICYC loop. too many iterations
+      IF (NCYC .EQ. 1)  GO TO 50
+         WRITE (CBF1,'(2E11.3)')  GRD(I),GRBFOR
+         CALL MNWARN('D','MNDERI',
+     +         'First derivative not converged. '//CBF1)
+   50 CONTINUE
+C
+   60 CONTINUE
+      CALL MNINEX(X)
+      RETURN
+C                                        .  derivatives calc by fcn
+  100 DO 150 IINT= 1, NPAR
+      IEXT = NEXOFI(IINT)
+      IF (NVARL(IEXT) .GT. 1)  GO TO 120
+      GRD(IINT) = GIN(IEXT)
+      GO TO 150
+  120 DD = (BLIM(IEXT)-ALIM(IEXT))*0.5 *COS(X(IINT))
+      GRD(IINT) = GIN(IEXT)*DD
+  150 CONTINUE
+  200 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mndxdi.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mndxdi.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mndxdi.F	(revision 2403)
@@ -0,0 +1,21 @@
+*
+* $Id: mndxdi.F,v 1.1.1.1 2003-06-11 14:18:26 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNDXDI(PINT,IPAR,DXDI)
+#include "minuit/d506dp.inc"
+CC        calculates the transformation factor between external and
+CC        internal parameter values.     this factor is one for
+CC        parameters which are not limited.     called from MNEMAT.
+#include "minuit/d506cm.inc"
+      I = NEXOFI(IPAR)
+      DXDI = 1.0
+      IF (NVARL(I) .GT. 1)
+     +      DXDI = 0.5 *ABS((BLIM(I)-ALIM(I)) * COS(PINT))
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mneig.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mneig.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mneig.F	(revision 2403)
@@ -0,0 +1,195 @@
+*
+* $Id: mneig.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNEIG(A,NDIMA,N,MITS,WORK,PRECIS,IFAULT)
+#include "minuit/d506dp.inc"
+C
+      PARAMETER (ZERO=0.0,  ONE=1.0,   TWO=2.0)
+      PARAMETER (TOL=1.0E-35)
+      DIMENSION A(NDIMA,*),WORK(*)
+C          PRECIS is the machine precision EPSMAC
+      IFAULT = 1
+C
+      I = N
+      DO 70 I1 = 2,N
+      L = I-2
+      F = A(I,I-1)
+      GL = ZERO
+C
+      IF(L .LT. 1) GO TO 25
+C
+      DO 20 K = 1,L
+   20 GL = GL+A(I,K)**2
+   25 H = GL + F**2
+C
+      IF(GL .GT. TOL) GO TO 30
+C
+      WORK(I) = ZERO
+      WORK(N+I) = F
+      GO TO 65
+   30 L = L+1
+C
+      GL = SQRT(H)
+C
+      IF(F .GE. ZERO) GL = -GL
+C
+      WORK(N+I) = GL
+      H = H-F*GL
+      A(I,I-1) = F-GL
+      F = ZERO
+      DO 50 J = 1,L
+      A(J,I) = A(I,J)/H
+      GL = ZERO
+      DO 40 K = 1,J
+   40 GL = GL+A(J,K)*A(I,K)
+C
+      IF(J .GE. L) GO TO 47
+C
+      J1 = J+1
+      DO 45 K = J1,L
+   45 GL = GL+A(K,J)*A(I,K)
+   47 WORK(N+J) = GL/H
+      F = F+GL*A(J,I)
+   50 CONTINUE
+      HH = F/(H+H)
+      DO 60 J = 1,L
+      F = A(I,J)
+      GL = WORK(N+J)-HH*F
+      WORK(N+J) = GL
+      DO 60 K = 1,J
+      A(J,K) = A(J,K)-F*WORK(N+K)-GL*A(I,K)
+   60 CONTINUE
+      WORK(I) = H
+   65 I = I-1
+   70 CONTINUE
+      WORK(1) = ZERO
+      WORK(N+1) = ZERO
+      DO 110 I = 1,N
+      L = I-1
+C
+      IF(WORK(I) .EQ. ZERO .OR. L .EQ. 0) GO TO 100
+C
+      DO 90 J = 1,L
+      GL = ZERO
+      DO 80 K = 1,L
+   80 GL = GL+A(I,K)*A(K,J)
+      DO 90 K = 1,L
+      A(K,J) = A(K,J)-GL*A(K,I)
+   90 CONTINUE
+  100 WORK(I) = A(I,I)
+      A(I,I) = ONE
+C
+      IF(L .EQ. 0) GO TO 110
+C
+      DO 105 J = 1,L
+      A(I,J) = ZERO
+      A(J,I) = ZERO
+  105 CONTINUE
+  110 CONTINUE
+C
+C
+      N1 = N-1
+      DO 130 I = 2,N
+      I0 = N+I-1
+  130 WORK(I0) = WORK(I0+1)
+      WORK(N+N) = ZERO
+      B = ZERO
+      F = ZERO
+      DO 210 L = 1,N
+      J = 0
+      H = PRECIS*(ABS(WORK(L))+ABS(WORK(N+L)))
+C
+      IF(B .LT. H) B = H
+C
+      DO 140 M1 = L,N
+      M = M1
+C
+      IF(ABS(WORK(N+M)) .LE. B) GO TO 150
+C
+  140 CONTINUE
+C
+  150 IF(M .EQ. L) GO TO 205
+C
+  160 IF(J .EQ. MITS) RETURN
+C
+      J = J+1
+      PT = (WORK(L+1)-WORK(L))/(TWO*WORK(N+L))
+      R = SQRT(PT*PT+ONE)
+      PR = PT+R
+C
+      IF(PT .LT. ZERO) PR=PT-R
+C
+      H = WORK(L)-WORK(N+L)/PR
+      DO 170 I=L,N
+  170 WORK(I) = WORK(I)-H
+      F = F+H
+      PT = WORK(M)
+      C = ONE
+      S = ZERO
+      M1 = M-1
+      I = M
+      DO 200 I1 = L,M1
+      J = I
+      I = I-1
+      GL = C*WORK(N+I)
+      H = C*PT
+C
+      IF(ABS(PT) .GE. ABS(WORK(N+I))) GO TO 180
+C
+      C = PT/WORK(N+I)
+      R = SQRT(C*C+ONE)
+      WORK(N+J) = S*WORK(N+I)*R
+      S = ONE/R
+      C = C/R
+      GO TO 190
+  180 C = WORK(N+I)/PT
+      R = SQRT(C*C+ONE)
+      WORK(N+J) = S*PT*R
+      S = C/R
+      C = ONE/R
+  190 PT = C*WORK(I)-S*GL
+      WORK(J) = H+S*(C*GL+S*WORK(I))
+      DO 200 K = 1,N
+      H = A(K,J)
+      A(K,J) = S*A(K,I)+C*H
+      A(K,I) = C*A(K,I)-S*H
+  200 CONTINUE
+      WORK(N+L) = S*PT
+      WORK(L) = C*PT
+C
+      IF(ABS(WORK(N+L)) .GT. B) GO TO 160
+C
+  205 WORK(L) = WORK(L)+F
+  210 CONTINUE
+      DO 240 I=1,N1
+      K = I
+      PT = WORK(I)
+      I1 = I+1
+      DO 220 J = I1,N
+C
+      IF(WORK(J) .GE. PT) GO TO 220
+C
+      K = J
+      PT = WORK(J)
+  220 CONTINUE
+C
+      IF(K .EQ. I) GO TO 240
+C
+      WORK(K) = WORK(I)
+      WORK(I) = PT
+      DO 230 J=1,N
+      PT = A(J,I)
+      A(J,I) = A(J,K)
+      A(J,K) = PT
+  230 CONTINUE
+  240 CONTINUE
+      IFAULT = 0
+C
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnemat.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnemat.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnemat.F	(revision 2403)
@@ -0,0 +1,56 @@
+*
+* $Id: mnemat.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNEMAT(EMAT,NDIM)
+#include "minuit/d506dp.inc"
+      DIMENSION EMAT(NDIM,NDIM)
+CC        Calculates the external error matrix from the internal
+CC        to be called by user, who must dimension EMAT at (NDIM,NDIM)
+#include "minuit/d506cm.inc"
+      IF (ISW(2) .LT. 1)  RETURN
+      IF (ISW(5) .GE. 2)  WRITE (ISYSWR,'(/A,I4,A,I3,A,G10.3)')
+     +    ' EXTERNAL ERROR MATRIX.    NDIM=',NDIM,'    NPAR=',NPAR,
+     +    '    ERR DEF=',UP
+C                    size of matrix to be printed
+      NPARD = NPAR
+      IF (NDIM .LT. NPAR)  THEN
+        NPARD = NDIM
+        IF (ISW(5) .GE. 0) WRITE (ISYSWR,'(A,A)') ' USER-DIMENSIONED ',
+     +      ' ARRAY EMAT NOT BIG ENOUGH. REDUCED MATRIX CALCULATED.'
+      ENDIF
+C                 NPERLN is the number of elements that fit on one line
+      NPERLN = (NPAGWD-5)/10
+      NPERLN = MIN(NPERLN,13)
+      IF (ISW(5).GE. 1 .AND. NPARD.GT.NPERLN)  WRITE (ISYSWR,'(A)')
+     +     ' ELEMENTS ABOVE DIAGONAL ARE NOT PRINTED.'
+C                 I counts the rows of the matrix
+      DO 110 I= 1, NPARD
+         CALL MNDXDI(X(I),I,DXDI)
+         KGA = I*(I-1)/2
+         DO 100 J= 1, I
+            CALL MNDXDI(X(J),J,DXDJ)
+            KGB = KGA + J
+            EMAT(I,J) = DXDI * VHMAT(KGB) * DXDJ * UP
+            EMAT(J,I) = EMAT(I,J)
+  100    CONTINUE
+  110 CONTINUE
+C                    IZ is number of columns to be printed in row I
+      IF (ISW(5) .GE. 2)  THEN
+      DO 160 I= 1, NPARD
+         IZ = NPARD
+         IF (NPARD .GE. NPERLN)  IZ = I
+         DO 150 K= 1, IZ, NPERLN
+           K2 = K + NPERLN - 1
+           IF (K2 .GT. IZ)  K2=IZ
+           WRITE (ISYSWR,'(1X,13E10.3)')  (EMAT(I,KK),KK=K,K2)
+  150    CONTINUE
+  160 CONTINUE
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnerrs.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnerrs.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnerrs.F	(revision 2403)
@@ -0,0 +1,50 @@
+*
+* $Id: mnerrs.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNERRS(NUMBER,EPLUS,EMINUS,EPARAB,GCC)
+#include "minuit/d506dp.inc"
+CC    Called by user, utility routine to get MINOS errors
+CC    If NUMBER is positive, then it is external parameter number,
+CC                  if negative, it is -internal number.
+CC    values returned by MNERRS:
+CC       EPLUS, EMINUS are MINOS errors of parameter NUMBER,
+CC       EPARAB is 'parabolic' error (from error matrix).
+CC                 (Errors not calculated are set = 0.)
+CC       GCC is global correlation coefficient from error matrix
+#include "minuit/d506cm.inc"
+C
+      IEX = NUMBER
+      IF (NUMBER .LT. 0)  THEN
+         IIN = -NUMBER
+         IF (IIN .GT. NPAR)  GO TO 900
+         IEX = NEXOFI(IIN)
+      ENDIF
+      IF (IEX .GT. NU .OR. IEX .LE. 0)  GO TO 900
+      IIN = NIOFEX(IEX)
+      IF (IIN .LE. 0)  GO TO 900
+C             IEX is external number, IIN is internal number
+      EPLUS = ERP(IIN)
+        IF (EPLUS.EQ.UNDEFI)  EPLUS=0.
+      EMINUS= ERN(IIN)
+        IF (EMINUS.EQ.UNDEFI) EMINUS=0.
+      CALL MNDXDI(X(IIN),IIN,DXDI)
+      NDIAG = IIN*(IIN+1)/2
+      EPARAB = ABS(DXDI*SQRT(ABS(UP*VHMAT(NDIAG))))
+C              global correlation coefficient
+      GCC = 0.
+      IF (ISW(2) .LT. 2)  GO TO 990
+      GCC = GLOBCC(IIN)
+      GO TO 990
+C                  ERROR.  parameter number not valid
+  900 EPLUS = 0.
+      EMINUS = 0.
+      EPARAB = 0.
+      GCC = 0.
+  990 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mneval.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mneval.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mneval.F	(revision 2403)
@@ -0,0 +1,39 @@
+*
+* $Id: mneval.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNEVAL(FCN,ANEXT,FNEXT,IEREV,FUTIL)
+#include "minuit/d506dp.inc"
+CC      Evaluates the function being analyzed by MNCROS, which is
+CC      generally the minimum of FCN with respect to all remaining
+CC      variable parameters.  Common block /MN7XCR/ contains the
+CC      data necessary to know the values of U(KE1CR) and U(KE2CR)
+CC      to be used, namely     U(KE1CR) = XMIDCR + ANEXT*XDIRCR
+CC      and (if KE2CR .NE. 0)  U(KE2CR) = YMIDCR + ANEXT*YDIRCR
+#include "minuit/d506cm.inc"
+CC
+      EXTERNAL FCN,FUTIL
+                          U(KE1CR) = XMIDCR + ANEXT*XDIRCR
+      IF ( KE2CR .NE. 0)  U(KE2CR) = YMIDCR + ANEXT*YDIRCR
+      CALL MNINEX(X)
+      NPARX = NPAR
+      CALL FCN(NPARX,GIN,FNEXT,U,4,FUTIL)
+      NFCN = NFCN + 1
+      IEREV = 0
+      IF (NPAR .GT. 0)  THEN
+         ITAUR = 1
+         AMIN = FNEXT
+         ISW(1) = 0
+         CALL MNMIGR(FCN,FUTIL)
+         ITAUR = 0
+         FNEXT = AMIN
+         IF (ISW(1) .GE. 1)  IEREV = 1
+         IF (ISW(4) .LT. 1)  IEREV = 2
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnexcm.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnexcm.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnexcm.F	(revision 2403)
@@ -0,0 +1,469 @@
+*
+* $Id: mnexcm.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:45  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNEXCM(FCN,COMAND,PLIST,LLIST,IERFLG,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Interprets a command and takes appropriate action,
+CC        either directly by skipping to the corresponding code in
+CC        MNEXCM, or by setting up a call to a subroutine
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      CHARACTER*(*) COMAND
+C   Cannot say DIMENSION PLIST(LLIST) since LLIST can be =0.
+      DIMENSION PLIST(*)
+      PARAMETER (MXPT=101)
+      DIMENSION XPTU(MXPT), YPTU(MXPT)
+C  alphabetical order of command names!
+      CHARACTER*10 CNAME(40), CNEWAY, CHWHY*18, C26*30, CVBLNK*2
+      LOGICAL LTOFIX, LFIXED, LFREED
+C
+      CHARACTER COMD*4
+      CHARACTER CLOWER*26, CUPPER*26
+      DATA CLOWER/'abcdefghijklmnopqrstuvwxyz'/
+      DATA CUPPER/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
+C
+C  recognized MINUIT commands:
+      DATA CNAME( 1) / 'MINImize  ' /
+      DATA CNAME( 2) / 'SEEk      ' /
+      DATA CNAME( 3) / 'SIMplex   ' /
+      DATA CNAME( 4) / 'MIGrad    ' /
+      DATA CNAME( 5) / 'MINOs     ' /
+      DATA CNAME( 6) / 'SET xxx   ' /
+      DATA CNAME( 7) / 'SHOw xxx  ' /
+      DATA CNAME( 8) / 'TOP of pag' /
+      DATA CNAME( 9) / 'FIX       ' /
+      DATA CNAME(10) / 'REStore   ' /
+      DATA CNAME(11) / 'RELease   ' /
+      DATA CNAME(12) / 'SCAn      ' /
+      DATA CNAME(13) / 'CONtour   ' /
+      DATA CNAME(14) / 'HESse     ' /
+      DATA CNAME(15) / 'SAVe      ' /
+      DATA CNAME(16) / 'IMProve   ' /
+      DATA CNAME(17) / 'CALl fcn  ' /
+      DATA CNAME(18) / 'STAndard  ' /
+      DATA CNAME(19) / 'END       ' /
+      DATA CNAME(20) / 'EXIt      ' /
+      DATA CNAME(21) / 'RETurn    ' /
+      DATA CNAME(22) / 'CLEar     ' /
+      DATA CNAME(23) / 'HELP      ' /
+      DATA CNAME(24) / 'MNContour ' /
+      DATA CNAME(25) / 'STOp      ' /
+      DATA CNAME(26) / 'JUMp      ' /
+      DATA CNAME(27) / '          ' /
+      DATA CNAME(28) / '          ' /
+      DATA CNAME(29) / '          ' /
+      DATA CNAME(30) / '          ' /
+      DATA CNAME(31) / '          ' /
+      DATA CNAME(32) / '          ' /
+      DATA CNAME(33) / '          ' /
+C  obsolete commands:
+      DATA CNAME(34) / 'COVARIANCE' /
+      DATA CNAME(35) / 'PRINTOUT  ' /
+      DATA CNAME(36) / 'GRADIENT  ' /
+      DATA CNAME(37) / 'MATOUT    ' /
+      DATA CNAME(38) / 'ERROR DEF ' /
+      DATA CNAME(39) / 'LIMITS    ' /
+      DATA CNAME(40) / 'PUNCH     ' /
+      DATA NNTOT/40/
+C      IERFLG is now (94.5) defined the same as ICONDN in MNCOMD
+CC            = 0: command executed normally
+CC              1: command is blank, ignored
+CC              2: command line unreadable, ignored
+CC              3: unknown command, ignored
+CC              4: abnormal termination (e.g., MIGRAD not converged)
+CC              9: reserved
+CC             10: END command
+CC             11: EXIT or STOP command
+CC             12: RETURN command
+      LK = LEN(COMAND)
+      IF (LK .GT. MAXCWD) LK=MAXCWD
+      CWORD = COMAND(1:LK)
+C              get upper case
+      DO 16 ICOL= 1, LK
+        DO 15 LET= 1, 26
+        IF (CWORD(ICOL:ICOL) .EQ. CLOWER(LET:LET))
+     +      CWORD(ICOL:ICOL) = CUPPER(LET:LET)
+   15   CONTINUE
+   16 CONTINUE
+C           Copy the first MAXP arguments into COMMON (WORD7), making
+C           sure that WORD7(1)=0. if LLIST=0
+      DO 20 IW= 1, MAXP
+      WORD7(IW) = ZERO
+      IF (IW .LE. LLIST) WORD7(IW) = PLIST(IW)
+   20 CONTINUE
+      ICOMND = ICOMND + 1
+      NFCNLC = NFCN
+      IF (CWORD(1:7).NE.'SET PRI' .OR. WORD7(1).GE.0.)  THEN
+        IF (ISW(5) .GE. 0) THEN
+         LNOW = LLIST
+         IF (LNOW .GT. 4)  LNOW=4
+         WRITE (ISYSWR,25) ICOMND,CWORD(1:LK),(PLIST(I),I=1,LNOW)
+   25    FORMAT (1H ,10(1H*)/' **',I5,' **',A,4G12.4)
+         INONDE = 0
+         IF (LLIST .GT. LNOW) THEN
+           KLL = LLIST
+           IF (LLIST .GT. MAXP) THEN
+              INONDE = 1
+              KLL = MAXP
+           ENDIF
+           WRITE (CVBLNK,'(I2)') LK
+           C26 = '(11H **********,'//CVBLNK//'X,4G12.4)'
+           WRITE (ISYSWR,C26) (PLIST(I),I=LNOW+1,KLL)
+         ENDIF
+         WRITE (ISYSWR, '(1H ,10(1H*))' )
+         IF (INONDE .GT. 0)  WRITE (ISYSWR, '(1H ,10(1H*),A,I3,A)')
+     +        '  ERROR: ABOVE CALL TO MNEXCM TRIED TO PASS MORE THAN ',
+     +        MAXP,' PARAMETERS.'
+        ENDIF
+      ENDIF
+      NFCNMX = WORD7(1)
+      IF (NFCNMX .LE. 0)  NFCNMX = 200 + 100*NPAR + 5*NPAR**2
+      EPSI = WORD7(2)
+      IF (EPSI .LE. ZERO)  EPSI = 0.1 * UP
+      LNEWMN = .FALSE.
+      LPHEAD = .TRUE.
+      ISW(1) = 0
+      IERFLG = 0
+C                look for command in list CNAME . . . . . . . . . .
+      DO 80 I= 1, NNTOT
+      IF (CWORD(1:3) .EQ. CNAME(I)(1:3))  GO TO 90
+   80 CONTINUE
+      WRITE (ISYSWR,'(11X,''UNKNOWN COMMAND IGNORED:'',A)') COMAND
+      IERFLG = 3
+      GO TO 5000
+C                normal case: recognized MINUIT command . . . . . . .
+   90 CONTINUE
+      IF (CWORD(1:4) .EQ. 'MINO') I = 5
+      IF (I.NE.6 .AND. I.NE.7 .AND. I.NE.8 .AND. I.NE.23)  THEN
+         CFROM = CNAME(I)
+         NFCNFR = NFCN
+      ENDIF
+C              1    2    3    4    5    6    7    8    9   10
+      GO TO ( 400, 200, 300, 400, 500, 700, 700, 800, 900,1000,
+     1       1100,1200,1300,1400,1500,1600,1700,1800,1900,1900,
+     2       1900,2200,2300,2400,1900,2600,3300,3300,3300,3300,
+     3       3300,3300,3300,3400,3500,3600,3700,3800,3900,4000) , I
+C                                        . . . . . . . . . . seek
+  200 CALL MNSEEK(FCN,FUTIL)
+      GO TO 5000
+C                                        . . . . . . . . . . simplex
+  300 CALL MNSIMP(FCN,FUTIL)
+      IF (ISW(4) .LT. 1)  IERFLG = 4
+      GO TO 5000
+C                                        . . . . . . migrad, minimize
+  400 CONTINUE
+      NF = NFCN
+      APSI = EPSI
+      CALL MNMIGR(FCN,FUTIL)
+      CALL MNWERR
+      IF (ISW(4) .GE. 1)         GO TO 5000
+        IERFLG = 4
+      IF (ISW(1) .EQ. 1)         GO TO 5000
+      IF (CWORD(1:3) .EQ. 'MIG') GO TO 5000
+      NFCNMX = NFCNMX + NF - NFCN
+      NF = NFCN
+      CALL MNSIMP(FCN,FUTIL)
+      IF (ISW(1) .EQ. 1)  GO TO 5000
+      NFCNMX = NFCNMX + NF - NFCN
+      CALL MNMIGR(FCN,FUTIL)
+         IF (ISW(4) .GE. 1)  IERFLG = 0
+      CALL MNWERR
+      GO TO 5000
+C                                        . . . . . . . . . . minos
+  500 CONTINUE
+      NSUPER = NFCN + 2*(NPAR+1)*NFCNMX
+C          possible loop over new minima
+      EPSI = 0.1 * UP
+  510 CONTINUE
+      CALL MNCUVE(FCN,FUTIL)
+      CALL MNMNOS(FCN,FUTIL)
+      IF (.NOT. LNEWMN)  GO TO 5000
+      CALL MNRSET(0)
+      CALL MNMIGR(FCN,FUTIL)
+      CALL MNWERR
+      IF (NFCN .LT. NSUPER)  GO TO 510
+      WRITE (ISYSWR,'(/'' TOO MANY FUNCTION CALLS. MINOS GIVES UP''/)')
+      IERFLG = 4
+      GO TO 5000
+C                                        . . . . . . . . . .set, show
+  700 CALL MNSET(FCN,FUTIL)
+      GO TO 5000
+C                                        . . . . . . . . . . top of page
+  800 CONTINUE
+      WRITE (ISYSWR,'(1H1)')
+      GO TO 5000
+C                                        . . . . . . . . . . fix
+  900 LTOFIX = .TRUE.
+C                                        . . (also release) ....
+  901 CONTINUE
+      LFREED = .FALSE.
+      LFIXED = .FALSE.
+      IF (LLIST .EQ. 0)  THEN
+         WRITE (ISYSWR,'(A,A)') CWORD,':  NO PARAMETERS REQUESTED '
+         GO TO 5000
+      ENDIF
+      DO 950 ILIST= 1, LLIST
+      IEXT = PLIST(ILIST)
+      CHWHY = ' IS UNDEFINED.'
+      IF (IEXT .LE. 0)         GO TO 930
+      IF (IEXT .GT. NU)        GO TO 930
+      IF (NVARL(IEXT) .LT. 0)  GO TO 930
+      CHWHY = ' IS CONSTANT.  '
+      IF (NVARL(IEXT) .EQ. 0)  GO TO 930
+      IINT = NIOFEX(IEXT)
+      IF (LTOFIX) THEN
+         CHWHY = ' ALREADY FIXED.'
+         IF (IINT .EQ. 0)      GO TO 930
+         CALL MNFIXP(IINT,IERR)
+         IF (IERR .EQ. 0) THEN
+            LFIXED = .TRUE.
+         ELSE
+            IERFLG = 4
+         ENDIF
+      ELSE
+         CHWHY = ' ALREADY VARIABLE.'
+         IF (IINT .GT. 0)      GO TO 930
+         KRL = -IABS(IEXT)
+         CALL MNFREE(KRL)
+         LFREED = .TRUE.
+      ENDIF
+      GO TO 950
+  930 WRITE (ISYSWR,'(A,I4,A,A)') ' PARAMETER',IEXT,CHWHY,' IGNORED.'
+  950 CONTINUE
+      IF (LFREED .OR. LFIXED)  CALL MNRSET(0)
+      IF (LFREED)  THEN
+          ISW(2) = 0
+          DCOVAR = 1.
+          EDM = BIGEDM
+          ISW(4) = 0
+      ENDIF
+      CALL MNWERR
+      IF (ISW(5) .GT. 1)  CALL MNPRIN(5,AMIN)
+      GO TO 5000
+C                                        . . . . . . . . . . restore
+ 1000 IT = WORD7(1)
+      IF (IT.GT.1 .OR. IT.LT.0)  GO TO 1005
+      LFREED = (NPFIX .GT. 0)
+      CALL MNFREE(IT)
+      IF (LFREED) THEN
+         CALL MNRSET(0)
+         ISW(2) = 0
+         DCOVAR = 1.
+         EDM = BIGEDM
+      ENDIF
+      GO TO 5000
+ 1005 WRITE (ISYSWR,'(A,I4)') ' IGNORED.  UNKNOWN ARGUMENT:',IT
+      IERFLG = 3
+      GO TO 5000
+C                                        . . . . . . . . . . release
+ 1100 LTOFIX = .FALSE.
+      GO TO 901
+C                                       . . . . . . . . . . scan . . .
+ 1200 CONTINUE
+      IEXT = WORD7(1)
+      IF (IEXT .LE. 0)  GO TO 1210
+      IT2 = 0
+      IF (IEXT .LE. NU)  IT2 = NIOFEX(IEXT)
+      IF (IT2 .LE. 0)  GO TO 1250
+ 1210 CALL MNSCAN(FCN,FUTIL)
+      GO TO 5000
+ 1250 WRITE (ISYSWR,'(A,I4,A)') ' PARAMETER',IEXT,' NOT VARIABLE.'
+      IERFLG = 3
+      GO TO 5000
+C                                        . . . . . . . . . . contour
+ 1300 CONTINUE
+      KE1 = WORD7(1)
+      KE2 = WORD7(2)
+      IF (KE1 .EQ. 0)  THEN
+         IF (NPAR .EQ. 2)  THEN
+            KE1 = NEXOFI(1)
+            KE2 = NEXOFI(2)
+         ELSE
+            WRITE (ISYSWR,'(A,A)') CWORD,':  NO PARAMETERS REQUESTED '
+            IERFLG = 3
+            GO TO 5000
+         ENDIF
+      ENDIF
+      NFCNMX = 1000
+      CALL MNCNTR(FCN,KE1,KE2,IERRF,FUTIL)
+      IF (IERRF .GT. 0)  IERFLG = 3
+      GO TO 5000
+C                                        . . . . . . . . . . hesse
+ 1400 CONTINUE
+      CALL MNHESS(FCN,FUTIL)
+      CALL MNWERR
+      IF (ISW(5) .GE. 0)  CALL MNPRIN(2, AMIN)
+      IF (ISW(5) .GE. 1)  CALL MNMATU(1)
+      GO TO 5000
+C                                        . . . . . . . . . . save
+ 1500 CONTINUE
+      CALL MNSAVE
+      GO TO 5000
+C                                        . . . . . . . . . . improve
+ 1600 CONTINUE
+      CALL MNCUVE(FCN,FUTIL)
+      CALL MNIMPR(FCN,FUTIL)
+      IF (LNEWMN)  GO TO 400
+      IERFLG = 4
+      GO TO 5000
+C                                        . . . . . . . . . . call fcn
+ 1700 IFLAG = WORD7(1)
+      NPARX = NPAR
+      F = UNDEFI
+      CALL FCN(NPARX,GIN,F,U,IFLAG,FUTIL)
+      NFCN = NFCN + 1
+      NOWPRT = 0
+      IF (F .NE. UNDEFI)  THEN
+         IF (AMIN .EQ. UNDEFI)  THEN
+             AMIN = F
+             NOWPRT = 1
+         ELSE IF (F .LT. AMIN)  THEN
+             AMIN = F
+             NOWPRT = 1
+         ENDIF
+         IF (ISW(5).GE.0 .AND. IFLAG.LE.5 .AND. NOWPRT.EQ.1)
+     +          CALL MNPRIN(5,AMIN)
+         IF (IFLAG .EQ. 3)  FVAL3=F
+      ENDIF
+      IF (IFLAG .GT. 5)  CALL MNRSET(1)
+      GO TO 5000
+C                                        . . . . . . . . . . standard
+ 1800 CALL STAND
+      GO TO 5000
+C                                       . . . return, stop, end, exit
+ 1900 IT = WORD7(1)
+      IF (FVAL3 .NE. AMIN .AND. IT .EQ. 0)  THEN
+        IFLAG = 3
+        IF (ISW(5) .GE. 0)
+     +WRITE (ISYSWR,'(/A/)') ' CALL TO USER FUNCTION WITH IFLAG = 3'
+        NPARX = NPAR
+        CALL FCN(NPARX,GIN,F,U,IFLAG,FUTIL)
+        NFCN = NFCN + 1
+        FVAL3 = F
+      ENDIF
+      IERFLG = 11
+      IF (CWORD(1:3) .EQ. 'END')  IERFLG = 10
+      IF (CWORD(1:3) .EQ. 'RET')  IERFLG = 12
+      GO TO 5000
+C                                        . . . . . . . . . . clear
+ 2200 CONTINUE
+      CALL MNCLER
+      IF (ISW(5) .GE. 1)  WRITE (ISYSWR,'(A)')
+     + ' MINUIT MEMORY CLEARED. NO PARAMETERS NOW DEFINED.'
+      GO TO 5000
+C                                        . . . . . . . . . . help
+ 2300 CONTINUE
+CCCC      IF (INDEX(CWORD,'SHO') .GT. 0)  GO TO 700
+CCCC      IF (INDEX(CWORD,'SET') .GT. 0)  GO TO 700
+      KCOL = 0
+      DO 2310 ICOL= 5,LK
+        IF (CWORD(ICOL:ICOL) .EQ. ' ') GO TO 2310
+        KCOL = ICOL
+        GO TO 2320
+ 2310 CONTINUE
+ 2320 CONTINUE
+      IF (KCOL .EQ. 0)  THEN
+         COMD = '*   '
+      ELSE
+         COMD = CWORD(KCOL:LK)
+      ENDIF
+      CALL MNHELP(COMD,ISYSWR)
+      GO TO 5000
+C                                       . . . . . . . . . . MNContour
+ 2400 CONTINUE
+      EPSI = 0.05 * UP
+      KE1 = WORD7(1)
+      KE2 = WORD7(2)
+      IF (KE1.EQ.0 .AND. NPAR.EQ.2) THEN
+         KE1 = NEXOFI(1)
+         KE2 = NEXOFI(2)
+         ENDIF
+      NPTU = WORD7(3)
+      IF (NPTU .LE. 0)  NPTU=20
+      IF (NPTU .GT. MXPT)  NPTU = MXPT
+      NFCNMX =  100*(NPTU+5)*(NPAR+1)
+      CALL MNCONT(FCN,KE1,KE2,NPTU,XPTU,YPTU,IERRF,FUTIL)
+      IF (IERRF .LT. NPTU) IERFLG = 4
+      IF (IERRF .EQ. -1)   IERFLG = 3
+      GO TO 5000
+C                                      . . . . . . . . . . jump
+ 2600 CONTINUE
+      STEP = WORD7(1)
+      IF (STEP .LE. ZERO)  STEP = 2.
+      RNO = 0.
+      IZERO = 0
+      DO 2620 I= 1, NPAR
+        CALL MNRN15(RNO,IZERO)
+        RNO = 2.0*RNO - 1.0
+ 2620   X(I) = X(I) + RNO*STEP*WERR(I)
+      CALL MNINEX(X)
+      CALL MNAMIN(FCN,FUTIL)
+      CALL MNRSET(0)
+      GO TO 5000
+C                                      . . . . . . . . . . blank line
+ 3300 CONTINUE
+      WRITE (ISYSWR,'(10X,A)') ' BLANK COMMAND IGNORED.'
+      IERFLG = 1
+      GO TO 5000
+C  . . . . . . . . obsolete commands     . . . . . . . . . . . . . .
+C                                      . . . . . . . . . . covariance
+ 3400 CONTINUE
+      WRITE (ISYSWR, '(A)') ' THE "COVARIANCE" COMMAND IS OSBSOLETE.',
+     + ' THE COVARIANCE MATRIX IS NOW SAVED IN A DIFFERENT FORMAT',
+     + ' WITH THE "SAVE" COMMAND AND READ IN WITH:"SET COVARIANCE"'
+      IERFLG = 3
+      GO TO 5000
+C                                        . . . . . . . . . . printout
+ 3500 CONTINUE
+      CNEWAY = 'SET PRInt '
+      GO TO 3100
+C                                        . . . . . . . . . . gradient
+ 3600 CONTINUE
+      CNEWAY = 'SET GRAd  '
+      GO TO 3100
+C                                        . . . . . . . . . . matout
+ 3700 CONTINUE
+      CNEWAY = 'SHOW COVar'
+      GO TO 3100
+C                                        . . . . . . . . . error def
+ 3800 CONTINUE
+      CNEWAY = 'SET ERRdef'
+      GO TO 3100
+C                                        . . . . . . . . . . limits
+ 3900 CONTINUE
+      CNEWAY = 'SET LIMits'
+      GO TO 3100
+C                                        . . . . . . . . . . punch
+ 4000 CONTINUE
+      CNEWAY = 'SAVE      '
+C                                ....... come from obsolete commands
+ 3100 WRITE (ISYSWR, 3101) CWORD,CNEWAY
+ 3101 FORMAT (' OBSOLETE COMMAND:',1X,A10,5X,'PLEASE USE:',1X,A10)
+      CWORD = CNEWAY
+      IF (CWORD .EQ. 'SAVE      ') GO TO 1500
+      GO TO 700
+C                                 . . . . . . . . . . . . . . . . . .
+ 5000 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnexin.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnexin.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnexin.F	(revision 2403)
@@ -0,0 +1,24 @@
+*
+* $Id: mnexin.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNEXIN(PINT)
+#include "minuit/d506dp.inc"
+CC        Transforms the external parameter values U to internal
+CC        values in the dense array PINT. Subroutine MNPINT is used.
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION PINT(*)
+      LIMSET = .FALSE.
+      DO 100  IINT= 1, NPAR
+      IEXT = NEXOFI(IINT)
+      CALL MNPINT(U(IEXT),IEXT,PINTI)
+      PINT(IINT) = PINTI
+  100 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnfixp.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnfixp.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnfixp.F	(revision 2403)
@@ -0,0 +1,81 @@
+*
+* $Id: mnfixp.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNFIXP(IINT,IERR)
+#include "minuit/d506dp.inc"
+CC        removes parameter IINT from the internal (variable) parameter
+CC        list, and arranges the rest of the list to fill the hole.
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION YY(MNI)
+C                           first see if it can be done
+      IERR = 0
+      IF (IINT.GT.NPAR .OR. IINT.LE.0)  THEN
+         IERR = 1
+         WRITE (ISYSWR,'(A,I4)')
+     +       ' MINUIT ERROR.  ARGUMENT TO MNFIXP=',IINT
+         GO TO 300
+      ENDIF
+      IEXT = NEXOFI(IINT)
+      IF (NPFIX .GE. MNI) THEN
+         IERR = 1
+         WRITE (ISYSWR,'(A,I4,A,I4)') ' MINUIT CANNOT FIX PARAMETER',
+     +   IEXT,' MAXIMUM NUMBER THAT CAN BE FIXED IS',MNI
+         GO TO 300
+      ENDIF
+C                           reduce number of variable parameters by one
+      NIOFEX(IEXT) = 0
+      NOLD = NPAR
+      NPAR = NPAR - 1
+C                       save values in case parameter is later restored
+      NPFIX = NPFIX + 1
+      IPFIX(NPFIX) = IEXT
+      LC = IINT
+      XS(NPFIX) = X(LC)
+      XTS(NPFIX) = XT(LC)
+      DIRINS(NPFIX) = WERR(LC)
+      GRDS(NPFIX) = GRD(LC)
+      G2S(NPFIX) = G2(LC)
+      GSTEPS(NPFIX) = GSTEP(LC)
+C                        shift values for other parameters to fill hole
+      DO 100  IK= IEXT+1, NU
+         IF  (NIOFEX(IK) .GT. 0)  THEN
+         LC = NIOFEX(IK) - 1
+         NIOFEX(IK) = LC
+         NEXOFI(LC) = IK
+         X(LC)     = X(LC+1)
+         XT(LC)    = XT(LC+1)
+         DIRIN(LC) = DIRIN(LC+1)
+         WERR(LC)  = WERR(LC+1)
+         GRD(LC)   = GRD(LC+1)
+         G2(LC)    = G2(LC+1)
+         GSTEP(LC) = GSTEP(LC+1)
+         ENDIF
+  100 CONTINUE
+      IF (ISW(2) .LE. 0)  GO TO 300
+C                    remove one row and one column from variance matrix
+      IF (NPAR .LE. 0)  GO TO 300
+      DO 260 I= 1, NOLD
+      M = MAX(I,IINT)
+      N = MIN(I,IINT)
+      NDEX = M*(M-1)/2 + N
+  260 YY(I)=VHMAT(NDEX)
+      YYOVER = 1.0/YY(IINT)
+      KNEW = 0
+      KOLD = 0
+      DO 294 I= 1, NOLD
+      DO 292 J= 1, I
+      KOLD = KOLD + 1
+      IF (J.EQ.IINT .OR. I.EQ.IINT)  GO TO 292
+      KNEW = KNEW + 1
+      VHMAT(KNEW) = VHMAT(KOLD) - YY(J)*YY(I)*YYOVER
+  292 CONTINUE
+  294 CONTINUE
+  300 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnfree.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnfree.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnfree.F	(revision 2403)
@@ -0,0 +1,109 @@
+*
+* $Id: mnfree.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNFREE(K)
+#include "minuit/d506dp.inc"
+CC        Restores one or more fixed parameter(s) to variable status
+CC        by inserting it into the internal parameter list at the
+CC        appropriate place.
+CC
+#include "minuit/d506cm.inc"
+C--       K = 0 means restore all parameters
+C--       K = 1 means restore the last parameter fixed
+C--       K = -I means restore external parameter I (if possible)
+C--       IQ = fix-location where internal parameters were stored
+C--       IR = external number of parameter being restored
+C--       IS = internal number of parameter being restored
+      IF (K .GT. 1)  WRITE (ISYSWR,510)
+      IF (NPFIX .LT. 1)  WRITE (ISYSWR,500)
+      IF (K.EQ.1 .OR. K.EQ.0)  GO TO 40
+C                   release parameter with specified external number
+      KA = IABS(K)
+      IF (NIOFEX(KA) .EQ. 0)  GO TO 15
+      WRITE (ISYSWR,540)
+  540 FORMAT (' IGNORED.  PARAMETER SPECIFIED IS ALREADY VARIABLE.')
+      RETURN
+   15 IF (NPFIX .LT. 1)  GO TO 21
+      DO 20 IK= 1, NPFIX
+      IF (IPFIX(IK) .EQ. KA)  GO TO 24
+   20 CONTINUE
+   21 WRITE (ISYSWR,530) KA
+  530 FORMAT (' PARAMETER',I4,' NOT FIXED.  CANNOT BE RELEASED.')
+      RETURN
+   24 IF (IK .EQ. NPFIX)  GO TO 40
+C                   move specified parameter to end of list
+      IPSAV = KA
+      XV = XS(IK)
+      XTV = XTS(IK)
+      DIRINV = DIRINS(IK)
+      GRDV = GRDS(IK)
+      G2V = G2S(IK)
+      GSTEPV = GSTEPS(IK)
+         DO 30 I= IK+1,NPFIX
+         IPFIX(I-1) = IPFIX(I)
+         XS(I-1) = XS(I)
+         XTS(I-1) = XTS(I)
+         DIRINS(I-1) = DIRINS(I)
+         GRDS(I-1) = GRDS(I)
+         G2S(I-1) = G2S(I)
+         GSTEPS(I-1) = GSTEPS(I)
+   30    CONTINUE
+      IPFIX(NPFIX) = IPSAV
+      XS(NPFIX) = XV
+      XTS(NPFIX) = XTV
+      DIRINS(NPFIX) = DIRINV
+      GRDS(NPFIX) = GRDV
+      G2S(NPFIX) = G2V
+      GSTEPS(NPFIX) = GSTEPV
+C                restore last parameter in fixed list  -- IPFIX(NPFIX)
+   40 CONTINUE
+      IF (NPFIX .LT. 1)  GO TO 300
+      IR = IPFIX(NPFIX)
+      IS = 0
+      DO 100 IK= NU, IR, -1
+        IF (NIOFEX(IK) .GT. 0) THEN
+         LC = NIOFEX(IK) + 1
+         IS = LC - 1
+         NIOFEX(IK) = LC
+         NEXOFI(LC) = IK
+         X(LC)     = X(LC-1)
+         XT(LC)    = XT(LC-1)
+         DIRIN(LC) = DIRIN(LC-1)
+         WERR(LC)  = WERR(LC-1)
+         GRD(LC)   = GRD(LC-1)
+         G2(LC)    = G2(LC-1)
+         GSTEP(LC) = GSTEP(LC-1)
+        ENDIF
+  100 CONTINUE
+      NPAR = NPAR + 1
+      IF (IS .EQ. 0)   IS = NPAR
+      NIOFEX(IR) = IS
+      NEXOFI(IS) = IR
+      IQ = NPFIX
+      X(IS) = XS(IQ)
+      XT(IS) = XTS(IQ)
+      DIRIN(IS) = DIRINS(IQ)
+      WERR(IS)  = DIRINS(IQ)
+      GRD(IS) = GRDS(IQ)
+      G2(IS) = G2S(IQ)
+      GSTEP(IS) = GSTEPS(IQ)
+      NPFIX = NPFIX - 1
+      ISW(2) = 0
+      DCOVAR = 1.
+      IF (ISW(5)-ITAUR .GE. 1)  WRITE(ISYSWR,520) IR,CPNAM(IR)
+      IF (K.EQ.0)  GO TO 40
+  300 CONTINUE
+C         if different from internal, external values are taken
+      CALL MNEXIN(X)
+  400 RETURN
+  500 FORMAT (' CALL TO MNFREE IGNORED.  THERE ARE NO FIXED PA',
+     + 'RAMETERS'/)
+  510 FORMAT (' CALL TO MNFREE IGNORED.  ARGUMENT GREATER THAN ONE'/)
+  520 FORMAT (20X, 9HPARAMETER,I4,2H, ,A10,' RESTORED TO VARIABLE.')
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mngrad.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mngrad.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mngrad.F	(revision 2403)
@@ -0,0 +1,71 @@
+*
+* $Id: mngrad.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNGRAD(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC       Called from MNSET
+CC       Interprets the SET GRAD command, which informs MINUIT whether
+CC       the first derivatives of FCN will be calculated by the user
+CC       inside FCN.  It can check the user's derivative calculation
+CC       by comparing it with a finite difference approximation.
+CC
+#include "minuit/d506cm.inc"
+C
+      EXTERNAL FCN,FUTIL
+      CHARACTER*4 CGOOD,CBAD,CNONE,CWD
+      LOGICAL LNONE
+      DIMENSION GF(MNI)
+      PARAMETER (CGOOD='GOOD',CBAD=' BAD',CNONE='NONE')
+C
+      ISW(3) = 1
+      NPARX = NPAR
+      IF (WORD7(1) .GT. ZERO)  GO TO 2000
+C                  get user-calculated first derivatives from FCN
+      DO 30 I= 1, NU
+   30 GIN(I) = UNDEFI
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FZERO,U,2,FUTIL)
+      NFCN = NFCN + 1
+      CALL MNDERI(FCN,FUTIL)
+      DO 40 I= 1, NPAR
+   40 GF(I) = GRD(I)
+C                    get MINUIT-calculated first derivatives
+      ISW(3) = 0
+      ISTSAV = ISTRAT
+      ISTRAT = 2
+      CALL MNHES1(FCN,FUTIL)
+      ISTRAT = ISTSAV
+      WRITE (ISYSWR,51)
+   51 FORMAT(/' CHECK OF GRADIENT CALCULATION IN FCN'/12X,'PARAMETER',
+     + 6X,9HG(IN FCN) ,3X,9HG(MINUIT) ,2X,'DG(MINUIT)',3X,9HAGREEMENT)
+      ISW(3) = 1
+      LNONE = .FALSE.
+      DO 100 LC = 1, NPAR
+      I = NEXOFI(LC)
+      CWD = CGOOD
+      ERR = DGRD(LC)
+      IF (ABS(GF(LC)-GRD(LC)) .GT. ERR)  CWD = CBAD
+      IF (GIN(I) .EQ. UNDEFI)  THEN
+          CWD = CNONE
+          LNONE = .TRUE.
+          GF(LC) = 0.
+          ENDIF
+      IF (CWD .NE. CGOOD)  ISW(3) = 0
+      WRITE (ISYSWR,99) I,CPNAM(I),GF(LC),GRD(LC),ERR,CWD
+   99 FORMAT (7X,I5,2X ,A10,3E12.4,4X ,A4)
+  100 CONTINUE
+      IF (LNONE) WRITE (ISYSWR,'(A)')
+     +  '  AGREEMENT=NONE  MEANS FCN DID NOT CALCULATE THE DERIVATIVE'
+      IF (ISW(3) .EQ. 0)  WRITE (ISYSWR,1003)
+ 1003 FORMAT(/' MINUIT DOES NOT ACCEPT DERIVATIVE CALCULATIONS BY FCN'/
+     + ' TO FORCE ACCEPTANCE, ENTER "SET GRAD    1"'/)
+C
+ 2000 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnhelp.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnhelp.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnhelp.F	(revision 2403)
@@ -0,0 +1,624 @@
+*
+* $Id: mnhelp.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1999/09/03 09:17:47  couet
+* - \Cind{} removed in the help of minuit. This was a Tex directive which very
+*   likely has been forgotten during a Tex to f77 translation. This didn't
+*   compile on RH6.
+*
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNHELP(COMD,LOUT)
+*.
+*.         HELP routine for MINUIT interactive commands.
+*.
+*.      COMD ='*   '  prints a global help for all commands
+*.      COMD =Command_name: print detailed help for one command.
+*.          Note that at least 3 characters must be given for the command name.
+*.
+*.     Author: Rene Brun
+*             comments extracted from the MINUIT documentation file.
+*.
+      CHARACTER*(*) COMD
+      CHARACTER*3 CMD3
+*.
+*-- command name ASSUMED to be in upper case
+*__________________________________________________________________
+*--
+*--  Global HELP: Summary of all commands
+*--  ====================================
+*--
+      IF(COMD(1:1) .EQ. '*')THEN
+         WRITE(LOUT,10000)
+         WRITE(LOUT,10001)
+         GO TO 99
+      ENDIF
+10000 FORMAT('   ==>List of MINUIT Interactive commands:',/,
+     +' CLEar     Reset all parameter names and values undefined',/,
+     +' CONtour   Make contour map of the user function',/,
+     +' EXIT      Exit from Interactive Minuit',/,
+     +' FIX       Cause parameter(s) to remain constant',/,
+     +' HESse     Calculate the Hessian or error matrix.',/,
+     +' IMPROVE   Search for a new minimum around current minimum',/,
+     +' MIGrad    Minimize by the method of Migrad',/,
+     +' MINImize  MIGRAD + SIMPLEX method if Migrad fails',/,
+     +' MINOs     Exact (non-linear) parameter error analysis')
+10001 FORMAT(' MNContour Calculate one MINOS function contour',/,
+     +' PARameter Define or redefine new parameters and values',/,
+     +' RELease   Make previously FIXed parameters variable again',/,
+     +' REStore   Release last parameter fixed',/,
+     +' SAVe      Save current parameter values on a file',/,
+     +' SCAn      Scan the user function by varying parameters',/,
+     +' SEEk      Minimize by the method of Monte Carlo',/,
+     +' SET       Set various MINUIT constants or conditions',/,
+     +' SHOw      Show values of current constants or conditions',/,
+     +' SIMplex   Minimize by the method of Simplex')
+*
+      CMD3=COMD(1:3)
+*__________________________________________________________________
+*--
+*--  Command CLEAR
+*--  =============
+*.
+      IF(CMD3.EQ.'CLE')THEN
+         WRITE(LOUT,10100)
+         GO TO 99
+      ENDIF
+10100 FORMAT(' ***>CLEAR',/,
+     +' Resets all parameter names and values to undefined.',/,
+     +' Must normally be followed by a PARameters command or ',/,
+     +' equivalent, in order to define parameter values.')
+*__________________________________________________________________
+*--
+*--  Command CONTOUR
+*--  ===============
+*.
+      IF(CMD3.EQ.'CON')THEN
+         WRITE(LOUT,10200)
+         GO TO 99
+      ENDIF
+10200 FORMAT(' ***>CONTOUR <par1>  <par2>  [devs]  [ngrid]',/,
+     +' Instructs Minuit to trace contour lines of the user function',/,
+     +' with respect to the two parameters whose external numbers',/,
+     +' are <par1> and <par2>.',/,
+     +' Other variable parameters of the function, if any, will have',/,
+     +' their values fixed at the current values during the contour',/,
+     +' tracing. The optional parameter [devs] (default value 2.)',/,
+     +' gives the number of standard deviations in each parameter',/,
+     +' which should lie entirely within the plotting area.',/,
+     +' Optional parameter [ngrid] (default value 25 unless page',/,
+     +' size is too small) determines the resolution of the plot,',/,
+     +' i.e. the number of rows and columns of the grid at which the',/,
+     +' function will be evaluated. [See also MNContour.]')
+*__________________________________________________________________
+*--
+*--  Command END
+*--  ===========
+*.
+      IF(CMD3.EQ.'END')THEN
+         WRITE(LOUT,10300)
+         GO TO 99
+      ENDIF
+10300 FORMAT(' ***>END',/,
+     +' Signals the end of a data block (i.e., the end of a fit),',/,
+     +' and implies that execution should continue, because another',/,
+     +' Data Block follows. A Data Block is a set of Minuit data',/,
+     +' consisting of',/,
+     +'     (1) A Title,',/,
+     +'     (2) One or more Parameter Definitions,',/,
+     +'     (3) A blank line, and',/,
+     +'     (4) A set of Minuit Commands.',/,
+     +' The END command is used when more than one Data Block is to',/,
+     +' be used with the same FCN function. It first causes Minuit',/,
+     +' to issue a CALL FCN with IFLAG=3, in order to allow FCN to',/,
+     +' perform any calculations associated with the final fitted',/,
+     +' parameter values, unless a CALL FCN 3 command has already',/,
+     +' been executed at the current FCN value.')
+*__________________________________________________________________
+*.
+*--
+*--  Command EXIT
+*--  ============
+      IF(CMD3 .EQ.'EXI')THEN
+         WRITE(LOUT,10400)
+         GO TO 99
+      ENDIF
+10400 FORMAT(' ***>EXIT',/,
+     +' Signals the end of execution.',/,
+     +' The EXIT command first causes Minuit to issue a CALL FCN',/,
+     +' with IFLAG=3, to allow FCN to perform any calculations',/,
+     +' associated with the final fitted parameter values, unless a',/,
+     +' CALL FCN 3 command has already been executed.')
+*__________________________________________________________________
+*--
+*--  Command FIX
+*--  ===========
+*.
+      IF(CMD3.EQ.'FIX')THEN
+         WRITE(LOUT,10500)
+         GO TO 99
+      ENDIF
+10500 FORMAT(' ***>FIX} <parno> [parno] ... [parno]',/,
+     +' Causes parameter(s) <parno> to be removed from the list of',/,
+     +' variable parameters, and their value(s) will remain constant',/,
+     +' during subsequent minimizations, etc., until another command',/,
+     +' changes their value(s) or status.')
+*__________________________________________________________________
+*--
+*--  Command HESSE
+*--  =============
+*.
+      IF(CMD3.EQ.'HES')THEN
+         WRITE(LOUT,10600)
+         GO TO 99
+      ENDIF
+10600 FORMAT(' ***>HESse  [maxcalls]',/,
+     +' Calculate, by finite differences, the Hessian or error matrix.',
+     +/,'  That is, it calculates the full matrix of second derivatives'
+     +,/,' of the function with respect to the currently variable',/,
+     +' parameters, and inverts it, printing out the resulting error',/,
+     +' matrix. The optional argument [maxcalls] specifies the',/,
+     +' (approximate) maximum number of function calls after which',/,
+     +' the calculation will be stopped.')
+*__________________________________________________________________
+*--
+*--  Command IMPROVE
+*--  ===============
+*.
+      IF(CMD3.EQ.'IMP')THEN
+         WRITE(LOUT,10700)
+         GO TO 99
+      ENDIF
+10700 FORMAT(' ***>IMPROVE  [maxcalls]',/,
+     +' If a previous minimization has converged, and the current',/,
+     +' values of the parameters therefore correspond to a local',/,
+     +' minimum of the function, this command requests a search for',/,
+     +' additional distinct local minima.',/,
+     +' The optional argument [maxcalls] specifies the (approximate)',/,
+     +' maximum number of function calls after which the calculation',/,
+     +' will be stopped.')
+*__________________________________________________________________
+*--
+*--  Command MIGRAD
+*--  ==============
+*.
+      IF(CMD3.EQ.'MIG')THEN
+         WRITE(LOUT,10800)
+         GO TO 99
+      ENDIF
+10800 FORMAT(' ***>MIGrad  [maxcalls]  [tolerance]',/,
+     +' Causes minimization of the function by the method of Migrad,',/,
+     +' the most efficient and complete single method, recommended',/,
+     +' for general functions (see also MINImize).',/,
+     +' The minimization produces as a by-product the error matrix',/,
+     +' of the parameters, which is usually reliable unless warning',/,
+     +' messages are produced.',/,
+     +' The optional argument [maxcalls] specifies the (approximate)',/,
+     +' maximum number of function calls after which the calculation',/,
+     +' will be stopped even if it has not yet converged.',/,
+     +' The optional argument [tolerance] specifies required tolerance',
+     +/,' on the function value at the minimum.',/,
+     +' The default tolerance is 0.1, and the minimization will stop',/,
+     +' when the estimated vertical distance to the minimum (EDM) is',/,
+     +' less than 0.001*[tolerance]*UP (see [SET ERRordef]).')
+*__________________________________________________________________
+*--
+*--  Command MINIMIZE
+*--  ================
+*.
+      IF(COMD(1:4).EQ.'MINI')THEN
+         WRITE(LOUT,10900)
+         GO TO 99
+      ENDIF
+10900 FORMAT(' ***>MINImize  [maxcalls] [tolerance]',/,
+     +' Causes minimization of the function by the method of Migrad,',/,
+     +' as does the MIGrad command, but switches to the SIMplex method',
+     +/,' if Migrad fails to converge. Arguments are as for MIGrad.',/,
+     +' Note that command requires four characters to be unambiguous.')
+*__________________________________________________________________
+*--
+*--  Command MINOS
+*--  =============
+*.
+      IF(COMD(1:4).EQ.'MINO')THEN
+         WRITE(LOUT,11000)
+         GO TO 99
+      ENDIF
+11000 FORMAT(' ***>MINOs  [maxcalls]  [parno] [parno] ...',/,
+     +' Causes a Minos error analysis to be performed on the parameters'
+     +,/,' whose numbers [parno] are specified. If none are specified,',
+     +/,' Minos errors are calculated for all variable parameters.',/,
+     +' Minos errors may be expensive to calculate, but are very',/,
+     +' reliable since they take account of non-linearities in the',/,
+     +' problem as well as parameter correlations, and are in general',/
+     +' asymmetric.',/,
+     +' The optional argument [maxcalls] specifies the (approximate)',/,
+     +' maximum number of function calls per parameter requested,',/,
+     +' after which the calculation will stop for that parameter.')
+*__________________________________________________________________
+*--
+*--  Command MNCONTOUR
+*--  =================
+*.
+      IF(CMD3.EQ.'MNC')THEN
+         WRITE(LOUT,11100)
+         GO TO 99
+      ENDIF
+11100 FORMAT(' ***>MNContour  <par1> <par2> [npts]',/,
+     +' Calculates one function contour of FCN with respect to',/,
+     +' parameters par1 and par2, with FCN minimized always with',/,
+     +' respect to all other NPAR-2 variable parameters (if any).',/,
+     +' Minuit will try to find npts points on the contour (default 20)'
+     +,/,' If only two parameters are variable at the time, it is not',
+     +/,' necessary to specify their numbers. To calculate more than',/,
+     +' one contour, it is necessary to SET ERRordef to the appropriate'
+     +,/,' value and issue the MNContour command for each contour.')
+*__________________________________________________________________
+*--
+*--  Command PARAMETER
+*--  =================
+*.
+      IF(CMD3.EQ.'PAR')THEN
+         WRITE(LOUT,11150)
+         GO TO 99
+      ENDIF
+11150 FORMAT(' ***>PARameters',/,
+     +' followed by one or more parameter definitions.',/,
+     +' Parameter definitions are of the form:',/,
+     +'   <number>  ''name''  <value>  <step>  [lolim] [uplim] ',/,
+     +' for example:',/,
+     +'  3  ''K width''  1.2   0.1' ,/,
+     +' the last definition is followed by a blank line or a zero.')
+*__________________________________________________________________
+*--
+*--  Command RELEASE
+*--  ===============
+*.
+      IF(CMD3.EQ.'REL')THEN
+         WRITE(LOUT,11200)
+         GO TO 99
+      ENDIF
+11200 FORMAT(' ***>RELease  <parno> [parno] ... [parno]',/,
+     +' If <parno> is the number of a previously variable parameter',/,
+     +' which has been fixed by a command: FIX <parno>, then that',/,
+     +' parameter will return to variable status.  Otherwise a warning'
+     +,/,' message is printed and the command is ignored.',/,
+     +' Note that this command operates only on parameters which were',/
+     +' at one time variable and have been FIXed. It cannot make',/,
+     +' constant parameters variable; that must be done by redefining',/
+     +' the parameter with a PARameters command.')
+*__________________________________________________________________
+*--
+*--  Command RESTORE
+*--  ===============
+*.
+      IF(CMD3.EQ.'RES')THEN
+         WRITE(LOUT,11300)
+         GO TO 99
+      ENDIF
+11300 FORMAT(' ***>REStore  [code]',/,
+     +' If no [code] is specified, this command restores all previously'
+     +,/,' FIXed parameters to variable status. If [code]=1, then only',
+     +/,' the last parameter FIXed is restored to variable status.',/,
+     +' If code is neither zero nor one, the command is ignored.')
+*__________________________________________________________________
+*--
+*--  Command RETURN
+*--  ==============
+*.
+      IF(CMD3.EQ.'RET')THEN
+         WRITE(LOUT,11400)
+         GO TO 99
+      ENDIF
+11400 FORMAT(' ***>RETURN',/,
+     +' Signals the end of a data block, and instructs Minuit to return'
+     +,/,' to the program which called it. The RETurn command first',/,
+     +' causes Minuit to CALL FCN with IFLAG=3, in order to allow FCN',/
+     +,' to perform any calculations associated with the final fitted',/
+     +,' parameter values, unless a CALL FCN 3 command has already been'
+     +,/,' executed at the current FCN value.')
+*__________________________________________________________________
+*--
+*--  Command SAVE
+*--  ============
+*.
+      IF(CMD3.EQ.'SAV')THEN
+         WRITE(LOUT,11500)
+         GO TO 99
+      ENDIF
+11500 FORMAT(' ***>SAVe',/,
+     +' Causes the current parameter values to be saved on a file in',/,
+     +' such a format that they can be read in again as Minuit',/,
+     +' parameter definitions. If the covariance matrix exists, it is',/
+     +,' also output in such a format. The unit number is by default 7,'
+     +,/,' or that specified by the user in his call to MINTIO or',/,
+     +' MNINIT. The user is responsible for opening the file previous'
+     +,/,' to issuing the [SAVe] command (except where this can be done'
+     +,/,' interactively).')
+*__________________________________________________________________
+*--
+*--  Command SCAN
+*--  ============
+*.
+      IF(CMD3.EQ.'SCA')THEN
+         WRITE(LOUT,11600)
+         GO TO 99
+      ENDIF
+11600 FORMAT(' ***>SCAn  [parno]  [numpts] [from]  [to]',/,
+     +' Scans the value of the user function by varying parameter',/,
+     +' number [parno], leaving all other parameters fixed at the',/,
+     +' current value. If [parno] is not specified, all variable',/,
+     +' parameters are scanned in sequence.',/,
+     +' The number of points [numpts] in the scan is 40 by default,',/,
+     +' and cannot exceed 100. The range of the scan is by default',/,
+     +' 2 standard deviations on each side of the current best value,',
+     +/,' but can be specified as from [from] to [to].',/,
+     +' After each scan, if a new minimum is found, the best parameter'
+     +,/,' values are retained as start values for future scans or',/,
+     +' minimizations. The curve resulting from each scan is plotted',/
+     +,' on the output unit in order to show the approximate behaviour'
+     +,/,' of the function.',/,
+     +' This command is not intended for minimization, but is sometimes'
+     +,/,' useful for debugging the user function or finding a',/,
+     +' reasonable starting point.')
+*__________________________________________________________________
+*--
+*--  Command SEEK
+*--  ============
+*.
+      IF(CMD3.EQ.'SEE')THEN
+         WRITE(LOUT,11700)
+         GO TO 99
+      ENDIF
+11700 FORMAT(' ***>SEEk  [maxcalls]  [devs]',/,
+     +' Causes a Monte Carlo minimization of the function, by choosing',
+     +/,' random values of the variable parameters, chosen uniformly',/,
+     +' over a hypercube centered at the current best value.',/,
+     +' The region size is by default 3 standard deviations on each',/,
+     +' side, but can be changed by specifying the value of [devs].')
+*__________________________________________________________________
+*--
+*--  Command SET
+*--  ===========
+*.
+      IF(CMD3.EQ.'SET')THEN
+         WRITE(LOUT,11800)
+         WRITE(LOUT,11801)
+         WRITE(LOUT,11802)
+         WRITE(LOUT,11803)
+         WRITE(LOUT,11804)
+         WRITE(LOUT,11805)
+         WRITE(LOUT,11806)
+         WRITE(LOUT,11807)
+         WRITE(LOUT,11808)
+         WRITE(LOUT,11809)
+         WRITE(LOUT,11810)
+         WRITE(LOUT,11811)
+         WRITE(LOUT,11812)
+         WRITE(LOUT,11813)
+         WRITE(LOUT,11814)
+         WRITE(LOUT,11815)
+         WRITE(LOUT,11816)
+         WRITE(LOUT,11817)
+         GO TO 99
+      ENDIF
+11800 FORMAT(' ***>SET <option_name>',/,/,
+     +'  SET BATch',/,
+     +'    Informs Minuit that it is running in batch mode.',//,
+
+     +'  SET EPSmachine  <accuracy>',/,
+     +'    Informs Minuit that the relative floating point arithmetic',/
+     +'    precision is <accuracy>. Minuit determines the nominal',/,
+     +'    precision itself, but the SET EPSmachine command can be',/,
+     +'    used to override Minuit own determination, when the user',/,
+     +'    knows that the FCN function value is not calculated to',/,
+     +'    the nominal machine accuracy. Typical values of <accuracy>',/
+     +'    are between 10**-5 and 10**-14.')
+
+11801 FORMAT(/,'  SET ERRordef  <up>',/,
+     +'    Sets the value of UP (default value= 1.), defining parameter'
+     +,/,'    errors. Minuit defines parameter errors as the change',/,
+     +'    in parameter value required to change the function value',/,
+     +'    by UP. Normally, for chisquared fits UP=1, and for negative'
+     +,/,'    log likelihood, UP=0.5.')
+
+11802 FORMAT(/,'   SET GRAdient  [force]',/,
+     +'    Informs Minuit that the user function is prepared to',/,
+     +'    calculate its own first derivatives and return their values'
+     +,/,'    in the array GRAD when IFLAG=2 (see specs of FCN).',/,
+     +'    If [force] is not specified, Minuit will calculate',/,
+     +'    the FCN derivatives by finite differences at the current',/,
+     +'    point and compare with the user calculation at that point,'
+     +,/,'    accepting the user values only if they agree.',/,
+     +'    If [force]=1, Minuit does not do its own derivative',/,
+     +'    calculation, and uses the derivatives calculated in FCN.')
+
+11803 FORMAT(/,'   SET INPut  [unitno]  [filename]',/,
+     +'    Causes Minuit, in data-driven mode only, to read subsequent',
+     +/,'    commands (or parameter definitions) from a different input'
+     +,/,'    file. If no [unitno] is specified, reading reverts to the'
+     +,/,'    previous input file, assuming that there was one.',/,
+     +'    If [unitno] is specified, and that unit has not been opened,'
+     +,/,'    then Minuit attempts to open the file [filename]} if a',/,
+     +'    name is specified. If running in interactive mode and',/,
+     +'    [filename] is not specified and [unitno] is not opened,',/,
+     +'    Minuit prompts the user to enter a file name.',/,
+     +'    If the word REWIND is added to the command (note:no blanks',/
+     +'    between INPUT and REWIND), the file is rewound before',/,
+     +'    reading. Note that this command is implemented in standard',/
+     +'    Fortran 77 and the results may depend on the  system;',/,
+     +'    for example, if a filename is given under VM/CMS, it must',/,
+     +'    be preceeded by a slash.')
+
+11804 FORMAT(/,'   SET INTeractive',/,
+     +'    Informs Minuit that it is running interactively.')
+
+11805 FORMAT(/,'   SET LIMits  [parno]  [lolim]  [uplim]',/,
+     +'    Allows the user to change the limits on one or all',/,
+     +'    parameters. If no arguments are specified, all limits are',/,
+     +'    removed from all parameters. If [parno] alone is specified,',
+     +/,'    limits are removed from parameter [parno].',/,
+     +'    If all arguments are specified, then parameter [parno] will',
+     +/,'    be bounded between [lolim] and [uplim].',/,
+     +'    Limits can be specified in either order, Minuit will take',/,
+     +'    the smaller as [lolim] and the larger as [uplim].',/,
+     +'    However, if [lolim] is equal to [uplim], an error condition',
+     +/,'    results.')
+
+11806 FORMAT(/,'   SET LINesperpage',/,
+     +'     Sets the number of lines for one page of output.',/,
+     +'     Default value is 24 for interactive mode')
+
+11807 FORMAT(/,'   SET NOGradient',/,
+     +'    The inverse of SET GRAdient, instructs Minuit not to',
+     +/,'    use the first derivatives calculated by the user in FCN.')
+
+11808 FORMAT(/,'   SET NOWarnings',/,
+     +'    Supresses Minuit warning messages.')
+
+11809 FORMAT(/,'   SET OUTputfile  <unitno>',/,
+     +'    Instructs Minuit to write further output to unit <unitno>.')
+
+11810 FORMAT(/,'   SET PAGethrow  <integer>',/,
+     +'    Sets the carriage control character for ``new page'' to',/,
+     +'    <integer>. Thus the value 1 produces a new page, and 0',/,
+     +'    produces a blank line, on some devices (see TOPofpage)')
+
+
+11811 FORMAT(/,'   SET PARameter  <parno>  <value>',/,
+     +'    Sets the value of parameter <parno> to <value>.',/,
+     +'    The parameter in question may be variable, fixed, or',/,
+     +'    constant, but must be defined.')
+
+11812 FORMAT(/,'   SET PRIntout  <level>',/,
+     +'    Sets the print level, determining how much output will be',/,
+     +'    produced. Allowed values and their meanings are displayed',/,
+     +'    after a SHOw PRInt command, and are currently <level>=:',/,
+     +'      [-1]  no output except from SHOW commands',/,
+     +'       [0]  minimum output',/,
+     +'       [1]  default value, normal output',/,
+     +'       [2]  additional output giving intermediate results.',/,
+     +'       [3]  maximum output, showing progress of minimizations.',/
+     +'    Note: See also the SET WARnings command.')
+
+11813 FORMAT(/,'   SET RANdomgenerator  <seed>',/,
+     +'    Sets the seed of the random number generator used in SEEk.',/
+     +'    This can be any integer between 10000 and 900000000, for',/,
+     +'    example one which was output from a SHOw RANdom command of',/
+     +'    a previous run.')
+
+11814 FORMAT(/,'   SET STRategy  <level>',/,
+     +'    Sets the strategy to be used in calculating first and second'
+     +,/,'    derivatives and in certain minimization methods.',/,
+     +'    In general, low values of <level> mean fewer function calls',
+     +/,'    and high values mean more reliable minimization.',/,
+     +'    Currently allowed values are 0, 1 (default), and 2.')
+
+11815 FORMAT(/,'   SET TITle',/,
+     +'    Informs Minuit that the next input line is to be considered',
+     +/,'    the (new) title for this task or sub-task.  This is for',/,
+     +'    the convenience of the user in reading his output.')
+
+11816 FORMAT(/,'   SET WARnings',/,
+     +'    Instructs Minuit to output warning messages when suspicious',
+     +/,'    conditions arise which may indicate unreliable results.',/
+     +'    This is the default.')
+
+11817 FORMAT(/,'    SET WIDthpage',/,
+     +'    Informs Minuit of the output page width.',/,
+     +'    Default values are 80 for interactive jobs')
+*__________________________________________________________________
+*--
+*--  Command SHOW
+*--  ============
+*.
+      IF(CMD3.EQ.'SHO')THEN
+         WRITE(LOUT,11900)
+         WRITE(LOUT,11901)
+         WRITE(LOUT,11902)
+         WRITE(LOUT,11903)
+         WRITE(LOUT,11904)
+         GO TO 99
+      ENDIF
+11900 FORMAT(' ***>SHOw  <option_name>',/,
+     +'  All SET XXXX commands have a corresponding SHOw XXXX command.',
+     +/,'  In addition, the SHOw commands listed starting here have no',
+     +/,'  corresponding SET command for obvious reasons.')
+
+11901 FORMAT(/,'   SHOw CORrelations',/,
+     +'    Calculates and prints the parameter correlations from the',/,
+     +'    error matrix.')
+
+11902 FORMAT(/,'   SHOw COVariance',/,
+     +'    Prints the (external) covariance (error) matrix.')
+
+11903 FORMAT(/,'   SHOw EIGenvalues',/,
+     +'    Calculates and prints the eigenvalues of the covariance',/,
+     +'    matrix.')
+
+11904 FORMAT(/,'   SHOw FCNvalue',/,
+     +'    Prints the current value of FCN.')
+*__________________________________________________________________
+*--
+*--  Command SIMPLEX
+*--  ===============
+*.
+      IF(CMD3.EQ.'SIM')THEN
+         WRITE(LOUT,12000)
+         GO TO 99
+      ENDIF
+12000 FORMAT(' ***>SIMplex  [maxcalls]  [tolerance]',/,
+     +' Performs a function minimization using the simplex method of',/
+     +' Nelder and Mead. Minimization terminates either when the',/,
+     +' function has been called (approximately) [maxcalls] times,',/,
+     +' or when the estimated vertical distance to minimum (EDM) is',/,
+     +' less than [tolerance].',/,
+     +' The default value of [tolerance] is 0.1*UP(see SET ERRordef).')
+*__________________________________________________________________
+*--
+*--  Command STANDARD
+*--  ================
+*.
+      IF(CMD3.EQ.'STA')THEN
+         WRITE(LOUT,12100)
+         GO TO 99
+      ENDIF
+12100 FORMAT(' ***>STAndard',/,
+     +' Causes Minuit to execute the Fortran instruction CALL STAND',/,
+     +' where STAND is a subroutine supplied by the user.')
+*__________________________________________________________________
+*--
+*--  Command STOP
+*--  ============
+*.
+      IF(CMD3.EQ.'STO')THEN
+         WRITE(LOUT,12200)
+         GO TO 99
+      ENDIF
+12200 FORMAT(' ***>STOP',/,
+     +' Same as EXIT.')
+*__________________________________________________________________
+*--
+*--  Command TOPOFPAGE
+*--  =================
+*.
+      IF(CMD3.EQ.'TOP')THEN
+         WRITE(LOUT,12300)
+         GO TO 99
+      ENDIF
+12300 FORMAT(' ***>TOPofpage',/,
+     +' Causes Minuit to write the character specified in a',/,
+     +' SET PAGethrow command (default = 1) to column 1 of the output'
+     +,/,' file, which may or may not position your output medium to',
+     +/,' the top of a page depending on the device and system.')
+*__________________________________________________________________
+*
+      WRITE(LOUT,13000)
+13000 FORMAT(' Unknown MINUIT command. Type HELP for list of commands.')
+*
+  99  RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnhes1.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnhes1.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnhes1.F	(revision 2403)
@@ -0,0 +1,78 @@
+*
+* $Id: mnhes1.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNHES1(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC      Called from MNHESS and MNGRAD
+CC      Calculate first derivatives (GRD) and uncertainties (DGRD)
+CC         and appropriate step sizes GSTEP
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      LOGICAL LDEBUG
+      CHARACTER CBF1*22
+      LDEBUG = (IDBG(5) .GE. 1)
+      IF (ISTRAT .LE. 0) NCYC = 1
+      IF (ISTRAT .EQ. 1) NCYC = 2
+      IF (ISTRAT .GT. 1) NCYC = 6
+      IDRV = 1
+      NPARX = NPAR
+      DFMIN = 4.*EPSMA2*(ABS(AMIN)+UP)
+C                                     main loop over parameters
+      DO 100 I= 1, NPAR
+      XTF = X(I)
+      DMIN = 4.*EPSMA2*ABS(XTF)
+      EPSPRI = EPSMA2 + ABS(GRD(I)*EPSMA2)
+      OPTSTP = SQRT(DFMIN/(ABS(G2(I))+EPSPRI))
+      D = 0.2 * ABS(GSTEP(I))
+      IF (D .GT. OPTSTP)  D = OPTSTP
+      IF (D .LT. DMIN)  D = DMIN
+      CHGOLD = 10000.
+C                                       iterate reducing step size
+      DO 50 ICYC= 1, NCYC
+      X(I) = XTF + D
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+      NFCN = NFCN + 1
+      X(I) = XTF - D
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FS2,U,4,FUTIL)
+      NFCN = NFCN + 1
+      X(I) = XTF
+C                                       check if step sizes appropriate
+      SAG = 0.5*(FS1+FS2-2.0*AMIN)
+      GRDOLD = GRD(I)
+      GRDNEW = (FS1-FS2)/(2.0*D)
+      DGMIN = EPSMAC*(ABS(FS1)+ABS(FS2))/D
+      IF (LDEBUG) WRITE (ISYSWR,11) I,IDRV,GSTEP(I),D,G2(I),GRDNEW,SAG
+   11 FORMAT (I4,I2,6G12.5)
+      IF (GRDNEW .EQ. ZERO)  GO TO 60
+      CHANGE = ABS((GRDOLD-GRDNEW)/GRDNEW)
+      IF (CHANGE.GT.CHGOLD .AND. ICYC.GT.1)  GO TO 60
+      CHGOLD = CHANGE
+      GRD(I) = GRDNEW
+      GSTEP(I) = SIGN(D,GSTEP(I))
+C                  decrease step until first derivative changes by <5%
+      IF (CHANGE .LT. 0.05) GO TO 60
+      IF (ABS(GRDOLD-GRDNEW) .LT. DGMIN)  GO TO 60
+      IF (D .LT. DMIN)  THEN
+         CALL MNWARN('D','MNHES1','Step size too small for 1st drv.')
+         GO TO 60
+      ENDIF
+      D = 0.2*D
+   50 CONTINUE
+C                                       loop satisfied = too many iter
+      WRITE (CBF1,'(2G11.3)') GRDOLD,GRDNEW
+      CALL MNWARN('D','MNHES1','Too many iterations on D1.'//CBF1)
+   60 CONTINUE
+      DGRD(I) = MAX(DGMIN,ABS(GRDOLD-GRDNEW))
+  100 CONTINUE
+C                                        end of first deriv. loop
+      CALL MNINEX(X)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnhess.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnhess.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnhess.F	(revision 2403)
@@ -0,0 +1,223 @@
+*
+* $Id: mnhess.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNHESS(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Calculates the full second-derivative matrix of FCN
+CC        by taking finite differences. When calculating diagonal
+CC        elements, it may iterate so that step size is nearly that
+CC        which gives function change= UP/10. The first derivatives
+CC        of course come as a free side effect, but with a smaller
+CC        step size in order to obtain a known accuracy.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION YY(MNI)
+      LOGICAL LDEBUG
+      CHARACTER CBF1*22
+C
+      LDEBUG = (IDBG(3) .GE. 1)
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      IF (ISTRAT .LE. 0) THEN
+         NCYC = 3
+         TLRSTP = 0.5
+         TLRG2  = 0.1
+      ELSE IF (ISTRAT .EQ. 1) THEN
+         NCYC = 5
+         TLRSTP = 0.3
+         TLRG2  = 0.05
+      ELSE
+         NCYC = 7
+         TLRSTP = 0.1
+         TLRG2  = 0.02
+      ENDIF
+      IF (ISW(5).GE.2 .OR. LDEBUG)  WRITE (ISYSWR,'(A)')
+     +   '   START COVARIANCE MATRIX CALCULATION.'
+      CFROM = 'HESSE   '
+      NFCNFR = NFCN
+      CSTATU= 'OK        '
+      NPARD = NPAR
+C                 make sure starting at the right place
+      CALL MNINEX(X)
+      NPARX = NPAR
+      CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+      NFCN = NFCN + 1
+      IF (FS1 .NE. AMIN) THEN
+         DF = AMIN - FS1
+         WRITE (CBF1(1:12),'(G12.3)') DF
+         CALL MNWARN('D','MNHESS',
+     +       'function value differs from AMIN by '//CBF1(1:12) )
+      ENDIF
+      AMIN = FS1
+      IF (LDEBUG) WRITE (ISYSWR,'(A,A)') ' PAR D   GSTEP          ',
+     +' D          G2         GRD         SAG    '
+C                                        . . . . . . diagonal elements .
+C         ISW(2) = 1 if approx, 2 if not posdef, 3 if ok
+C         AIMSAG is the sagitta we are aiming for in second deriv calc.
+      AIMSAG = SQRT(EPSMA2)*(ABS(AMIN)+UP)
+C         Zero the second derivative matrix
+      NPAR2 = NPAR*(NPAR+1)/2
+      DO 10 I= 1,NPAR2
+   10 VHMAT(I) = 0.
+C
+C         Loop over variable parameters for second derivatives
+      IDRV = 2
+      DO 100 ID= 1, NPARD
+      I = ID + NPAR - NPARD
+      IEXT = NEXOFI(I)
+      IF (G2(I) .EQ. ZERO) THEN
+           WRITE (CBF1(1:4),'(I4)') IEXT
+           CALL MNWARN('W','HESSE',
+     +      'Second derivative enters zero, param '//CBF1(1:4) )
+        WINT = WERR(I)
+        IF (NVARL(IEXT) .GT. 1) THEN
+           CALL MNDXDI(X(I),I,DXDI)
+           IF (ABS(DXDI) .LT. .001) THEN
+              WINT = .01
+           ELSE
+              WINT = WINT/ABS(DXDI)
+           ENDIF
+        ENDIF
+        G2(I) = UP/WINT**2
+      ENDIF
+      XTF = X(I)
+      DMIN = 8.*EPSMA2*ABS(XTF)
+C
+C                               find step which gives sagitta = AIMSAG
+      D = ABS(GSTEP(I))
+      DO 40 ICYC= 1, NCYC
+C                               loop here only if SAG=0.
+      DO 25 MULTPY= 1, 5
+C           take two steps
+         X(I) = XTF + D
+         CALL MNINEX(X)
+         NPARX = NPAR
+         CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+         NFCN = NFCN + 1
+         X(I) = XTF - D
+         CALL MNINEX(X)
+         CALL FCN(NPARX,GIN,FS2,U,4,FUTIL)
+         NFCN = NFCN + 1
+         X(I) = XTF
+         SAG = 0.5*(FS1+FS2-2.0*AMIN)
+         IF (SAG .NE. ZERO) GO TO 30
+         IF (GSTEP(I) .LT. ZERO) THEN
+           IF (D .GE. .5)  GO TO 26
+           D = 10.*D
+           IF (D .GT. 0.5)  D = 0.51
+           GO TO 25
+         ENDIF
+         D = 10.*D
+   25 CONTINUE
+   26      WRITE (CBF1(1:4),'(I4)') IEXT
+           CALL MNWARN('W','HESSE',
+     +      'Second derivative zero for parameter'//CBF1(1:4) )
+           GO TO 390
+C                             SAG is not zero
+   30 G2BFOR = G2(I)
+      G2(I) = 2.*SAG/D**2
+      GRD(I) = (FS1-FS2)/(2.*D)
+      IF (LDEBUG) WRITE (ISYSWR,31) I,IDRV,GSTEP(I),D,G2(I),GRD(I),SAG
+   31 FORMAT (I4,I2,6G12.5)
+      GSTEP(I) = SIGN(D,GSTEP(I))
+      DIRIN(I) = D
+      YY(I) = FS1
+      DLAST = D
+      D = SQRT(2.0*AIMSAG/ABS(G2(I)))
+C         if parameter has limits, max int step size = 0.5
+      STPINM = 0.5
+      IF (GSTEP(I) .LT. ZERO)  D = MIN(D,STPINM)
+      IF (D .LT. DMIN)  D = DMIN
+C           see if converged
+      IF (ABS((D-DLAST)/D)          .LT. TLRSTP)  GO TO 50
+      IF (ABS((G2(I)-G2BFOR)/G2(I)) .LT. TLRG2 )  GO TO 50
+      D = MIN(D, 10.*DLAST)
+      D = MAX(D, 0.1*DLAST)
+   40 CONTINUE
+C                       end of step size loop
+      WRITE (CBF1,'(I2,2E10.2)') IEXT,SAG,AIMSAG
+      CALL MNWARN('D','MNHESS','Second Deriv. SAG,AIM= '//CBF1)
+C
+   50 CONTINUE
+      NDEX = I*(I+1)/2
+      VHMAT(NDEX) = G2(I)
+  100 CONTINUE
+C                              end of diagonal second derivative loop
+      CALL MNINEX(X)
+C                                     refine the first derivatives
+      IF (ISTRAT .GT. 0) CALL MNHES1(FCN,FUTIL)
+      ISW(2) = 3
+      DCOVAR = 0.
+C                                        . . . .  off-diagonal elements
+      IF (NPAR .EQ. 1)  GO TO 214
+      DO 200 I= 1, NPAR
+      DO 180 J= 1, I-1
+      XTI = X(I)
+      XTJ = X(J)
+      X(I) = XTI + DIRIN(I)
+      X(J) = XTJ + DIRIN(J)
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FS1,U,4,FUTIL)
+      NFCN = NFCN + 1
+      X(I) = XTI
+      X(J) = XTJ
+      ELEM = (FS1+AMIN-YY(I)-YY(J)) / (DIRIN(I)*DIRIN(J))
+      NDEX = I*(I-1)/2 + J
+      VHMAT(NDEX) = ELEM
+  180 CONTINUE
+  200 CONTINUE
+  214 CALL MNINEX(X)
+C                  verify matrix positive-definite
+      CALL MNPSDF
+      DO 220 I= 1, NPAR
+      DO 219 J= 1, I
+      NDEX = I*(I-1)/2 + J
+      P(I,J) = VHMAT(NDEX)
+  219 P(J,I) = P(I,J)
+  220 CONTINUE
+      CALL MNVERT(P,MAXINT,MAXINT,NPAR,IFAIL)
+      IF (IFAIL .GT. 0)  THEN
+        CALL MNWARN('W','HESSE', 'Matrix inversion fails.')
+        GO TO 390
+      ENDIF
+C                                        . . . . . . .  calculate  e d m
+      EDM = 0.
+        DO 230 I= 1, NPAR
+C                              off-diagonal elements
+        NDEX = I*(I-1)/2
+          DO 225 J= 1, I-1
+          NDEX = NDEX + 1
+          ZTEMP = 2.0 * P(I,J)
+          EDM = EDM + GRD(I)*ZTEMP*GRD(J)
+  225     VHMAT(NDEX) = ZTEMP
+C                              diagonal elements
+        NDEX = NDEX + 1
+        VHMAT(NDEX) = 2.0 * P(I,I)
+        EDM = EDM  + P(I,I) * GRD(I)**2
+  230   CONTINUE
+      IF (ISW(5).GE.1 .AND. ISW(2).EQ.3 .AND. ITAUR.EQ.0)
+     + WRITE(ISYSWR,'(A)')' COVARIANCE MATRIX CALCULATED SUCCESSFULLY'
+      GO TO 900
+C                              failure to invert 2nd deriv matrix
+  390 ISW(2) = 1
+      DCOVAR = 1.
+      CSTATU = 'FAILED    '
+      IF (ISW(5) .GE. 0) WRITE (ISYSWR,'(A)')
+     +        '  MNHESS FAILS AND WILL RETURN DIAGONAL MATRIX. '
+      DO 395 I= 1, NPAR
+      NDEX = I*(I-1)/2
+      DO 394 J= 1, I-1
+      NDEX = NDEX + 1
+  394 VHMAT(NDEX) = 0.0
+      NDEX = NDEX +1
+      G2I = G2(I)
+      IF (G2I .LE. ZERO)  G2I = 1.0
+  395 VHMAT(NDEX) = 2.0/G2I
+  900 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnimpr.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnimpr.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnimpr.F	(revision 2403)
@@ -0,0 +1,190 @@
+*
+* $Id: mnimpr.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNIMPR(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Attempts to improve on a good local minimum by finding a
+CC        better one.   The quadratic part of FCN is removed by MNCALF
+CC        and this transformed function is minimized using the simplex
+CC        method from several random starting points.
+CC        ref. -- Goldstein and Price, Math.Comp. 25, 569 (1971)
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION DSAV(MNI), Y(MNI+1)
+      PARAMETER (ALPHA=1.,BETA=0.5,GAMMA=2.0)
+      DATA RNUM/0./
+      IF (NPAR .LE. 0)  RETURN
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      CSTATU = 'UNCHANGED '
+      ITAUR = 1
+      EPSI = 0.1*UP
+      NPFN=NFCN
+      NLOOP = WORD7(2)
+      IF (NLOOP .LE. 0)  NLOOP = NPAR + 4
+      NPARX = NPAR
+      NPARP1=NPAR+1
+      WG = 1.0/FLOAT(NPAR)
+      SIGSAV = EDM
+      APSI = AMIN
+         DO 2 I= 1, NPAR
+         XT(I) = X(I)
+         DSAV(I) = WERR(I)
+           DO 2 J = 1, I
+           NDEX = I*(I-1)/2 + J
+           P(I,J) = VHMAT(NDEX)
+    2      P(J,I) = P(I,J)
+      CALL MNVERT(P,MAXINT,MAXINT,NPAR,IFAIL)
+      IF (IFAIL .GE. 1)  GO TO 280
+C               Save inverted matrix in VT
+         DO 12 I= 1, NPAR
+         NDEX = I*(I-1)/2
+           DO 12 J= 1, I
+           NDEX = NDEX + 1
+   12      VTHMAT(NDEX) = P(I,J)
+      LOOP = 0
+C
+   20 CONTINUE
+         DO 25 I= 1, NPAR
+         DIRIN(I) = 2.0*DSAV(I)
+         CALL MNRN15(RNUM,ISEED)
+   25    X(I) = XT(I) + 2.0*DIRIN(I)*(RNUM-0.5)
+      LOOP = LOOP + 1
+      REG = 2.0
+      IF (ISW(5) .GE. 0)   WRITE (ISYSWR, 1040) LOOP
+   30 CALL  MNCALF(FCN,X,YCALF,FUTIL)
+      AMIN = YCALF
+C                                        . . . . set up  random simplex
+      JL = NPARP1
+      JH = NPARP1
+      Y(NPARP1) = AMIN
+      AMAX = AMIN
+         DO 45 I= 1, NPAR
+         XI = X(I)
+         CALL MNRN15(RNUM,ISEED)
+         X(I) = XI - DIRIN(I) *(RNUM-0.5)
+         CALL MNCALF(FCN,X,YCALF,FUTIL)
+         Y(I) = YCALF
+         IF (Y(I) .LT. AMIN)  THEN
+            AMIN = Y(I)
+            JL = I
+         ELSE IF (Y(I) .GT. AMAX)  THEN
+            AMAX = Y(I)
+            JH = I
+         ENDIF
+            DO 40 J= 1, NPAR
+   40       P(J,I) = X(J)
+         P(I,NPARP1) = XI
+         X(I) = XI
+   45    CONTINUE
+C
+      EDM = AMIN
+      SIG2 = EDM
+C                                        . . . . . . .  start main loop
+   50 CONTINUE
+      IF (AMIN .LT. ZERO)  GO TO 95
+      IF (ISW(2) .LE. 2)  GO TO 280
+      EP = 0.1*AMIN
+      IF (SIG2 .LT. EP   .AND. EDM.LT.EP  )     GO TO 100
+      SIG2 = EDM
+      IF ((NFCN-NPFN) .GT. NFCNMX)  GO TO 300
+C         calculate new point * by reflection
+      DO 60 I= 1, NPAR
+      PB = 0.
+      DO 59 J= 1, NPARP1
+   59 PB = PB + WG * P(I,J)
+      PBAR(I) = PB - WG * P(I,JH)
+   60 PSTAR(I)=(1.+ALPHA)*PBAR(I)-ALPHA*P(I,JH)
+      CALL MNCALF(FCN,PSTAR,YCALF,FUTIL)
+      YSTAR = YCALF
+      IF(YSTAR.GE.AMIN) GO TO 70
+C         point * better than jl, calculate new point **
+      DO 61 I=1,NPAR
+   61 PSTST(I)=GAMMA*PSTAR(I)+(1.-GAMMA)*PBAR(I)
+      CALL MNCALF(FCN,PSTST,YCALF,FUTIL)
+      YSTST = YCALF
+   66 IF (YSTST .LT. Y(JL))  GO TO 67
+      CALL MNRAZZ(YSTAR,PSTAR,Y,JH,JL)
+      GO TO 50
+   67 CALL MNRAZZ(YSTST,PSTST,Y,JH,JL)
+      GO TO 50
+C         point * is not as good as jl
+   70 IF (YSTAR .GE. Y(JH))  GO TO 73
+      JHOLD = JH
+      CALL MNRAZZ(YSTAR,PSTAR,Y,JH,JL)
+      IF (JHOLD .NE. JH)  GO TO 50
+C         calculate new point **
+   73 DO 74 I=1,NPAR
+   74 PSTST(I)=BETA*P(I,JH)+(1.-BETA)*PBAR(I)
+      CALL MNCALF(FCN,PSTST,YCALF,FUTIL)
+      YSTST = YCALF
+      IF(YSTST.GT.Y(JH)) GO TO 30
+C     point ** is better than jh
+      IF (YSTST .LT. AMIN)  GO TO 67
+      CALL MNRAZZ(YSTST,PSTST,Y,JH,JL)
+      GO TO 50
+C                                        . . . . . .  end main loop
+   95 IF (ISW(5) .GE. 0)  WRITE (ISYSWR,1000)
+      REG = 0.1
+C                                        . . . . . ask if point is new
+  100 CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,AMIN,U,4,FUTIL)
+      NFCN = NFCN + 1
+      DO 120 I= 1, NPAR
+      DIRIN(I) = REG*DSAV(I)
+      IF (ABS(X(I)-XT(I)) .GT. DIRIN(I)) GO TO 150
+  120 CONTINUE
+      GO TO 230
+  150 NFCNMX = NFCNMX + NPFN - NFCN
+      NPFN = NFCN
+      CALL MNSIMP(FCN,FUTIL)
+      IF (AMIN .GE. APSI)  GO TO 325
+      DO 220 I= 1, NPAR
+      DIRIN(I) = 0.1 *DSAV(I)
+      IF (ABS(X(I)-XT(I)) .GT. DIRIN(I)) GO TO 250
+  220 CONTINUE
+  230 IF (AMIN .LT. APSI)  GO TO 350
+      GO TO 325
+C                                        . . . . . . truly new minimum
+  250 LNEWMN = .TRUE.
+      IF (ISW(2) .GE. 1) THEN
+          ISW(2) = 1
+          DCOVAR = MAX(DCOVAR,HALF)
+      ELSE
+          DCOVAR = 1.
+      ENDIF
+      ITAUR = 0
+      NFCNMX = NFCNMX + NPFN - NFCN
+      CSTATU = 'NEW MINIMU'
+      IF (ISW(5) .GE. 0)      WRITE (ISYSWR,1030)
+      RETURN
+C                                        . . . return to previous region
+  280 IF (ISW(5) .GT. 0) WRITE (ISYSWR,1020)
+      GO TO 325
+  300 ISW(1) = 1
+  325 DO 330 I= 1, NPAR
+      DIRIN(I) = 0.01*DSAV(I)
+  330 X(I) = XT(I)
+      AMIN = APSI
+      EDM = SIGSAV
+  350 CALL MNINEX(X)
+      IF (ISW(5) .GT. 0)    WRITE (ISYSWR,1010)
+      CSTATU= 'UNCHANGED '
+      CALL MNRSET(0)
+      IF (ISW(2) .LT. 2)  GO TO 380
+      IF (LOOP .LT. NLOOP .AND. ISW(1) .LT. 1)  GO TO 20
+  380 CALL MNPRIN (5,AMIN)
+      ITAUR = 0
+      RETURN
+ 1000 FORMAT (54H AN IMPROVEMENT ON THE PREVIOUS MINIMUM HAS BEEN FOUND)
+ 1010 FORMAT (51H IMPROVE HAS RETURNED TO REGION OF ORIGINAL MINIMUM)
+ 1020 FORMAT (/44H COVARIANCE MATRIX WAS NOT POSITIVE-DEFINITE)
+ 1030 FORMAT (/38H IMPROVE HAS FOUND A TRULY NEW MINIMUM/1H ,37(1H*)/)
+ 1040 FORMAT (/18H START ATTEMPT NO.,I2,  20H TO FIND NEW MINIMUM)
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mninex.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mninex.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mninex.F	(revision 2403)
@@ -0,0 +1,26 @@
+*
+* $Id: mninex.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNINEX(PINT)
+#include "minuit/d506dp.inc"
+CC        Transforms from internal coordinates (PINT) to external
+CC        parameters (U).   The minimizing routines which work in
+CC        internal coordinates call this routine before calling FCN.
+#include "minuit/d506cm.inc"
+      DIMENSION PINT(*)
+      DO 100 J= 1, NPAR
+      I = NEXOFI(J)
+      IF (NVARL(I) .EQ. 1) THEN
+         U(I) = PINT(J)
+      ELSE
+         U(I) = ALIM(I) + 0.5*(SIN(PINT(J)) +1.0) * (BLIM(I)-ALIM(I))
+      ENDIF
+  100 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mninit.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mninit.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mninit.F	(revision 2403)
@@ -0,0 +1,125 @@
+*
+* $Id: mninit.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.4  1997/09/02 15:16:08  mclareni
+* WINNT corrections
+*
+* Revision 1.3  1997/03/14 17:18:00  mclareni
+* WNT mods
+*
+* Revision 1.2.2.1  1997/01/21 11:33:28  mclareni
+* All mods for Winnt 96a on winnt branch
+*
+* Revision 1.2  1996/03/15 18:02:47  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNINIT (I1,I2,I3)
+#include "minuit/d506dp.inc"
+CC        This is the main initialization subroutine for MINUIT
+CC     It initializes some constants in common
+CC                (including the logical I/O unit nos.),
+CC
+#include "minuit/d506cm.inc"
+C
+CCC_CMV      EXTERNAL INTRAC
+CCC_CMV      LOGICAL  INTRAC
+C            I/O unit numbers
+      ISYSRD = I1
+      ISYSWR = I2
+        ISTKWR(1) = ISYSWR
+        NSTKWR = 1
+      ISYSSA = I3
+      NSTKRD = 0
+C               version identifier
+      CVRSN = '96.03 '
+C               some CONSTANT constants in COMMON
+      MAXINT=MNI
+      MAXEXT=MNE
+      UNDEFI = -54321.
+      BIGEDM = 123456.
+      CUNDEF = ')UNDEFINED'
+      COVMES(0) = 'NO ERROR MATRIX       '
+      COVMES(1) = 'ERR MATRIX APPROXIMATE'
+      COVMES(2) = 'ERR MATRIX NOT POS-DEF'
+      COVMES(3) = 'ERROR MATRIX ACCURATE '
+C                some starting values in COMMON
+      NBLOCK = 0
+      ICOMND = 0
+      CTITL = CUNDEF
+      CFROM = 'INPUT   '
+      NFCNFR = NFCN
+      CSTATU= 'INITIALIZE'
+      ISW(3) = 0
+      ISW(4) = 0
+      ISW(5) = 1
+C         ISW(6)=0 for batch jobs,  =1 for interactive jobs
+C                      =-1 for originally interactive temporarily batch
+      ISW(6) = 0
+#ifndef CERNLIB_MSSTDCALL
+CCC_CMV      IF (INTRAC(DUMMY))  ISW(6) = 1
+#else
+CCC_CMV      IF (INTRAC())  ISW(6) = 1
+#endif
+C        DEBUG options set to default values
+      DO 10 IDB= 0, MAXDBG
+   10 IDBG(IDB) = 0
+      LREPOR = .FALSE.
+      LWARN  = .TRUE.
+      LIMSET = .FALSE.
+      LNEWMN = .FALSE.
+      ISTRAT = 1
+      ITAUR = 0
+C        default page dimensions and 'new page' carriage control integer
+      NPAGWD = 120
+      NPAGLN = 56
+      NEWPAG = 1
+      IF (ISW(6) .GT. 0) THEN
+         NPAGWD = 80
+         NPAGLN = 30
+         NEWPAG = 0
+      ENDIF
+      UP = 1.0
+      UPDFLT = UP
+C                   determine machine accuracy epsmac
+      EPSTRY = 0.5
+      DO 33 I= 1, 100
+      EPSTRY = EPSTRY * 0.5
+      EPSP1 = ONE + EPSTRY
+      CALL MNTINY(EPSP1, EPSBAK)
+      IF (EPSBAK .LT. EPSTRY)  GO TO 35
+   33 CONTINUE
+      EPSTRY = 1.0E-7
+      EPSMAC = 4.0*EPSTRY
+      WRITE (ISYSWR,'(A,A,E10.2)') ' MNINIT UNABLE TO DETERMINE',
+     + ' ARITHMETIC PRECISION. WILL ASSUME:',EPSMAC
+   35 EPSMAC = 8.0 * EPSTRY
+      EPSMA2 = 2.0 * SQRT(EPSMAC)
+C                 the vlims are a non-negligible distance from pi/2
+C         used by MNPINT to set variables "near" the physical limits
+      PIBY2 = 2.0*ATAN(1.0)
+      DISTNN = 8.0*SQRT(EPSMA2)
+      VLIMHI =  PIBY2 - DISTNN
+      VLIMLO = -PIBY2 + DISTNN
+      CALL MNCLER
+      WRITE (ISYSWR,'(3A,I3,A,I3,A,E10.2)')  '  MINUIT RELEASE ',CVRSN,
+     +' INITIALIZED.   DIMENSIONS ',MNE,'/',MNI,'  EPSMAC=',EPSMAC
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mninpu.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mninpu.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mninpu.F	(revision 2403)
@@ -0,0 +1,44 @@
+*
+* $Id: mninpu.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNINPU(IUNIT,IERR)
+#include "minuit/d506dp.inc"
+CC      called by the user to SET INPUT to IUNIT,
+CC      an alternative to MNSTIN where the user can specify just
+CC      a logical unit number and he is not interrogated about
+CC      open files and rewinding, all that is the responsibility
+CC      of the user and cannot be fixed interactively.
+#include "minuit/d506cm.inc"
+C
+      IERR = 0
+C                              IUNIT = 0, revert to previous input file
+      IF (IUNIT .EQ. 0) THEN
+        IF (NSTKRD .EQ. 0)  THEN
+           WRITE (ISYSWR, '(A)') ' CALL TO MNINPU(0) IGNORED'
+           WRITE (ISYSWR, '(A)') ' ALREADY READING FROM PRIMARY INPUT'
+        ELSE
+          ISYSRD = ISTKRD(NSTKRD)
+          NSTKRD = NSTKRD - 1
+        ENDIF
+C
+C                               new input file
+      ELSE
+          IF (NSTKRD .GE. MAXSTK)  THEN
+          WRITE (ISYSWR, '(A)') ' INPUT FILE STACK SIZE EXCEEDED.'
+          GO TO 800
+          ENDIF
+        NSTKRD = NSTKRD + 1
+        ISTKRD(NSTKRD) = ISYSRD
+        ISYSRD = IUNIT
+      ENDIF
+C
+      RETURN
+  800 IERR = 1
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnintr.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnintr.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnintr.F	(revision 2403)
@@ -0,0 +1,22 @@
+*
+* $Id: mnintr.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNINTR(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC       Called by user. Interfaces to MNREAD to allow user to change
+CC       easily from Fortran-callable to interactive mode.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      IFLGIN = 3
+      CALL MNREAD(FCN,IFLGIN,IFLGUT,FUTIL)
+      WRITE (ISYSWR,'(2A/)')  ' END OF MINUIT COMMAND INPUT. ',
+     +      '   RETURN TO USER PROGRAM.'
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnlims.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnlims.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnlims.F	(revision 2403)
@@ -0,0 +1,125 @@
+*
+* $Id: mnlims.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:48  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNLIMS
+#include "minuit/d506dp.inc"
+CC       Called from MNSET
+CC       Interprets the SET LIM command, to reset the parameter limits
+CC
+#include "minuit/d506cm.inc"
+C
+      CFROM = 'SET LIM '
+      NFCNFR = NFCN
+      CSTATU= 'NO CHANGE '
+      I2 = WORD7(1)
+      IF (I2 .GT. MAXEXT .OR. I2 .LT. 0)  GO TO 900
+      IF (I2 .GT. 0)  GO TO 30
+C                                     set limits on all parameters
+      NEWCOD = 4
+      IF (WORD7(2) .EQ. WORD7(3))  NEWCOD = 1
+      DO 20 INU= 1, NU
+      IF (NVARL(INU) .LE. 0)  GO TO 20
+      IF (NVARL(INU).EQ.1 .AND. NEWCOD.EQ.1)  GO TO 20
+      KINT = NIOFEX(INU)
+C             see if parameter has been fixed
+      IF (KINT .LE. 0)  THEN
+         IF (ISW(5) .GE. 0)  WRITE (ISYSWR,'(11X,A,I3)')
+     +      ' LIMITS NOT CHANGED FOR FIXED PARAMETER:',INU
+         GO TO 20
+      ENDIF
+      IF (NEWCOD .EQ. 1)  THEN
+C            remove limits from parameter
+         IF (ISW(5) .GT. 0)     WRITE (ISYSWR,134)  INU
+         CSTATU = 'NEW LIMITS'
+         CALL MNDXDI(X(KINT),KINT,DXDI)
+         SNEW = GSTEP(KINT)*DXDI
+         GSTEP(KINT) = ABS(SNEW)
+         NVARL(INU) = 1
+      ELSE
+C             put limits on parameter
+         ALIM(INU) = MIN(WORD7(2),WORD7(3))
+         BLIM(INU) = MAX(WORD7(2),WORD7(3))
+         IF (ISW(5) .GT. 0) WRITE (ISYSWR,237)  INU,ALIM(INU),BLIM(INU)
+         NVARL(INU) = 4
+         CSTATU = 'NEW LIMITS'
+         GSTEP(KINT) = -0.1
+      ENDIF
+   20 CONTINUE
+      GO TO 900
+C                                       set limits on one parameter
+   30 IF (NVARL(I2) .LE. 0)  THEN
+        WRITE (ISYSWR,'(A,I3,A)') ' PARAMETER ',I2,' IS NOT VARIABLE.'
+        GO TO 900
+      ENDIF
+      KINT = NIOFEX(I2)
+C                                       see if parameter was fixed
+      IF (KINT .EQ. 0)  THEN
+         WRITE (ISYSWR,'(A,I3)')
+     +     ' REQUEST TO CHANGE LIMITS ON FIXED PARAMETER:',I2
+         DO 82 IFX= 1, NPFIX
+         IF (I2 .EQ. IPFIX(IFX)) GO TO 92
+   82    CONTINUE
+         WRITE (ISYSWR,'(A)') ' MINUIT BUG IN MNLIMS. SEE F. JAMES'
+   92    CONTINUE
+      ENDIF
+      IF (WORD7(2) .NE. WORD7(3))  GO TO 235
+C                                       remove limits
+      IF (NVARL(I2) .NE. 1)  THEN
+         IF (ISW(5) .GT. 0)  WRITE (ISYSWR,134)  I2
+  134    FORMAT (30H LIMITS REMOVED FROM PARAMETER  ,I4)
+         CSTATU = 'NEW LIMITS'
+         IF (KINT .LE. 0)  THEN
+            GSTEPS(IFX) = ABS(GSTEPS(IFX))
+         ELSE
+            CALL MNDXDI(X(KINT),KINT,DXDI)
+            IF (ABS(DXDI) .LT. 0.01)  DXDI=0.01
+            GSTEP(KINT) = ABS(GSTEP(KINT)*DXDI)
+            GRD(KINT) = GRD(KINT)*DXDI
+         ENDIF
+         NVARL(I2) = 1
+      ELSE
+         WRITE (ISYSWR,'(A,I3)') ' NO LIMITS SPECIFIED.  PARAMETER ',
+     +        I2,' IS ALREADY UNLIMITED.  NO CHANGE.'
+      ENDIF
+      GO TO 900
+C                                        put on limits
+  235 ALIM(I2) = MIN(WORD7(2),WORD7(3))
+      BLIM(I2) = MAX(WORD7(2),WORD7(3))
+      NVARL(I2) = 4
+      IF (ISW(5) .GT. 0)   WRITE (ISYSWR,237)  I2,ALIM(I2),BLIM(I2)
+  237 FORMAT (10H PARAMETER ,I3, 14H LIMITS SET TO  ,2G15.5)
+      CSTATU = 'NEW LIMITS'
+      IF (KINT .LE. 0)  THEN
+         GSTEPS(IFX) = -0.1
+      ELSE
+         GSTEP(KINT) = -0.1
+      ENDIF
+C
+  900 CONTINUE
+      IF (CSTATU .NE. 'NO CHANGE ')  THEN
+        CALL MNEXIN(X)
+        CALL MNRSET(1)
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnline.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnline.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnline.F	(revision 2403)
@@ -0,0 +1,223 @@
+*
+* $Id: mnline.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNLINE(FCN,START,FSTART,STEP,SLOPE,TOLER,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Perform a line search from position START
+CC        along direction STEP, where the length of vector STEP
+CC                   gives the expected position of minimum.
+CC        FSTART is value of function at START
+CC        SLOPE (if non-zero) is df/dx along STEP at START
+CC        TOLER is initial tolerance of minimum in direction STEP
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION START(*), STEP(*)
+      PARAMETER (MAXPT=12)
+      DIMENSION XPQ(MAXPT),YPQ(MAXPT)
+      CHARACTER*1 CHPQ(MAXPT)
+      DIMENSION XVALS(3),FVALS(3),COEFF(3)
+      CHARACTER*26 CHARAL
+      CHARACTER*60 CMESS
+      PARAMETER (SLAMBG=5.,ALPHA=2.)
+C SLAMBG and ALPHA control the maximum individual steps allowed.
+C The first step is always =1. The max length of second step is SLAMBG.
+C The max size of subsequent steps is the maximum previous successful
+C   step multiplied by ALPHA + the size of most recent successful step,
+C   but cannot be smaller than SLAMBG.
+      LOGICAL LDEBUG
+      DATA CHARAL / 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' /
+      LDEBUG = (IDBG(1).GE.1)
+C                  starting values for overall limits on total step SLAM
+      OVERAL = 1000.
+      UNDRAL = -100.
+C                              debug check if start is ok
+      IF (LDEBUG)  THEN
+         CALL MNINEX(START)
+         CALL FCN(NPARX,GIN,F1,U,4,FUTIL)
+         NFCN=NFCN+1
+         IF (F1 .NE. FSTART) THEN
+             WRITE (ISYSWR,'(A/2E14.5/2X,10F10.5)')
+     + ' MNLINE start point not consistent, F values, parameters=',
+     +  (X(KK),KK=1,NPAR)
+         ENDIF
+      ENDIF
+C                                      . set up linear search along STEP
+
+      FVMIN = FSTART
+      XVMIN = ZERO
+      NXYPT = 1
+      CHPQ(1) = CHARAL(1:1)
+      XPQ(1) = 0.
+      YPQ(1) = FSTART
+C               SLAMIN = smallest possible value of ABS(SLAM)
+      SLAMIN = ZERO
+      DO 20 I= 1, NPAR
+      IF (STEP(I) .EQ. ZERO)  GO TO 20
+      RATIO = ABS(START(I)/STEP(I))
+      IF (SLAMIN .EQ. ZERO)     SLAMIN = RATIO
+      IF (RATIO .LT. SLAMIN)  SLAMIN = RATIO
+   20 X(I) = START(I) + STEP(I)
+      IF (SLAMIN .EQ. ZERO)  SLAMIN = EPSMAC
+      SLAMIN = SLAMIN*EPSMA2
+      NPARX = NPAR
+C
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,F1,U,4,FUTIL)
+      NFCN=NFCN+1
+      NXYPT = NXYPT + 1
+      CHPQ(NXYPT) = CHARAL(NXYPT:NXYPT)
+      XPQ(NXYPT) = 1.
+      YPQ(NXYPT) = F1
+      IF (F1 .LT. FSTART) THEN
+         FVMIN = F1
+         XVMIN = 1.0
+      ENDIF
+C                         . quadr interp using slope GDEL and two points
+      SLAM = 1.
+      TOLER8 = TOLER
+      SLAMAX = SLAMBG
+      FLAST = F1
+C                         can iterate on two-points (cut) if no imprvmnt
+   25 CONTINUE
+      DENOM = 2.0*(FLAST-FSTART-SLOPE*SLAM)/SLAM**2
+C     IF (DENOM .EQ. ZERO)  DENOM = -0.1*SLOPE
+                            SLAM  = 1.
+      IF (DENOM .NE. ZERO)  SLAM = -SLOPE/DENOM
+      IF (SLAM  .LT. ZERO)  SLAM = SLAMAX
+      IF (SLAM .GT. SLAMAX)  SLAM = SLAMAX
+      IF (SLAM .LT. TOLER8)  SLAM = TOLER8
+      IF (SLAM .LT. SLAMIN)  GO TO 80
+      IF (ABS(SLAM-1.0).LT.TOLER8 .AND. F1.LT.FSTART)  GO TO 70
+      IF (ABS(SLAM-1.0).LT.TOLER8) SLAM = 1.0+TOLER8
+      IF (NXYPT .GE. MAXPT) GO TO 65
+      DO 30 I= 1, NPAR
+   30 X(I) = START(I) + SLAM*STEP(I)
+      CALL MNINEX(X)
+      CALL FCN(NPAR,GIN,F2,U,4,FUTIL)
+      NFCN = NFCN + 1
+      NXYPT = NXYPT + 1
+      CHPQ(NXYPT) = CHARAL(NXYPT:NXYPT)
+      XPQ(NXYPT) = SLAM
+      YPQ(NXYPT) = F2
+      IF (F2 .LT. FVMIN)  THEN
+         FVMIN = F2
+         XVMIN = SLAM
+      ENDIF
+      IF (FSTART .EQ. FVMIN) THEN
+         FLAST = F2
+         TOLER8 = TOLER*SLAM
+         OVERAL = SLAM-TOLER8
+         SLAMAX = OVERAL
+         GO TO 25
+      ENDIF
+C                                        . quadr interp using 3 points
+      XVALS(1) = XPQ(1)
+      FVALS(1) = YPQ(1)
+      XVALS(2) = XPQ(NXYPT-1)
+      FVALS(2) = YPQ(NXYPT-1)
+      XVALS(3) = XPQ(NXYPT)
+      FVALS(3) = YPQ(NXYPT)
+C                             begin iteration, calculate desired step
+   50 CONTINUE
+      SLAMAX = MAX(SLAMAX,ALPHA*ABS(XVMIN))
+      CALL MNPFIT(XVALS,FVALS,3,COEFF,SDEV)
+      IF (COEFF(3) .LE. ZERO)  THEN
+         SLOPEM = 2.0*COEFF(3)*XVMIN + COEFF(2)
+         IF (SLOPEM .LE. ZERO) THEN
+            SLAM = XVMIN + SLAMAX
+         ELSE
+            SLAM = XVMIN - SLAMAX
+         ENDIF
+      ELSE
+         SLAM = -COEFF(2)/(2.0*COEFF(3))
+         IF (SLAM .GT. XVMIN+SLAMAX)  SLAM = XVMIN+SLAMAX
+         IF (SLAM .LT. XVMIN-SLAMAX)  SLAM = XVMIN-SLAMAX
+      ENDIF
+      IF (SLAM .GT. ZERO) THEN
+          IF (SLAM .GT. OVERAL) SLAM = OVERAL
+      ELSE
+          IF (SLAM .LT. UNDRAL) SLAM = UNDRAL
+      ENDIF
+C               come here if step was cut below
+   52 CONTINUE
+      TOLER9 = MAX(TOLER8,ABS(TOLER8*SLAM))
+      DO 55 IPT= 1, 3
+      IF (ABS(SLAM-XVALS(IPT)) .LT. TOLER9)  GO TO 70
+   55 CONTINUE
+C                take the step
+      IF (NXYPT .GE. MAXPT) GO TO 65
+      DO 60 I= 1, NPAR
+   60 X(I) = START(I)+SLAM*STEP(I)
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,F3,U,4,FUTIL)
+      NFCN = NFCN + 1
+      NXYPT = NXYPT + 1
+      CHPQ(NXYPT) = CHARAL(NXYPT:NXYPT)
+      XPQ(NXYPT) = SLAM
+      YPQ(NXYPT) = F3
+C             find worst previous point out of three
+      FVMAX = FVALS(1)
+      NVMAX = 1
+      IF (FVALS(2) .GT. FVMAX) THEN
+         FVMAX = FVALS(2)
+         NVMAX = 2
+      ENDIF
+      IF (FVALS(3) .GT. FVMAX) THEN
+         FVMAX = FVALS(3)
+         NVMAX = 3
+      ENDIF
+C              if latest point worse than all three previous, cut step
+      IF (F3 .GE. FVMAX)  THEN
+          IF (NXYPT .GE. MAXPT) GO TO 65
+          IF (SLAM .GT. XVMIN) OVERAL = MIN(OVERAL,SLAM-TOLER8)
+          IF (SLAM .LT. XVMIN) UNDRAL = MAX(UNDRAL,SLAM+TOLER8)
+          SLAM = 0.5*(SLAM+XVMIN)
+          GO TO 52
+      ENDIF
+C              prepare another iteration, replace worst previous point
+      XVALS(NVMAX) = SLAM
+      FVALS(NVMAX) = F3
+      IF (F3 .LT. FVMIN)  THEN
+         FVMIN = F3
+         XVMIN = SLAM
+      ELSE
+         IF (SLAM .GT. XVMIN) OVERAL = MIN(OVERAL,SLAM-TOLER8)
+         IF (SLAM .LT. XVMIN) UNDRAL = MAX(UNDRAL,SLAM+TOLER8)
+      ENDIF
+      IF (NXYPT .LT. MAXPT)  GO TO 50
+C                                            . . end of iteration . . .
+C            stop because too many iterations
+   65 CMESS = ' LINE SEARCH HAS EXHAUSTED THE LIMIT OF FUNCTION CALLS '
+      IF (LDEBUG) THEN
+        WRITE (ISYSWR,'(A/(2X,6G12.4))') ' MNLINE DEBUG: steps=',
+     +    (STEP(KK),KK=1,NPAR)
+      ENDIF
+      GO TO 100
+C            stop because within tolerance
+   70 CONTINUE
+      CMESS = ' LINE SEARCH HAS ATTAINED TOLERANCE '
+      GO TO 100
+   80 CONTINUE
+      CMESS = ' STEP SIZE AT ARITHMETICALLY ALLOWED MINIMUM'
+  100 CONTINUE
+      AMIN = FVMIN
+      DO 120 I= 1, NPAR
+      DIRIN(I) = STEP(I)*XVMIN
+  120 X(I) = START(I) + DIRIN(I)
+      CALL MNINEX(X)
+      IF (XVMIN .LT. 0.)      CALL MNWARN('D','MNLINE',
+     +                   ' LINE MINIMUM IN BACKWARDS DIRECTION')
+      IF (FVMIN .EQ. FSTART)  CALL MNWARN('D','MNLINE',
+     +                     ' LINE SEARCH FINDS NO IMPROVEMENT ')
+      IF (LDEBUG)  THEN
+         WRITE (ISYSWR,'('' AFTER'',I3,'' POINTS,'',A)') NXYPT,CMESS
+         CALL MNPLOT(XPQ,YPQ,CHPQ,NXYPT,ISYSWR,NPAGWD,NPAGLN)
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnmatu.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnmatu.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnmatu.F	(revision 2403)
@@ -0,0 +1,69 @@
+*
+* $Id: mnmatu.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNMATU(KODE)
+#include "minuit/d506dp.inc"
+CC        prints the covariance matrix v when KODE=1.
+CC        always prints the global correlations, and
+CC        calculates and prints the individual correlation coefficients
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION VLINE(MNI)
+      ISW2 = ISW(2)
+      IF (ISW2 .LT. 1)  THEN
+          WRITE (ISYSWR,'(1X,A)')  COVMES(ISW2)
+          GO TO 500
+      ENDIF
+      IF (NPAR .EQ. 0)  THEN
+          WRITE (ISYSWR,'('' MNMATU: NPAR=0'')')
+          GO TO 500
+          ENDIF
+C                                       . . . . .external error matrix
+      IF (KODE .EQ. 1)  THEN
+         ISW5 = ISW(5)
+         ISW(5) = 2
+         CALL MNEMAT(P,MAXINT)
+           IF (ISW2.LT.3)  WRITE (ISYSWR,'(1X,A)')  COVMES(ISW2)
+         ISW(5) = ISW5
+      ENDIF
+C                                       . . . . . correlation coeffs. .
+      IF (NPAR .LE. 1)   GO TO 500
+      CALL MNWERR
+C     NCOEF is number of coeff. that fit on one line, not to exceed 20
+      NCOEF = (NPAGWD-19)/6
+      NCOEF = MIN(NCOEF,20)
+      NPARM = MIN(NPAR,NCOEF)
+      WRITE (ISYSWR, 150) (NEXOFI(ID),ID=1,NPARM)
+  150 FORMAT (/36H PARAMETER  CORRELATION COEFFICIENTS  /
+     +         18H       NO.  GLOBAL   ,20I6)
+      DO 200 I= 1, NPAR
+         IX = NEXOFI(I)
+         NDI = I*(I+1)/2
+           DO 170 J= 1, NPAR
+           M = MAX(I,J)
+           N = MIN(I,J)
+           NDEX = M*(M-1)/2 + N
+           NDJ = J*(J+1)/2
+  170      VLINE(J) = VHMAT(NDEX)/SQRT(ABS(VHMAT(NDI)*VHMAT(NDJ)))
+         NPARM = MIN(NPAR,NCOEF)
+         WRITE (ISYSWR,171)   IX, GLOBCC(I), (VLINE(IT),IT=1,NPARM)
+  171    FORMAT (6X,I3,2X,F7.5,1X,20F6.3)
+         IF (I.LE.NPARM) GO TO 200
+            DO 190 ISO= 1, 10
+            NSOFAR = NPARM
+            NPARM = MIN(NPAR,NSOFAR+NCOEF)
+            WRITE (ISYSWR,181)  (VLINE(IT),IT=NSOFAR+1,NPARM)
+  181       FORMAT (19X,20F6.3)
+            IF (I .LE. NPARM) GO TO 192
+  190       CONTINUE
+  192    CONTINUE
+  200 CONTINUE
+      IF (ISW2.LT.3)  WRITE (ISYSWR,'(1X,A)')  COVMES(ISW2)
+  500 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnmigr.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnmigr.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnmigr.F	(revision 2403)
@@ -0,0 +1,320 @@
+*
+* $Id: mnmigr.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:49  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNMIGR(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Performs a local function minimization using basically the
+CC        method of Davidon-Fletcher-Powell as modified by Fletcher
+CC        ref. -- Fletcher, Comp.J. 13,317 (1970)   "switching method"
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION GS(MNI), STEP(MNI),  XXS(MNI), FLNU(MNI), VG(MNI)
+      LOGICAL LDEBUG
+      PARAMETER (TOLER=0.05)
+      IF (NPAR .LE. 0)  RETURN
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      LDEBUG = (IDBG(4) .GE. 1)
+      CFROM = 'MIGRAD  '
+      NFCNFR = NFCN
+      NFCNMG = NFCN
+      CSTATU= 'INITIATE  '
+      ISWTR = ISW(5) - 2*ITAUR
+      NPFN = NFCN
+      NPARX = NPAR
+      LENV = NPAR*(NPAR+1)/2
+      NRSTRT = 0
+      NPSDF = 0
+      LINED2 = 0
+      ISW(4) = -1
+      RHOTOL = 1.0E-3*APSI
+      IF (ISWTR .GE. 1)  WRITE (ISYSWR,470) ISTRAT,RHOTOL
+  470 FORMAT (' START MIGRAD MINIMIZATION.  STRATEGY',I2,
+     +'.  CONVERGENCE WHEN EDM .LT.',E9.2)
+C                                           initialization strategy
+      IF (ISTRAT.LT.2 .OR. ISW(2).GE.3)  GO TO 2
+C                                come (back) here to restart completely
+    1 CONTINUE
+      IF (NRSTRT .GT. ISTRAT)  THEN
+         CSTATU= 'FAILED    '
+         ISW(4) = -1
+         GO TO 230
+         ENDIF
+C                                      . get full covariance and gradient
+      CALL MNHESS(FCN,FUTIL)
+      CALL MNWERR
+      NPSDF = 0
+      IF (ISW(2) .GE. 1)  GO TO 10
+C                                        . get gradient at start point
+    2 CONTINUE
+      CALL MNINEX(X)
+      IF (ISW(3) .EQ. 1) THEN
+          CALL FCN(NPARX,GIN,FZERO,U,2,FUTIL)
+          NFCN = NFCN + 1
+      ENDIF
+      CALL MNDERI(FCN,FUTIL)
+      IF (ISW(2) .GE. 1)  GO TO 10
+C                                   sometimes start with diagonal matrix
+      DO 3 I= 1, NPAR
+         XXS(I) = X(I)
+         STEP(I) = ZERO
+    3 CONTINUE
+C                           do line search if second derivative negative
+      LINED2 = LINED2 + 1
+      IF (LINED2 .LT. (ISTRAT+1)*NPAR) THEN
+      DO 5 I= 1, NPAR
+         IF (G2(I) .GT. ZERO)  GO TO 5
+         STEP(I) = -SIGN(GSTEP(I),GRD(I))
+         GDEL = STEP(I)*GRD(I)
+         FS = AMIN
+         CALL MNLINE(FCN,XXS,FS,STEP,GDEL,TOLER,FUTIL)
+         CALL MNWARN('D','MNMIGR','Negative G2 line search')
+         IEXT = NEXOFI(I)
+         IF (LDEBUG) WRITE (ISYSWR,'(A,I3,2G13.3)')
+     +    ' Negative G2 line search, param ',IEXT,FS,AMIN
+         GO TO 2
+    5 CONTINUE
+      ENDIF
+C                           make diagonal error matrix
+      DO 8 I=1,NPAR
+         NDEX = I*(I-1)/2
+           DO 7 J=1,I-1
+           NDEX = NDEX + 1
+    7      VHMAT(NDEX) = 0.
+         NDEX = NDEX + 1
+         IF (G2(I) .LE. ZERO)  G2(I) = 1.
+         VHMAT(NDEX) = 2./G2(I)
+    8 CONTINUE
+      DCOVAR = 1.
+      IF (LDEBUG) WRITE (ISYSWR,'(A,A/(1X,10G10.2))') ' DEBUG MNMIGR,',
+     +  ' STARTING MATRIX DIAGONAL,  VHMAT=', (VHMAT(KK),KK=1,LENV)
+C                                         ready to start first iteration
+   10 CONTINUE
+      NRSTRT = NRSTRT + 1
+      IF (NRSTRT .GT. ISTRAT+1)  THEN
+         CSTATU= 'FAILED    '
+         GO TO 230
+         ENDIF
+      FS = AMIN
+C                                        . . . get EDM and set up loop
+      EDM = 0.
+         DO 18 I= 1, NPAR
+         GS(I) = GRD(I)
+         XXS(I) = X(I)
+         NDEX = I*(I-1)/2
+           DO 17 J= 1, I-1
+           NDEX = NDEX + 1
+   17      EDM = EDM + GS(I)*VHMAT(NDEX)*GS(J)
+         NDEX = NDEX + 1
+   18    EDM = EDM + 0.5 * GS(I)**2 *VHMAT(NDEX)
+      EDM = EDM * 0.5 * (1.0+3.0*DCOVAR)
+        IF (EDM .LT. ZERO)  THEN
+        CALL MNWARN('W','MIGRAD','STARTING MATRIX NOT POS-DEFINITE.')
+        ISW(2) = 0
+        DCOVAR = 1.
+        GO TO 2
+        ENDIF
+      IF (ISW(2) .EQ. 0)  EDM=BIGEDM
+      ITER = 0
+      CALL MNINEX(X)
+      CALL MNWERR
+      IF (ISWTR .GE. 1)  CALL MNPRIN(3,AMIN)
+      IF (ISWTR .GE. 2)  CALL MNMATU(0)
+C                                        . . . . .  start main loop
+   24 CONTINUE
+      IF (NFCN-NPFN .GE. NFCNMX)  GO TO 190
+      GDEL = 0.
+      GSSQ = 0.
+         DO 30  I=1,NPAR
+         RI = 0.
+         GSSQ = GSSQ + GS(I)**2
+           DO 25 J=1,NPAR
+           M = MAX(I,J)
+           N = MIN(I,J)
+           NDEX = M*(M-1)/2 + N
+   25      RI = RI + VHMAT(NDEX) *GS(J)
+         STEP(I) = -0.5*RI
+   30    GDEL = GDEL + STEP(I)*GS(I)
+      IF (GSSQ .EQ. ZERO)  THEN
+          CALL MNWARN('D','MIGRAD',
+     +             ' FIRST DERIVATIVES OF FCN ARE ALL ZERO')
+          GO TO 300
+      ENDIF
+C                 if gdel positive, V not posdef
+      IF (GDEL .GE. ZERO)  THEN
+         CALL MNWARN('D','MIGRAD',' NEWTON STEP NOT DESCENT.')
+         IF (NPSDF .EQ. 1)  GO TO 1
+         CALL MNPSDF
+         NPSDF = 1
+         GO TO 24
+         ENDIF
+C                                        . . . . do line search
+      CALL MNLINE(FCN,XXS,FS,STEP,GDEL,TOLER,FUTIL)
+      IF (AMIN .EQ. FS) GO TO 200
+      CFROM  = 'MIGRAD  '
+      NFCNFR = NFCNMG
+      CSTATU= 'PROGRESS  '
+C                                        . get gradient at new point
+      CALL MNINEX(X)
+      IF (ISW(3) .EQ. 1) THEN
+          CALL FCN(NPARX,GIN,FZERO,U,2,FUTIL)
+          NFCN = NFCN + 1
+      ENDIF
+      CALL MNDERI(FCN,FUTIL)
+C                                         . calculate new EDM
+      NPSDF = 0
+   81 EDM = 0.
+      GVG = 0.
+      DELGAM = 0.
+      GDGSSQ = 0.
+         DO 100 I= 1, NPAR
+         RI = 0.
+         VGI = 0.
+           DO 90 J= 1, NPAR
+           M = MAX(I,J)
+           N = MIN(I,J)
+           NDEX = M*(M-1)/2 + N
+           VGI = VGI + VHMAT(NDEX)*(GRD(J)-GS(J))
+   90      RI  =  RI + VHMAT(NDEX)* GRD(J)
+      VG(I) = VGI*0.5
+      GAMI = GRD(I) - GS(I)
+      GDGSSQ = GDGSSQ + GAMI**2
+      GVG = GVG + GAMI*VG(I)
+      DELGAM = DELGAM + DIRIN(I)*GAMI
+  100 EDM = EDM + GRD(I)*RI*0.5
+      EDM = EDM * 0.5 * (1.0 + 3.0*DCOVAR)
+C                          . if EDM negative,  not positive-definite
+      IF (EDM .LT. ZERO .OR. GVG .LE. ZERO)  THEN
+         CALL MNWARN('D','MIGRAD','NOT POS-DEF. EDM OR GVG NEGATIVE.')
+         CSTATU = 'NOT POSDEF'
+         IF (NPSDF .EQ. 1)  GO TO 230
+         CALL MNPSDF
+         NPSDF = 1
+         GO TO 81
+      ENDIF
+C                            print information about this iteration
+      ITER = ITER + 1
+      IF (ISWTR.GE.3 .OR. (ISWTR.EQ.2.AND.MOD(ITER,10).EQ.1)) THEN
+         CALL MNWERR
+         CALL MNPRIN(3,AMIN)
+      ENDIF
+      IF (GDGSSQ .EQ. ZERO)  CALL MNWARN('D','MIGRAD',
+     +           'NO CHANGE IN FIRST DERIVATIVES OVER LAST STEP')
+      IF (DELGAM .LT. ZERO) CALL MNWARN('D','MIGRAD',
+     +          'FIRST DERIVATIVES INCREASING ALONG SEARCH LINE')
+C                                        .  update covariance matrix
+      CSTATU = 'IMPROVEMNT'
+        IF (LDEBUG) WRITE (ISYSWR,'(A,(1X,10G10.3))') ' VHMAT 1 =',
+     +             (VHMAT(KK),KK=1,10)
+      DSUM = 0.
+      VSUM = 0.
+         DO  120  I=1, NPAR
+           DO  120  J=1, I
+           D = DIRIN(I)*DIRIN(J)/DELGAM - VG(I)*VG(J)/GVG
+           DSUM = DSUM + ABS(D)
+           NDEX = I*(I-1)/2 + J
+           VHMAT(NDEX) = VHMAT(NDEX) + 2.0*D
+           VSUM = VSUM + ABS(VHMAT(NDEX))
+  120      CONTINUE
+C                smooth local fluctuations by averaging DCOVAR
+      DCOVAR = 0.5*(DCOVAR + DSUM/VSUM)
+      IF (ISWTR.GE.3 .OR. LDEBUG) WRITE (ISYSWR,'(A,F5.1,A)')
+     +      ' RELATIVE CHANGE IN COV. MATRIX=',DCOVAR*100.,'%'
+      IF (LDEBUG) WRITE (ISYSWR,'(A,(1X,10G10.3))') ' VHMAT 2 =',
+     +             (VHMAT(KK),KK=1,10)
+      IF (DELGAM .LE. GVG)  GO TO 135
+      DO 125 I= 1, NPAR
+  125 FLNU(I) = DIRIN(I)/DELGAM - VG(I)/GVG
+      DO 130 I= 1, NPAR
+      DO 130 J= 1, I
+      NDEX = I*(I-1)/2 + J
+  130 VHMAT(NDEX) = VHMAT(NDEX) + 2.0*GVG*FLNU(I)*FLNU(J)
+  135 CONTINUE
+C                                              and see if converged
+      IF (EDM .LT. 0.1*RHOTOL)  GO TO 300
+C                                    if not, prepare next iteration
+      DO 140 I= 1, NPAR
+      XXS(I) = X(I)
+      GS(I) = GRD(I)
+  140 CONTINUE
+      FS = AMIN
+      IF (ISW(2) .EQ. 0  .AND. DCOVAR.LT. 0.5 )  ISW(2) = 1
+      IF (ISW(2) .EQ. 3  .AND. DCOVAR.GT. 0.1 )  ISW(2) = 1
+      IF (ISW(2) .EQ. 1  .AND. DCOVAR.LT. 0.05)  ISW(2) = 3
+      GO TO 24
+C                                        . . . . .  end main loop
+C                                         . . call limit in MNMIGR
+  190 ISW(1) = 1
+      IF (ISW(5) .GE. 0)
+     +     WRITE (ISYSWR,'(A)')  ' CALL LIMIT EXCEEDED IN MIGRAD.'
+      CSTATU = 'CALL LIMIT'
+      GO TO 230
+C                                         . . fails to improve . .
+  200 IF (ISWTR .GE. 1)  WRITE (ISYSWR,'(A)')
+     +           ' MIGRAD FAILS TO FIND IMPROVEMENT'
+      DO 210 I= 1, NPAR
+  210 X(I) = XXS(I)
+      IF (EDM .LT. RHOTOL)  GO TO 300
+      IF (EDM .LT. ABS(EPSMA2*AMIN))  THEN
+         IF (ISWTR .GE. 0)  WRITE (ISYSWR, '(A)')
+     +      ' MACHINE ACCURACY LIMITS FURTHER IMPROVEMENT.'
+         GO TO 300
+         ENDIF
+      IF (ISTRAT .LT. 1)  THEN
+         IF (ISW(5) .GE. 0) WRITE (ISYSWR, '(A)')
+     +    ' MIGRAD FAILS WITH STRATEGY=0.   WILL TRY WITH STRATEGY=1.'
+         ISTRAT = 1
+      ENDIF
+         GO TO 1
+C                                         . . fails to converge
+  230 IF (ISWTR .GE. 0)  WRITE (ISYSWR,'(A)')
+     +    ' MIGRAD TERMINATED WITHOUT CONVERGENCE.'
+      IF (ISW(2) .EQ. 3)  ISW(2) = 1
+      ISW(4) = -1
+      GO TO 400
+C                                         . . apparent convergence
+  300 IF (ISWTR .GE. 0) WRITE(ISYSWR,'(/A)')
+     +   ' MIGRAD MINIMIZATION HAS CONVERGED.'
+      IF (ITAUR .EQ. 0) THEN
+        IF (ISTRAT .GE. 2 .OR. (ISTRAT.EQ.1.AND.ISW(2).LT.3)) THEN
+           IF (ISW(5) .GE. 0)  WRITE (ISYSWR, '(/A)')
+     +      ' MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.'
+           CALL MNHESS(FCN,FUTIL)
+           CALL MNWERR
+           NPSDF = 0
+           IF (EDM .GT. RHOTOL) GO TO 10
+        ENDIF
+      ENDIF
+      CSTATU='CONVERGED '
+      ISW(4) = 1
+C                                           come here in any case
+  400 CONTINUE
+      CFROM = 'MIGRAD  '
+      NFCNFR = NFCNMG
+      CALL  MNINEX(X)
+      CALL MNWERR
+      IF (ISWTR .GE. 0)  CALL MNPRIN (3,AMIN)
+      IF (ISWTR .GE. 1)  CALL MNMATU(1)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnmnos.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnmnos.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnmnos.F	(revision 2403)
@@ -0,0 +1,80 @@
+*
+* $Id: mnmnos.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNMNOS(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Performs a MINOS error analysis on those parameters for
+CC        which it is requested on the MINOS command by calling 
+CC        MNMNOT for each parameter requested.
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      IF (NPAR .LE. 0)  GO TO 700
+      NGOOD = 0
+      NBAD = 0
+      NFCNMI = NFCN
+C                                      . loop over parameters requested
+      DO 570 KNT= 1, NPAR
+      IF (INT(WORD7(2)) .EQ. 0) THEN
+          ILAX = NEXOFI(KNT)
+      ELSE
+          IF (KNT .GE. 7)  GO TO 580
+          ILAX = INT(WORD7(KNT+1))
+          IF (ILAX .EQ. 0)  GO TO 580
+          IF (ILAX .GT. 0 .AND. ILAX .LE. NU) THEN
+             IF (NIOFEX(ILAX) .GT. 0)  GO TO 565
+          ENDIF
+          WRITE (ISYSWR,564) ILAX
+  564     FORMAT (' PARAMETER NUMBER ',I5,' NOT VARIABLE. IGNORED.')
+          GO TO 570
+      ENDIF
+  565 CONTINUE
+C                                         calculate one pair of M E's
+      ILAX2 = 0
+      CALL MNMNOT(FCN,ILAX,ILAX2,VAL2PL,VAL2MI,FUTIL)
+      IF (LNEWMN)  GO TO 650
+C                                          update NGOOD and NBAD
+      IIN = NIOFEX(ILAX)
+      IF (ERP(IIN) .GT. ZERO) THEN
+         NGOOD=NGOOD+1
+      ELSE
+         NBAD=NBAD+1
+      ENDIF
+      IF (ERN(IIN) .LT. ZERO) THEN
+         NGOOD=NGOOD+1
+      ELSE
+         NBAD=NBAD+1
+      ENDIF
+  570 CONTINUE
+C                                           end of loop . . . . . . .
+  580 CONTINUE
+C                                        . . . . printout final values .
+      CFROM = 'MINOS   '
+      NFCNFR = NFCNMI
+      CSTATU= 'UNCHANGED '
+      IF (NGOOD.EQ.0.AND.NBAD.EQ.0) GO TO 700
+      IF (NGOOD.GT.0.AND.NBAD.EQ.0) CSTATU='SUCCESSFUL'
+      IF (NGOOD.EQ.0.AND.NBAD.GT.0) CSTATU='FAILURE   '
+      IF (NGOOD.GT.0.AND.NBAD.GT.0) CSTATU='PROBLEMS  '
+      IF (ISW(5) .GE. 0) CALL MNPRIN(4,AMIN)
+      IF (ISW(5) .GE. 2) CALL MNMATU(0)
+      GO TO 900
+C                                        . . . new minimum found . . . .
+  650 CONTINUE
+      CFROM = 'MINOS   '
+      NFCNFR = NFCNMI
+      CSTATU= 'NEW MINIMU'
+      IF (ISW(5) .GE. 0) CALL MNPRIN(4,AMIN)
+      WRITE (ISYSWR,675)
+  675 FORMAT(/50H NEW MINIMUM FOUND.  GO BACK TO MINIMIZATION STEP./1H ,
+     +60(1H=)/60X,1HV/60X,1HV/60X,1HV/57X,7HVVVVVVV/58X,5HVVVVV/59X,
+     +3HVVV/60X,1HV//)
+      GO TO 900
+  700 WRITE (ISYSWR,'(A)') ' THERE ARE NO MINOS ERRORS TO CALCULATE.'
+  900 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnmnot.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnmnot.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnmnot.F	(revision 2403)
@@ -0,0 +1,173 @@
+*
+* $Id: mnmnot.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNMNOT(FCN,ILAX,ILAX2,VAL2PL,VAL2MI,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Performs a MINOS error analysis on one parameter.
+CC        The parameter ILAX is varied, and the minimum of the
+CC        function with respect to the other parameters is followed
+CC        until it crosses the value FMIN+UP.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION XDEV(MNI),W(MNI),GCC(MNI)
+      CHARACTER*4 CPOS,CNEG,CSIG
+      PARAMETER (CPOS='POSI',CNEG='NEGA')
+C                                        . . save and prepare start vals
+      ISW2 = ISW(2)
+      ISW4 = ISW(4)
+      SIGSAV = EDM
+      ISTRAV = ISTRAT
+      DC = DCOVAR
+      LNEWMN = .FALSE.
+      APSI  = EPSI*0.5
+      ABEST=AMIN
+      MPAR=NPAR
+      NFMXIN = NFCNMX
+      DO 125 I= 1, MPAR
+  125 XT(I) = X(I)
+      DO 130 J= 1, MPAR*(MPAR+1)/2
+  130 VTHMAT(J) = VHMAT(J)
+      DO 135 I= 1, MPAR
+      GCC(I) = GLOBCC(I)
+  135 W(I) = WERR(I)
+      IT = NIOFEX(ILAX)
+      ERP(IT) = 0.
+      ERN(IT) = 0.
+      CALL MNINEX(XT)
+      UT = U(ILAX)
+      IF (NVARL(ILAX) .EQ. 1) THEN
+         ALIM(ILAX) = UT -100.*W(IT)
+         BLIM(ILAX) = UT +100.*W(IT)
+         ENDIF
+      NDEX = IT*(IT+1)/2
+      XUNIT = SQRT(UP/VTHMAT(NDEX))
+      MARC = 0
+      DO 162 I= 1, MPAR
+      IF (I .EQ. IT)  GO TO 162
+      MARC = MARC + 1
+         IMAX = MAX(IT,I)
+         INDX = IMAX*(IMAX-1)/2 + MIN(IT,I)
+      XDEV(MARC) = XUNIT*VTHMAT(INDX)
+  162 CONTINUE
+C                           fix the parameter in question
+      CALL MNFIXP (IT,IERR)
+      IF (IERR .GT. 0)  THEN
+         WRITE (ISYSWR,'(A,I5,A,I5)')
+     +    ' MINUIT ERROR. CANNOT FIX PARAMETER',ILAX,'    INTERNAL',IT
+         GO TO 700
+      ENDIF
+C                       . . . . . Nota Bene: from here on, NPAR=MPAR-1
+C      Remember: MNFIXP squeezes IT out of X, XT, WERR, and VHMAT,
+C                                                    not W, VTHMAT
+      DO 500 ISIG= 1,2
+      IF (ISIG .EQ. 1) THEN
+         SIG = 1.0
+         CSIG = CPOS
+      ELSE
+         SIG = -1.0
+         CSIG = CNEG
+      ENDIF
+C                                        . sig=sign of error being calcd
+      IF (ISW(5) .GT. 1) WRITE (ISYSWR,806)  CSIG,ILAX,CPNAM(ILAX)
+  806 FORMAT (/' DETERMINATION OF ',A4,'TIVE MINOS ERROR FOR PARAMETER',
+     +    I3, 2X ,A)
+      IF (ISW(2).LE.0) CALL MNWARN('D','MINOS','NO COVARIANCE MATRIX.')
+      NLIMIT = NFCN + NFMXIN
+      ISTRAT = MAX(ISTRAV-1,0)
+      DU1 = W(IT)
+      U(ILAX) = UT + SIG*DU1
+      U(ILAX) = MIN(U(ILAX),BLIM(ILAX))
+      U(ILAX) = MAX(U(ILAX),ALIM(ILAX))
+      DELU = U(ILAX) - UT
+C         stop if already at limit with negligible step size
+      IF (ABS(DELU)/(ABS(UT)+ABS(U(ILAX))) .LT. EPSMAC)  GO TO 440
+      FAC = DELU/W(IT)
+         DO 185 I= 1, NPAR
+  185    X(I) = XT(I) + FAC*XDEV(I)
+      IF (ISW(5) .GT. 1) WRITE (ISYSWR,801)  ILAX,UT,DELU,U(ILAX)
+  801 FORMAT (/' PARAMETER',I4,' SET TO',E11.3,' + ',E10.3,' = ',E12.3)
+C                                        loop to hit AMIN+UP
+      KE1CR = ILAX
+      KE2CR = 0
+      XMIDCR = U(ILAX)
+      XDIRCR = DELU
+C
+      AMIN = ABEST
+      NFCNMX = NLIMIT - NFCN
+      CALL MNCROS(FCN,AOPT,IERCR,FUTIL)
+      IF (ABEST-AMIN .GT. 0.01*UP)  GO TO 650
+      IF (IERCR .EQ. 1)  GO TO 440
+      IF (IERCR .EQ. 2)  GO TO 450
+      IF (IERCR .EQ. 3)  GO TO 460
+C                                        . error successfully calculated
+      EROS = XMIDCR-UT + AOPT*XDIRCR
+      IF (ISW(5) .GT. 1) WRITE (ISYSWR,808)  CSIG,ILAX,CPNAM(ILAX),EROS
+  808 FORMAT (/9X,4HTHE ,A4,  29HTIVE MINOS ERROR OF PARAMETER,I3,   2H
+     +, ,A10,      4H, IS ,E12.4)
+      GO TO 480
+C                                        . . . . . . . . failure returns
+  440 IF (ISW(5) .GE. 1) WRITE(ISYSWR,807)  CSIG,ILAX,CPNAM(ILAX)
+  807 FORMAT (5X,'THE ',A4,'TIVE MINOS ERROR OF PARAMETER',I3,', ',A,
+     +', EXCEEDS ITS LIMIT.'/)
+      EROS = UNDEFI
+      GO TO 480
+  450 IF (ISW(5) .GE. 1) WRITE (ISYSWR, 802)  CSIG,ILAX,NFMXIN
+  802 FORMAT (9X,'THE ',A,'TIVE MINOS ERROR',I4,' REQUIRES MORE THAN',
+     +   I5,' FUNCTION CALLS.'/)
+      EROS = 0.
+      GO TO 480
+  460 IF (ISW(5) .GE. 1) WRITE (ISYSWR, 805) CSIG,ILAX
+  805 FORMAT (25X,A,'TIVE MINOS ERROR NOT CALCULATED FOR PARAMETER',I4/)
+      EROS = 0.
+C
+  480 IF (ISW(5) .GT. 1) WRITE (ISYSWR,'(5X, 74(1H*))')
+      IF (SIG .LT. ZERO)  THEN
+         ERN(IT) = EROS
+         IF (ILAX2.GT.0 .AND. ILAX2.LE.NU)  VAL2MI = U(ILAX2)
+      ELSE
+         ERP(IT) = EROS
+         IF (ILAX2.GT.0 .AND. ILAX2.LE.NU)  VAL2PL = U(ILAX2)
+      ENDIF
+  500 CONTINUE
+C                                        . . parameter finished. reset v
+C                       normal termination
+      ITAUR = 1
+      CALL MNFREE(1)
+      DO 550 J= 1, MPAR*(MPAR+1)/2
+  550 VHMAT(J) = VTHMAT(J)
+      DO 595 I= 1, MPAR
+      WERR(I) = W(I)
+      GLOBCC(I) = GCC(I)
+  595 X(I) = XT(I)
+      CALL MNINEX (X)
+      EDM = SIGSAV
+      AMIN = ABEST
+      ISW(2) = ISW2
+      ISW(4) = ISW4
+      DCOVAR = DC
+      GO TO 700
+C                       new minimum
+  650 LNEWMN = .TRUE.
+      ISW(2) = 0
+      DCOVAR = 1.
+      ISW(4) = 0
+      SAV = U(ILAX)
+      ITAUR = 1
+      CALL MNFREE(1)
+      U(ILAX) = SAV
+      CALL MNEXIN(X)
+      EDM = BIGEDM
+C                       in any case
+  700 CONTINUE
+      ITAUR = 0
+      NFCNMX = NFMXIN
+      ISTRAT = ISTRAV
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnparm.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnparm.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnparm.F	(revision 2403)
@@ -0,0 +1,220 @@
+*
+* $Id: mnparm.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:50  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPARM(K,CNAMJ,UK,WK,A,B,IERFLG)
+#include "minuit/d506dp.inc"
+CC        Called from MNPARS and user-callable
+CC    Implements one parameter definition, that is:
+CC          K     (external) parameter number
+CC          CNAMK parameter name
+CC          UK    starting value
+CC          WK    starting step size or uncertainty
+CC          A, B  lower and upper physical parameter limits
+CC    and sets up (updates) the parameter lists.
+CC    Output: IERFLG=0 if no problems
+CC                  >0 if MNPARM unable to implement definition
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER*(*) CNAMJ
+      CHARACTER  CNAMK*10, CHBUFI*4
+C
+      CNAMK = CNAMJ
+      KINT = NPAR
+      IF (K.LT.1 .OR. K.GT.MAXEXT) THEN
+C                     parameter number exceeds allowed maximum value
+        WRITE (ISYSWR,9)  K,MAXEXT
+    9   FORMAT (/' MINUIT USER ERROR.  PARAMETER NUMBER IS',I11/
+     +         ',  ALLOWED RANGE IS ONE TO',I4/)
+        GO TO 800
+      ENDIF
+C                     normal parameter request
+      KTOFIX = 0
+      IF (NVARL(K) .LT. 0) GO TO 50
+C         previously defined parameter is being redefined
+C                                     find if parameter was fixed
+      DO 40 IX= 1, NPFIX
+      IF (IPFIX(IX) .EQ. K)  KTOFIX = K
+   40 CONTINUE
+      IF (KTOFIX .GT. 0)  THEN
+         CALL MNWARN('W','PARAM DEF','REDEFINING A FIXED PARAMETER.')
+         IF (KINT .GE. MAXINT)  THEN
+            WRITE (ISYSWR,'(A)') ' CANNOT RELEASE. MAX NPAR EXCEEDED.'
+            GO TO 800
+            ENDIF
+         CALL MNFREE(-K)
+         ENDIF
+C                       if redefining previously variable parameter
+      IF(NIOFEX(K) .GT. 0) KINT = NPAR-1
+   50 CONTINUE
+C
+C                                      . . .print heading
+      IF (LPHEAD .AND. ISW(5).GE.0) THEN
+        WRITE (ISYSWR,61)
+        LPHEAD = .FALSE.
+      ENDIF
+   61 FORMAT(/' PARAMETER DEFINITIONS:'/
+     +        '    NO.   NAME         VALUE      STEP SIZE      LIMITS')
+      IF (WK .GT. ZERO)  GO TO 122
+C                                        . . .constant parameter . . . .
+      IF (ISW(5) .GE. 0)  WRITE (ISYSWR, 82)  K,CNAMK,UK
+   82 FORMAT (1X,I5,1X,1H',A10,1H',1X,G13.5, '  constant')
+      NVL = 0
+      GO TO 200
+  122 IF (A.EQ.ZERO .AND. B.EQ.ZERO) THEN
+C                                      variable parameter without limits
+      NVL = 1
+      IF (ISW(5) .GE. 0)  WRITE (ISYSWR, 127)  K,CNAMK,UK,WK
+  127 FORMAT (1X,I5,1X,1H',A10,1H',1X,2G13.5, '     no limits')
+      ELSE
+C                                         variable parameter with limits
+      NVL = 4
+      LNOLIM = .FALSE.
+      IF (ISW(5) .GE. 0)  WRITE (ISYSWR, 132)  K,CNAMK,UK,WK,A,B
+  132 FORMAT(1X,I5,1X,1H',A10,1H',1X,2G13.5,2X,2G13.5)
+      ENDIF
+C                             . . request for another variable parameter
+      KINT = KINT + 1
+      IF (KINT .GT. MAXINT)  THEN
+         WRITE (ISYSWR,135)  MAXINT
+  135    FORMAT (/' MINUIT USER ERROR.   TOO MANY VARIABLE PARAMETERS.'/
+     +   ' THIS VERSION OF MINUIT DIMENSIONED FOR',I4//)
+         GO TO 800
+         ENDIF
+      IF (NVL .EQ. 1)  GO TO 200
+      IF (A .EQ. B)  THEN
+        WRITE (ISYSWR,'(/A,A/A/)') ' USER ERROR IN MINUIT PARAMETER',
+     +   ' DEFINITION',' UPPER AND LOWER LIMITS EQUAL.'
+        GO TO 800
+        ENDIF
+      IF (B .LT. A) THEN
+         SAV = B
+         B = A
+         A = SAV
+         CALL MNWARN('W','PARAM DEF','PARAMETER LIMITS WERE REVERSED.')
+         IF (LWARN) LPHEAD=.TRUE.
+         ENDIF
+      IF ((B-A) .GT. 1.0E7)  THEN
+         WRITE (CHBUFI,'(I4)') K
+         CALL MNWARN('W','PARAM DEF',
+     +               'LIMITS ON PARAM'//CHBUFI//' TOO FAR APART.')
+         IF (LWARN) LPHEAD=.TRUE.
+      ENDIF
+      DANGER = (B-UK)*(UK-A)
+      IF (DANGER .LT. 0.)
+     +     CALL MNWARN('W','PARAM DEF','STARTING VALUE OUTSIDE LIMITS.')
+      IF (DANGER .EQ. 0.)
+     +     CALL MNWARN('W','PARAM DEF','STARTING VALUE IS AT LIMIT.')
+  200 CONTINUE
+C                           . . . input OK, set values, arrange lists,
+C                                    calculate step sizes GSTEP, DIRIN
+      CFROM = 'PARAMETR'
+      NFCNFR = NFCN
+      CSTATU= 'NEW VALUES'
+      NU = MAX(NU,K)
+      CPNAM(K) = CNAMK
+      U(K) = UK
+      ALIM(K) = A
+      BLIM(K) = B
+      NVARL(K) = NVL
+C                             K is external number of new parameter
+C           LASTIN is the number of var. params with ext. param. no.< K
+      LASTIN = 0
+      DO 240 IX= 1, K-1
+      IF (NIOFEX(IX) .GT. 0)  LASTIN=LASTIN+1
+  240 CONTINUE
+C                 KINT is new number of variable params, NPAR is old
+      IF (KINT .EQ. NPAR)  GO TO 280
+      IF (KINT .GT. NPAR) THEN
+C                          insert new variable parameter in list
+         DO 260 IN= NPAR,LASTIN+1,-1
+         IX = NEXOFI(IN)
+         NIOFEX(IX) = IN+1
+         NEXOFI(IN+1)= IX
+         X    (IN+1) = X    (IN)
+         XT   (IN+1) = XT   (IN)
+         DIRIN(IN+1) = DIRIN(IN)
+         G2   (IN+1) = G2   (IN)
+         GSTEP(IN+1) = GSTEP(IN)
+  260    CONTINUE
+      ELSE
+C                          remove variable parameter from list
+         DO 270 IN= LASTIN+1,KINT
+         IX = NEXOFI(IN+1)
+         NIOFEX(IX) = IN
+         NEXOFI(IN)= IX
+         X     (IN)= X    (IN+1)
+         XT    (IN)= XT   (IN+1)
+         DIRIN (IN)= DIRIN(IN+1)
+         G2    (IN)= G2   (IN+1)
+         GSTEP (IN)= GSTEP(IN+1)
+  270    CONTINUE
+      ENDIF
+  280 CONTINUE
+      IX = K
+      NIOFEX(IX) = 0
+      NPAR = KINT
+      CALL MNRSET(1)
+C                                       lists are now arranged . . . .
+      IF (NVL .GT. 0)  THEN
+         IN = LASTIN+1
+         NEXOFI(IN) = IX
+         NIOFEX(IX) = IN
+         SAV = U(IX)
+         CALL MNPINT(SAV,IX,PINTI)
+         X(IN) = PINTI
+         XT(IN) = X(IN)
+         WERR(IN) = WK
+         SAV2 = SAV + WK
+         CALL MNPINT(SAV2,IX,PINTI)
+         VPLU = PINTI - X(IN)
+         SAV2 = SAV - WK
+         CALL MNPINT(SAV2,IX,PINTI)
+         VMINU = PINTI - X(IN)
+         DIRIN(IN) = 0.5 * (ABS(VPLU) +ABS(VMINU))
+         G2(IN) = 2.0*UP / DIRIN(IN)**2
+         GSMIN = 8.*EPSMA2*ABS(X(IN))
+         GSTEP(IN) = MAX (GSMIN, 0.1*DIRIN(IN))
+         IF (AMIN .NE. UNDEFI) THEN
+             SMALL = SQRT(EPSMA2*(AMIN+UP)/UP)
+             GSTEP(IN) = MAX(GSMIN, SMALL*DIRIN(IN))
+         ENDIF
+         GRD  (IN) = G2(IN)*DIRIN(IN)
+C                   if parameter has limits
+         IF (NVARL(K) .GT. 1) THEN
+            IF (GSTEP(IN).GT. 0.5)  GSTEP(IN)=0.5
+            GSTEP(IN) = -GSTEP(IN)
+         ENDIF
+      ENDIF
+      IF (KTOFIX .GT. 0)  THEN
+         KINFIX = NIOFEX(KTOFIX)
+         IF (KINFIX .GT. 0)  CALL MNFIXP(KINFIX,IERR)
+         IF (IERR .GT. 0)  GO TO 800
+      ENDIF
+      IERFLG = 0
+      RETURN
+C                   error on input, unable to implement request  . . . .
+  800 CONTINUE
+      IERFLG = 1
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnpars.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnpars.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnpars.F	(revision 2403)
@@ -0,0 +1,90 @@
+*
+* $Id: mnpars.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPARS(CRDBUF,ICONDN)
+#include "minuit/d506dp.inc"
+CC        Called from MNREAD and user-callable
+CC    Implements one parameter definition, that is:
+CC       parses the string CRDBUF and calls MNPARM
+C
+C output conditions:
+C        ICONDN = 0    all OK
+C        ICONDN = 1    error, attempt to define parameter is ignored
+C        ICONDN = 2    end of parameter definitions
+C
+#include "minuit/d506cm.inc"
+C
+      DIMENSION PLIST(MAXP)
+      CHARACTER CNAMK*10, CRDBUF*(*) , CELMNT*20 , COMAND*(MAXCWD)
+C
+      LENBUF = LEN(CRDBUF)
+C                     find out whether fixed or free-field format
+      KAPO1 = INDEX(CRDBUF,'''')
+      IF (KAPO1 .EQ. 0)  GO TO 150
+      KAPO2 = INDEX(CRDBUF(KAPO1+1:),'''')
+      IF (KAPO2 .EQ. 0)  GO TO 150
+C          new (free-field) format
+      KAPO2 = KAPO2 + KAPO1
+C                             skip leading blanks if any
+         DO 115 ISTART=1, KAPO1-1
+         IF (CRDBUF(ISTART:ISTART) .NE. ' ')  GO TO 120
+  115    CONTINUE
+         GO TO 210
+  120 CONTINUE
+C                               parameter number integer
+      CELMNT = CRDBUF(ISTART:KAPO1-1)
+      READ (CELMNT,'(BN,F20.0)',ERR=180) FK
+      K = FK
+      IF (K .LE. 0)  GO TO 210
+      CNAMK = 'PARAM '//CELMNT
+      IF (KAPO2-KAPO1 .GT. 1) CNAMK = CRDBUF(KAPO1+1:KAPO2-1)
+C  special handling if comma or blanks and a comma follow 'name'
+        DO 135 ICY= KAPO2+1,LENBUF
+        IF (CRDBUF(ICY:ICY) .EQ. ',') GO TO 139
+        IF (CRDBUF(ICY:ICY) .NE. ' ') GO TO 140
+  135 CONTINUE
+        UK = 0.
+        WK = 0.
+        A  = 0.
+        B = 0.
+      GO TO 170
+  139 CONTINUE
+      ICY = ICY+1
+  140 CONTINUE
+      IBEGIN = ICY
+      CALL MNCRCK(CRDBUF(IBEGIN:),MAXCWD,COMAND,LNC,
+     +                             MAXP,PLIST,LLIST, IERR,ISYSWR)
+      IF (IERR .GT. 0)  GO TO 180
+      UK = PLIST(1)
+      WK = 0.
+      IF (LLIST .GE. 2)  WK = PLIST(2)
+      A = 0.
+      IF (LLIST .GE. 3)  A = PLIST(3)
+      B = 0.
+      IF (LLIST .GE. 4)  B = PLIST(4)
+      GO TO 170
+C          old (fixed-field) format
+  150 CONTINUE
+      READ (CRDBUF, 158,ERR=180)  XK,CNAMK,UK,WK,A,B
+  158 FORMAT (BN,F10.0, A10, 4F10.0)
+      K = XK
+      IF (K .EQ. 0)  GO TO 210
+C          parameter format cracked, implement parameter definition
+  170 CALL MNPARM(K,CNAMK,UK,WK,A,B,IERR)
+      ICONDN = IERR
+      RETURN
+C          format or other error
+  180 CONTINUE
+      ICONDN = 1
+      RETURN
+C        end of data
+  210 CONTINUE
+      ICONDN = 2
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnpfit.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnpfit.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnpfit.F	(revision 2403)
@@ -0,0 +1,70 @@
+*
+* $Id: mnpfit.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPFIT(PARX2P,PARY2P,NPAR2P,COEF2P,SDEV2P)
+#include "minuit/d506dp.inc"
+C
+C     to fit a parabola to npar2p points
+C
+C   npar2p   no. of points
+C   parx2p(i)   x value of point i
+C   pary2p(i)   y value of point i
+C
+C   coef2p(1...3)  coefficients of the fitted parabola
+C   y=coef2p(1) + coef2p(2)*x + coef2p(3)*x**2
+C   sdev2p= variance
+C   method : chi**2 = min equation solved explicitly
+      DIMENSION PARX2P(NPAR2P),PARY2P(NPAR2P),COEF2P(NPAR2P)
+      DIMENSION CZ(3)
+C
+      DO 3  I=1,3
+    3 CZ(I)=0.
+      SDEV2P=0.
+      IF(NPAR2P.LT.3) GO TO 10
+      F=NPAR2P
+C--- center x values for reasons of machine precision
+      XM=0.
+      DO 2  I=1,NPAR2P
+    2 XM=XM+PARX2P(I)
+      XM=XM/F
+      X2=0.
+      X3=0.
+      X4=0.
+      Y=0.
+      Y2=0.
+      XY=0.
+      X2Y=0.
+      DO 1  I=1,NPAR2P
+      S=PARX2P(I)-XM
+      T=PARY2P(I)
+      S2=S*S
+      X2=X2+S2
+      X3=X3+S*S2
+      X4=X4+S2*S2
+      Y=Y+T
+      Y2=Y2+T*T
+      XY=XY+S*T
+      X2Y=X2Y+S2*T
+    1 CONTINUE
+      A=(F*X4-X2**2)*X2-F*X3**2
+      IF(A.EQ.0.)  GOTO 10
+      CZ(3)=(X2*(F*X2Y-X2*Y)-F*X3*XY)/A
+      CZ(2)=(XY-X3*CZ(3))/X2
+      CZ(1)=(Y-X2*CZ(3))/F
+      IF(NPAR2P.EQ.3)  GOTO 6
+      SDEV2P=Y2-(CZ(1)*Y+CZ(2)*XY+CZ(3)*X2Y)
+      IF(SDEV2P.LT.0.)  SDEV2P=0.
+      SDEV2P=SDEV2P/(F-3.)
+    6 CZ(1)=CZ(1)+XM*(XM*CZ(3)-CZ(2))
+      CZ(2)=CZ(2)-2.*XM*CZ(3)
+   10 CONTINUE
+      DO 11  I=1,3
+   11 COEF2P(I)=CZ(I)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnpint.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnpint.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnpint.F	(revision 2403)
@@ -0,0 +1,44 @@
+*
+* $Id: mnpint.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPINT(PEXTI,I,PINTI)
+#include "minuit/d506dp.inc"
+CC        Calculates the internal parameter value PINTI corresponding
+CC        to the external value PEXTI for parameter I.
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER CHBUFI*4, CHBUF2*30
+      PINTI = PEXTI
+      IGO = NVARL(I)
+      IF (IGO .EQ. 4)  THEN
+C--                          there are two limits
+        ALIMI = ALIM(I)
+        BLIMI = BLIM(I)
+        YY=2.0*(PEXTI-ALIMI)/(BLIMI-ALIMI) - 1.0
+        YY2 = YY**2
+        IF (YY2 .GE. (1.0- EPSMA2))  THEN
+           IF (YY .LT. 0.) THEN
+               A = VLIMLO
+               CHBUF2 = ' IS AT ITS LOWER ALLOWED LIMIT.'
+           ELSE
+               A = VLIMHI
+               CHBUF2 = ' IS AT ITS UPPER ALLOWED LIMIT.'
+           ENDIF
+           PINTI = A
+           PEXTI = ALIMI + 0.5* (BLIMI-ALIMI) *(SIN(A) +1.0)
+           LIMSET = .TRUE.
+           WRITE (CHBUFI,'(I4)') I
+           IF (YY2 .GT. 1.0) CHBUF2 = ' BROUGHT BACK INSIDE LIMITS.'
+           CALL MNWARN('W',CFROM,'VARIABLE'//CHBUFI//CHBUF2)
+         ELSE
+           PINTI = ASIN(YY)
+         ENDIF
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnplot.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnplot.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnplot.F	(revision 2403)
@@ -0,0 +1,149 @@
+*
+* $Id: mnplot.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPLOT(XPT,YPT,CHPT,NXYPT,NUNIT,NPAGWD,NPAGLN)
+#include "minuit/d506dp.inc"
+CC        plots points in array xypt onto one page with labelled axes
+CC        NXYPT is the number of points to be plotted
+CC        XPT(I) = x-coord. of ith point
+CC        YPT(I) = y-coord. of ith point
+CC        CHPT(I) = character to be plotted at this position
+CC        the input point arrays XPT, YPT, CHPT are destroyed.
+CC
+      DIMENSION   XPT(*), YPT(*)
+      CHARACTER*1 CHPT(*) ,  CHSAV,  CHBEST, CDOT, CSLASH, CBLANK
+      PARAMETER (MAXWID=100)
+      CHARACTER CLINE*100, CHMESS*30
+      DIMENSION XVALUS(12)
+      LOGICAL OVERPR
+      DATA CDOT,CSLASH,CBLANK/ '.' , '/' , ' '/
+      MAXNX = MIN(NPAGWD-20,MAXWID)
+      IF (MAXNX .LT. 10)  MAXNX = 10
+      MAXNY = NPAGLN
+      IF (MAXNY .LT. 10)  MAXNY = 10
+      IF (NXYPT .LE. 1)  RETURN
+      XBEST = XPT(1)
+      YBEST = YPT(1)
+      CHBEST = CHPT(1)
+C         order the points by decreasing y
+      KM1 = NXYPT - 1
+      DO 150 I= 1, KM1
+      IQUIT = 0
+      NI = NXYPT - I
+      DO 140 J= 1, NI
+      IF (YPT(J) .GT. YPT(J+1)) GO TO 140
+        SAVX = XPT(J)
+        XPT(J) = XPT(J+1)
+        XPT(J+1) = SAVX
+        SAVY = YPT(J)
+        YPT(J) = YPT(J+1)
+        YPT(J+1) = SAVY
+        CHSAV = CHPT(J)
+        CHPT(J) = CHPT(J+1)
+        CHPT(J+1) = CHSAV
+      IQUIT = 1
+  140 CONTINUE
+      IF (IQUIT .EQ. 0) GO TO 160
+  150 CONTINUE
+  160 CONTINUE
+C         find extreme values
+      XMAX = XPT(1)
+      XMIN = XMAX
+      DO 200 I= 1, NXYPT
+        IF (XPT(I) .GT. XMAX)  XMAX = XPT(I)
+        IF (XPT(I) .LT. XMIN)  XMIN = XPT(I)
+  200 CONTINUE
+      DXX = 0.001*(XMAX-XMIN)
+      XMAX = XMAX + DXX
+      XMIN = XMIN - DXX
+      CALL MNBINS(XMIN,XMAX,MAXNX,XMIN,XMAX,NX,BWIDX)
+      YMAX = YPT(1)
+      YMIN = YPT(NXYPT)
+      IF (YMAX .EQ. YMIN)  YMAX=YMIN+1.0
+      DYY = 0.001*(YMAX-YMIN)
+      YMAX = YMAX + DYY
+      YMIN = YMIN - DYY
+      CALL MNBINS(YMIN,YMAX,MAXNY,YMIN,YMAX,NY,BWIDY)
+      ANY = NY
+C         if first point is blank, it is an 'origin'
+      IF (CHBEST .EQ. CBLANK)  GO TO 50
+      XBEST = 0.5 * (XMAX+XMIN)
+      YBEST = 0.5 * (YMAX+YMIN)
+   50 CONTINUE
+C         find scale constants
+      AX = 1.0/BWIDX
+      AY = 1.0/BWIDY
+      BX = -AX*XMIN + 2.0
+      BY = -AY*YMIN - 2.0
+C         convert points to grid positions
+      DO 300 I= 1, NXYPT
+      XPT(I) = AX*XPT(I) + BX
+  300 YPT(I) = ANY-AY*YPT(I) - BY
+      NXBEST = AX*XBEST + BX
+      NYBEST = ANY  - AY*YBEST - BY
+C         print the points
+      NY = NY + 2
+      NX = NX + 2
+      ISP1 = 1
+      LINODD = 1
+      OVERPR=.FALSE.
+      DO 400 I= 1, NY
+      DO 310 IBK= 1, NX
+  310 CLINE (IBK:IBK) = CBLANK
+      CLINE(1:1) = CDOT
+      CLINE(NX:NX) = CDOT
+      CLINE(NXBEST:NXBEST) = CDOT
+      IF (I.NE.1 .AND. I.NE.NYBEST .AND. I.NE.NY)  GO TO 320
+      DO 315 J= 1, NX
+  315 CLINE(J:J) = CDOT
+  320 CONTINUE
+      YPRT = YMAX - FLOAT(I-1)*BWIDY
+      IF (ISP1 .GT. NXYPT)  GO TO 350
+C         find the points to be plotted on this line
+        DO 341 K= ISP1,NXYPT
+      KS = YPT(K)
+      IF (KS .GT. I)  GO TO 345
+      IX = XPT(K)
+      IF (CLINE(IX:IX) .EQ.   CDOT)  GO TO 340
+      IF (CLINE(IX:IX) .EQ. CBLANK)  GO TO 340
+      IF (CLINE(IX:IX) .EQ.CHPT(K))  GO TO 341
+      OVERPR = .TRUE.
+C         OVERPR is true if one or more positions contains more than
+C            one point
+      CLINE(IX:IX) = '&'
+      GO TO 341
+  340 CLINE(IX:IX) = CHPT(K)
+  341 CONTINUE
+        ISP1 = NXYPT + 1
+        GO TO 350
+  345   ISP1 = K
+  350 CONTINUE
+      IF (LINODD .EQ. 1 .OR. I .EQ. NY)  GO TO 380
+      LINODD = 1
+      WRITE (NUNIT, '(18X,A)')       CLINE(:NX)
+      GO TO 400
+  380 WRITE (NUNIT,'(1X,G14.7,A,A)') YPRT, ' ..', CLINE(:NX)
+      LINODD = 0
+  400 CONTINUE
+C         print labels on x-axis every ten columns
+      DO 410 IBK= 1, NX
+      CLINE(IBK:IBK) = CBLANK
+      IF (MOD(IBK,10) .EQ. 1)  CLINE(IBK:IBK) = CSLASH
+  410 CONTINUE
+      WRITE (NUNIT, '(18X,A)')       CLINE(:NX)
+C
+      DO 430 IBK= 1, 12
+  430 XVALUS(IBK) = XMIN + FLOAT(IBK-1)*10.*BWIDX
+      ITEN = (NX+9) / 10
+      WRITE (NUNIT,'(12X,12G10.4)')  (XVALUS(IBK), IBK=1,ITEN)
+      CHMESS = ' '
+      IF (OVERPR) CHMESS='   Overprint character is &'
+      WRITE (NUNIT,'(25X,A,G13.7,A)') 'ONE COLUMN=',BWIDX, CHMESS
+  500 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnpout.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnpout.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnpout.F	(revision 2403)
@@ -0,0 +1,62 @@
+*
+* $Id: mnpout.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPOUT(IUEXT,CHNAM,VAL,ERR,XLOLIM,XUPLIM,IUINT)
+#include "minuit/d506dp.inc"
+CC     User-called
+CC   Provides the user with information concerning the current status
+CC          of parameter number IUEXT. Namely, it returns:
+CC        CHNAM: the name of the parameter
+CC        VAL: the current (external) value of the parameter
+CC        ERR: the current estimate of the parameter uncertainty
+CC        XLOLIM: the lower bound (or zero if no limits)
+CC        XUPLIM: the upper bound (or zero if no limits)
+CC        IUINT: the internal parameter number (or zero if not variable,
+CC           or negative if undefined).
+CC  Note also:  If IUEXT is negative, then it is -internal parameter
+CC           number, and IUINT is returned as the EXTERNAL number.
+CC     Except for IUINT, this is exactly the inverse of MNPARM
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER*(*) CHNAM
+      XLOLIM = 0.
+      XUPLIM = 0.
+      ERR = 0.
+      IF (IUEXT .EQ. 0)  GO TO 100
+      IF (IUEXT .LT. 0)  THEN
+C                   internal parameter number specified
+         IINT = -IUEXT
+         IF (IINT .GT. NPAR) GO TO 100
+         IEXT = NEXOFI(IINT)
+         IUINT = IEXT
+      ELSE
+C                    external parameter number specified
+         IEXT = IUEXT
+         IF (IEXT .EQ. 0)   GO TO 100
+         IF (IEXT .GT. NU)  GO TO 100
+         IINT = NIOFEX(IEXT)
+         IUINT = IINT
+      ENDIF
+C                     in both cases
+         NVL = NVARL(IEXT)
+         IF (NVL .LT. 0) GO TO 100
+      CHNAM = CPNAM(IEXT)
+      VAL = U(IEXT)
+      IF (IINT .GT. 0)  ERR = WERR(IINT)
+      IF (NVL .EQ. 4) THEN
+         XLOLIM = ALIM(IEXT)
+         XUPLIM = BLIM(IEXT)
+      ENDIF
+      RETURN
+C                parameter is undefined
+  100 IUINT = -1
+      CHNAM = 'undefined'
+      VAL = 0.
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnprin.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnprin.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnprin.F	(revision 2403)
@@ -0,0 +1,194 @@
+*
+* $Id: mnprin.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPRIN  (INKODE,FVAL)
+#include "minuit/d506dp.inc"
+CC        Prints the values of the parameters at the time of the call.
+CC        also prints other relevant information such as function value,
+CC        estimated distance to minimum, parameter errors, step sizes.
+CC
+C         According to the value of IKODE, the printout is:
+C    IKODE=INKODE= 0    only info about function value
+C                  1    parameter values, errors, limits
+C                  2    values, errors, step sizes, internal values
+C                  3    values, errors, step sizes, first derivs.
+C                  4    values, parabolic errors, MINOS errors
+C    when INKODE=5, MNPRIN chooses IKODE=1,2, or 3, according to ISW(2)
+C
+#include "minuit/d506cm.inc"
+C
+      CHARACTER*14 COLHDU(6),COLHDL(6), CX2,CX3,CGETX
+      CHARACTER*11 CNAMBF, CBLANK
+      CHARACTER  CHEDM*10, CHEVAL*15
+      PARAMETER (CGETX='PLEASE GET X..')
+      DATA CBLANK/'          '/
+C
+      IF (NU .EQ. 0)  THEN
+       WRITE (ISYSWR,'(A)') ' THERE ARE CURRENTLY NO PARAMETERS DEFINED'
+       GO TO 700
+      ENDIF
+C                  get value of IKODE based in INKODE, ISW(2)
+      IKODE = INKODE
+      IF (INKODE .EQ. 5) THEN
+         IKODE = ISW(2)+1
+         IF (IKODE .GT. 3)  IKODE=3
+      ENDIF
+C                  set 'default' column headings
+      DO 5 K= 1, 6
+      COLHDU(K) = 'UNDEFINED'
+    5 COLHDL(K) = 'COLUMN HEAD'
+C              print title if Minos errors, and title exists.
+      IF (IKODE.EQ.4 .AND. CTITL.NE.CUNDEF)
+     +            WRITE (ISYSWR,'(/A,A)')  ' MINUIT TASK: ',CTITL
+C              report function value and status
+      IF (FVAL .EQ. UNDEFI) THEN
+         CHEVAL = ' unknown       '
+      ELSE
+         WRITE (CHEVAL,'(G15.7)') FVAL
+      ENDIF
+         IF (EDM .EQ. BIGEDM) THEN
+            CHEDM = ' unknown  '
+         ELSE
+            WRITE (CHEDM, '(E10.2)') EDM
+         ENDIF
+      NC = NFCN-NFCNFR
+      WRITE (ISYSWR,905)  CHEVAL,CFROM,CSTATU,NC,NFCN
+  905 FORMAT (/' FCN=',A,' FROM ',A8,'  STATUS=',A10,I6,' CALLS',
+     +         I9,' TOTAL')
+      M = ISW(2)
+      IF (M.EQ.0 .OR. M.EQ.2 .OR. DCOVAR.EQ.ZERO) THEN
+        WRITE (ISYSWR,907) CHEDM,ISTRAT,COVMES(M)
+  907   FORMAT (21X,'EDM=',A,'    STRATEGY=',I2,6X,A)
+      ELSE
+        DCMAX = 1.
+        DC = MIN(DCOVAR,DCMAX) * 100.
+        WRITE (ISYSWR,908) CHEDM,ISTRAT,DC
+  908   FORMAT (21X,'EDM=',A,'  STRATEGY=',I1,'  ERROR MATRIX',
+     +     ' UNCERTAINTY=',F5.1,'%')
+      ENDIF
+C
+      IF (IKODE .EQ. 0)  GO TO 700
+C               find longest name (for Rene!)
+      NTRAIL = 10
+      DO 20 I= 1, NU
+         IF (NVARL(I) .LT. 0)  GO TO 20
+         DO 15 IC= 10,1,-1
+            IF (CPNAM(I)(IC:IC) .NE. ' ') GO TO 16
+   15    CONTINUE
+         IC = 1
+   16    LBL = 10-IC
+         IF (LBL .LT. NTRAIL)  NTRAIL=LBL
+   20 CONTINUE
+      NADD = NTRAIL/2 + 1
+      IF (IKODE .EQ. 1)  THEN
+         COLHDU(1) = '              '
+         COLHDL(1) = '      ERROR   '
+         COLHDU(2) = '      PHYSICAL'
+         COLHDU(3) = ' LIMITS       '
+         COLHDL(2) = '    NEGATIVE  '
+         COLHDL(3) = '    POSITIVE  '
+      ENDIF
+      IF (IKODE .EQ. 2)  THEN
+         COLHDU(1) = '              '
+         COLHDL(1) = '      ERROR   '
+         COLHDU(2) = '    INTERNAL  '
+         COLHDL(2) = '    STEP SIZE '
+         COLHDU(3) = '    INTERNAL  '
+         COLHDL(3) = '      VALUE   '
+      ENDIF
+      IF (IKODE .EQ. 3)  THEN
+         COLHDU(1) = '              '
+         COLHDL(1) = '      ERROR   '
+         COLHDU(2) = '       STEP   '
+         COLHDL(2) = '       SIZE   '
+         COLHDU(3) = '      FIRST   '
+         COLHDL(3) = '   DERIVATIVE '
+      ENDIF
+      IF (IKODE .EQ. 4)  THEN
+         COLHDU(1) = '    PARABOLIC '
+         COLHDL(1) = '      ERROR   '
+         COLHDU(2) = '        MINOS '
+         COLHDU(3) = 'ERRORS        '
+         COLHDL(2) = '   NEGATIVE   '
+         COLHDL(3) = '   POSITIVE   '
+      ENDIF
+C
+      IF (IKODE .NE. 4)  THEN
+         IF (ISW(2) .LT. 3) COLHDU(1)='  APPROXIMATE '
+         IF (ISW(2) .LT. 1) COLHDU(1)=' CURRENT GUESS'
+      ENDIF
+      NCOL = 3
+      WRITE (ISYSWR, 910) (COLHDU(KK),KK=1,NCOL)
+      WRITE (ISYSWR, 911) (COLHDL(KK),KK=1,NCOL)
+  910 FORMAT (/'  EXT PARAMETER ',     13X       ,6A14)
+  911 FORMAT ( '  NO.   NAME    ','    VALUE    ',6A14)
+C
+C                                        . . . loop over parameters . .
+      DO 200 I= 1, NU
+      IF (NVARL(I) .LT. 0)  GO TO 200
+      L = NIOFEX(I)
+      CNAMBF = CBLANK(1:NADD)//CPNAM(I)
+      IF (L .EQ. 0)  GO TO 55
+C              variable parameter.
+      X1 = WERR(L)
+      CX2 = CGETX
+      CX3 = CGETX
+      IF (IKODE .EQ. 1) THEN
+         IF (NVARL(I) .LE. 1) THEN
+            WRITE (ISYSWR, 952)  I,CNAMBF,U(I),X1
+            GO TO 200
+         ELSE
+         X2 = ALIM(I)
+         X3 = BLIM(I)
+         ENDIF
+      ENDIF
+      IF (IKODE .EQ. 2) THEN
+         X2 = DIRIN(L)
+         X3 = X(L)
+      ENDIF
+      IF (IKODE .EQ. 3) THEN
+         X2 = DIRIN(L)
+         X3 = GRD(L)
+         IF (NVARL(I).GT.1 .AND. ABS(COS(X(L))) .LT. 0.001)
+     +      CX3 = '** at limit **'
+      ENDIF
+      IF (IKODE .EQ. 4) THEN
+         X2 = ERN(L)
+           IF (X2.EQ.ZERO)   CX2=' '
+           IF (X2.EQ.UNDEFI) CX2='   at limit   '
+         X3 = ERP(L)
+           IF (X3.EQ.ZERO)   CX3=' '
+           IF (X3.EQ.UNDEFI) CX3='   at limit   '
+      ENDIF
+      IF (CX2.EQ.CGETX) WRITE (CX2,'(G14.5)') X2
+      IF (CX3.EQ.CGETX) WRITE (CX3,'(G14.5)') X3
+      WRITE (ISYSWR,952)   I,CNAMBF,U(I),X1,CX2,CX3
+  952 FORMAT (I4,1X,A11,2G14.5,2A)
+C               check if parameter is at limit
+      IF (NVARL(I) .LE. 1 .OR. IKODE .EQ. 3)  GO TO 200
+      IF (ABS(COS(X(L))) .LT. 0.001)  WRITE (ISYSWR,1004)
+ 1004 FORMAT (1H ,32X,42HWARNING -   - ABOVE PARAMETER IS AT LIMIT.)
+      GO TO 200
+C
+C                                print constant or fixed parameter.
+   55 CONTINUE
+                          COLHDU(1) = '   constant   '
+      IF (NVARL(I).GT.0)  COLHDU(1) = '     fixed    '
+      IF (NVARL(I).EQ.4 .AND. IKODE.EQ.1) THEN
+        WRITE (ISYSWR,'(I4,1X,A11,G14.5,A,2G14.5)')
+     +     I,CNAMBF,U(I),COLHDU(1),ALIM(I),BLIM(I)
+      ELSE
+        WRITE (ISYSWR,'(I4,1X,A11,G14.5,A)')  I,CNAMBF,U(I),COLHDU(1)
+      ENDIF
+  200 CONTINUE
+C
+      IF (UP.NE.UPDFLT)  WRITE (ISYSWR,'(31X,A,G10.3)') 'ERR DEF=',UP
+  700 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnpsdf.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnpsdf.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnpsdf.F	(revision 2403)
@@ -0,0 +1,91 @@
+*
+* $Id: mnpsdf.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:50  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNPSDF
+#include "minuit/d506dp.inc"
+CC        calculates the eigenvalues of v to see if positive-def.
+CC        if not, adds constant along diagonal to make positive.
+#include "minuit/d506cm.inc"
+      CHARACTER CHBUFF*12
+      DIMENSION S(MNI)
+      EPSMIN = 1.0E-6
+      EPSPDF = MAX(EPSMIN, EPSMA2)
+      DGMIN = VHMAT(1)
+C                        Check if negative or zero on diagonal
+      DO 200 I= 1, NPAR
+      NDEX = I*(I+1)/2
+      IF (VHMAT(NDEX) .LE. ZERO) THEN
+          WRITE (CHBUFF(1:3),'(I3)') I
+          CALL MNWARN('W',CFROM,
+     +'Negative diagonal element'//CHBUFF(1:3)//' in Error Matrix')
+      ENDIF
+      IF (VHMAT(NDEX) .LT. DGMIN)  DGMIN = VHMAT(NDEX)
+  200 CONTINUE
+      IF (DGMIN .LE. ZERO) THEN
+         DG = (ONE+EPSPDF) - DGMIN
+         WRITE (CHBUFF,'(E12.2)') DG
+         CALL MNWARN('W',CFROM,
+     +     CHBUFF//' added to diagonal of error matrix')
+      ELSE
+         DG = ZERO
+      ENDIF
+C                    Store VHMAT in P, make sure diagonal pos.
+      DO 213 I= 1, NPAR
+      NDEX = I*(I-1)/2
+      NDEXD = NDEX + I
+      VHMAT(NDEXD) = VHMAT(NDEXD) + DG
+      IF (VHMAT(NDEXD) .LE. ZERO)   VHMAT(NDEXD) = 1.0
+      S(I) = 1.0/SQRT(VHMAT(NDEXD))
+      DO 213 J= 1, I
+      NDEX =  NDEX + 1
+  213 P(I,J) = VHMAT(NDEX) * S(I)*S(J)
+C      call eigen (p,p,maxint,npar,pstar,-npar)
+      CALL MNEIG(P,MAXINT,NPAR,MAXINT,PSTAR,EPSPDF,IFAULT)
+      PMIN = PSTAR(1)
+      PMAX = PSTAR(1)
+      DO 215 IP= 2, NPAR
+      IF (PSTAR(IP) .LT. PMIN)  PMIN = PSTAR(IP)
+      IF (PSTAR(IP) .GT. PMAX)  PMAX = PSTAR(IP)
+  215 CONTINUE
+      PMAX = MAX(ABS(PMAX), ONE)
+      IF ((PMIN .LE. ZERO .AND. LWARN) .OR.  ISW(5) .GE. 2) THEN
+         WRITE (ISYSWR,550)
+         WRITE (ISYSWR,551) (PSTAR(IP),IP=1,NPAR)
+      ENDIF
+      IF (PMIN .GT. EPSPDF*PMAX)  GO TO 217
+      IF (ISW(2) .EQ. 3)  ISW(2)=2
+      PADD = 1.0E-3*PMAX - PMIN
+      DO 216 IP= 1, NPAR
+      NDEX = IP*(IP+1)/2
+  216 VHMAT(NDEX) = VHMAT(NDEX) *(1.0 + PADD)
+      CSTATU= 'NOT POSDEF'
+      WRITE (CHBUFF,'(G12.5)') PADD
+      CALL MNWARN('W',CFROM,
+     +   'MATRIX FORCED POS-DEF BY ADDING '//CHBUFF//' TO DIAGONAL.')
+  217 CONTINUE
+C
+  550 FORMAT (' EIGENVALUES OF SECOND-DERIVATIVE MATRIX:' )
+  551 FORMAT (7X,6E12.4)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnrazz.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnrazz.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnrazz.F	(revision 2403)
@@ -0,0 +1,51 @@
+*
+* $Id: mnrazz.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNRAZZ(YNEW,PNEW,Y,JH,JL)
+#include "minuit/d506dp.inc"
+CC        Called only by MNSIMP (and MNIMPR) to add a new point
+CC        and remove an old one from the current simplex, and get the
+CC        estimated distance to minimum.
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION PNEW(*), Y(*)
+      DO 10 I=1,NPAR
+   10 P(I,JH) = PNEW(I)
+      Y(JH)=YNEW
+      IF(YNEW .LT. AMIN) THEN
+        DO 15 I=1,NPAR
+   15   X(I) = PNEW(I)
+        CALL MNINEX(X)
+        AMIN = YNEW
+        CSTATU = 'PROGRESS  '
+        JL=JH
+      ENDIF
+      JH = 1
+      NPARP1 = NPAR+1
+   20 DO 25 J=2,NPARP1
+      IF (Y(J) .GT. Y(JH))  JH = J
+   25 CONTINUE
+      EDM = Y(JH) - Y(JL)
+      IF (EDM .LE. ZERO)  GO TO 45
+      DO 35 I= 1, NPAR
+      PBIG = P(I,1)
+      PLIT = PBIG
+      DO 30 J= 2, NPARP1
+      IF (P(I,J) .GT. PBIG)  PBIG = P(I,J)
+      IF (P(I,J) .LT. PLIT)  PLIT = P(I,J)
+   30 CONTINUE
+      DIRIN(I) = PBIG - PLIT
+   35 CONTINUE
+   40 RETURN
+   45 WRITE (ISYSWR, 1000)  NPAR
+      GO TO 40
+ 1000 FORMAT ('   FUNCTION VALUE DOES NOT SEEM TO DEPEND ON ANY OF THE',
+     +    I3,' VARIABLE PARAMETERS.' /10X,'VERIFY THAT STEP SIZES ARE',
+     +    ' BIG ENOUGH AND CHECK FCN LOGIC.'/1X,79(1H*)/1X,79(1H*)/)
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnread.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnread.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnread.F	(revision 2403)
@@ -0,0 +1,192 @@
+*
+* $Id: mnread.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNREAD(FCN,IFLGIN,IFLGUT,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Called from MINUIT.  Reads all user input to MINUIT.
+CC     This routine is highly unstructured and defies normal logic.
+CC
+CC     IFLGIN indicates the function originally requested:
+CC           = 1: read one-line title
+CC             2: read parameter definitions
+CC             3: read MINUIT commands
+CC
+CC     IFLGUT= 1: reading terminated normally
+CC             2: end-of-data on input
+CC             3: unrecoverable read error
+CC             4: unable to process parameter requests
+CC             5: more than 100 incomprehensible commands
+CC internally,
+CC     IFLGDO indicates the subfunction to be performed on the next
+CC         input record: 1: read a one-line title
+CC                       2: read a parameter definition
+CC                       3: read a command
+CC                       4: read in covariance matrix
+CC     for example, when IFLGIN=3, but IFLGDO=1, then it should read
+CC       a title, but this was requested by a command, not by MINUIT.
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      CHARACTER  CRDBUF*80, CUPBUF*10
+      CHARACTER CPROMT(3)*40, CLOWER*26, CUPPER*26
+      LOGICAL LEOF
+      DATA CPROMT/' ENTER MINUIT TITLE, or "SET INPUT n" : ',
+     +            ' ENTER MINUIT PARAMETER DEFINITION:     ',
+     +            ' ENTER MINUIT COMMAND:                  '/
+C
+      DATA CLOWER/'abcdefghijklmnopqrstuvwxyz'/
+      DATA CUPPER/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
+C
+      IFLGUT = 1
+      IFLGDO = IFLGIN
+      LEOF = .FALSE.
+      INCOMP = 0
+C                                           . . . . read next record
+   10 CONTINUE
+      IF (ISW(6) .EQ. 1) THEN
+           WRITE (ISYSWR,'(A)') CPROMT(IFLGDO)
+           IF (IFLGDO .EQ. 2)  LPHEAD = .FALSE.
+      ENDIF
+      CRDBUF = '   '
+      READ (ISYSRD,'(A)',ERR=500,END=45)  CRDBUF
+C
+C                 CUPBUF is the first few characters in upper case
+      CUPBUF(1:10) = CRDBUF(1:10)
+      DO 12 I= 1, 10
+      IF (CRDBUF(I:I) .EQ. '''') GO TO 13
+         DO 11 IC= 1, 26
+         IF (CRDBUF(I:I) .EQ. CLOWER(IC:IC)) CUPBUF(I:I)=CUPPER(IC:IC)
+   11    CONTINUE
+   12 CONTINUE
+   13 CONTINUE
+C                                           . .   preemptive commands
+      LEOF = .FALSE.
+      IF (INDEX(CUPBUF,'*EOF') .EQ. 1)    THEN
+         WRITE (ISYSWR,'(A,I3)') ' *EOF ENCOUNTERED ON UNIT NO.',ISYSRD
+         LPHEAD = .TRUE.
+         GO TO 50
+         ENDIF
+      IF (INDEX(CUPBUF,'SET INP') .EQ. 1)    THEN
+         ICOMND = ICOMND + 1
+         WRITE (ISYSWR, 21) ICOMND,CRDBUF(1:50)
+   21    FORMAT (' **********'/' **',I5,' **',A/' **********')
+         LPHEAD = .TRUE.
+         GO TO 50
+         ENDIF
+      GO TO 80
+C                                    . . hardware EOF on current ISYSRD
+   45 CRDBUF = '*EOF '
+      WRITE (ISYSWR,'(A,I3)') ' END OF DATA ON UNIT NO.',ISYSRD
+C                                     or SET INPUT command
+   50 CONTINUE
+         CALL MNSTIN(CRDBUF,IERR)
+         IF (IERR .EQ. 0)  GO TO 10
+         IF (IERR .EQ. 2)  THEN
+            IF (.NOT. LEOF) THEN
+               WRITE (ISYSWR,'(A,A/)') ' TWO CONSECUTIVE EOFs ON ',
+     +              'PRIMARY INPUT FILE WILL TERMINATE EXECUTION.'
+               LEOF = .TRUE.
+               GO TO 10
+            ENDIF
+         ENDIF
+         IFLGUT = IERR
+         GO TO 900
+   80 IF (IFLGDO .GT. 1) GO TO 100
+C                            read title        . . . . .   IFLGDO = 1
+C              if title is 'SET TITLE', skip and read again
+      IF (INDEX(CUPBUF,'SET TIT') .EQ. 1)  GO TO 10
+      CALL MNSETI(CRDBUF(1:50))
+      WRITE (ISYSWR,'(1X,A50)')  CTITL
+      WRITE (ISYSWR,'(1X,78(1H*))')
+         LPHEAD = .TRUE.
+      IF (IFLGIN .EQ. IFLGDO)  GO TO 900
+      IFLGDO = IFLGIN
+      GO TO 10
+C                            data record is not a title.
+  100 CONTINUE
+      IF (IFLGDO .GT. 2)  GO TO 300
+C                          expect parameter definitions.   IFLGDO = 2
+C              if parameter def is 'PARAMETER', skip and read again
+      IF (INDEX(CUPBUF,'PAR') .EQ. 1)  GO TO 10
+C              if line starts with SET TITLE, read a title first
+      IF (INDEX(CUPBUF,'SET TIT') .EQ. 1)  THEN
+         IFLGDO = 1
+         GO TO 10
+         ENDIF
+C                      we really have parameter definitions now
+      CALL MNPARS(CRDBUF,ICONDP)
+      IF (ICONDP .EQ. 0)  GO TO 10
+C          format error
+      IF (ICONDP .EQ. 1)  THEN
+         IF (ISW(6) .EQ. 1)  THEN
+           WRITE (ISYSWR,'(A)') ' FORMAT ERROR.  IGNORED.  ENTER AGAIN.'
+           GO TO 10
+         ELSE
+           WRITE (ISYSWR,'(A)') ' ERROR IN PARAMETER DEFINITION'
+           IFLGUT = 4
+           GO TO 900
+         ENDIF
+      ENDIF
+C                     ICONDP = 2            . . . end parameter requests
+      IF (ISW(5).GE.0 .AND. ISW(6).LT.1) WRITE (ISYSWR,'(4X,75(1H*))')
+      LPHEAD = .TRUE.
+      IF (IFLGIN .EQ. IFLGDO)  GO TO 900
+      IFLGDO = IFLGIN
+      GO TO 10
+C                                              . . . . .   IFLGDO = 3
+C                                           read commands
+  300 CONTINUE
+      CALL MNCOMD(FCN,CRDBUF,ICONDN,FUTIL)
+CC     ICONDN = 0: command executed normally
+CC              1: command is blank, ignored
+CC              2: command line unreadable, ignored
+CC              3: unknown command, ignored
+CC              4: abnormal termination (e.g., MIGRAD not converged)
+CC              5: command is a request to read PARAMETER definitions
+CC              6: 'SET INPUT' command
+CC              7: 'SET TITLE' command
+CC              8: 'SET COVAR' command
+CC              9: reserved
+CC             10: END command
+CC             11: EXIT or STOP command
+CC             12: RETURN command
+      IF (ICONDN .EQ. 2 .OR. ICONDN .EQ. 3) THEN
+         INCOMP = INCOMP + 1
+         IF (INCOMP .GT. 100) THEN
+            IFLGUT = 5
+            GO TO 900
+            ENDIF
+         ENDIF
+C                         parameter
+      IF (ICONDN .EQ. 5)  IFLGDO = 2
+C                         SET INPUT
+      IF (ICONDN .EQ. 6)  GO TO 50
+C                         SET TITLE
+      IF (ICONDN .EQ. 7)  IFLGDO = 1
+C                                        . . . . . . . . . . set covar
+      IF (ICONDN .EQ. 8) THEN
+         ICOMND = ICOMND + 1
+         WRITE (ISYSWR,405) ICOMND,CRDBUF(1:50)
+  405    FORMAT (1H ,10(1H*)/' **',I5,' **',A)
+         WRITE (ISYSWR, '(1H ,10(1H*))' )
+         NPAR2 = NPAR*(NPAR+1)/2
+         READ (ISYSRD,420,ERR=500,END=45)  (VHMAT(I),I=1,NPAR2)
+  420    FORMAT (BN,7E11.4,3X)
+         ISW(2) = 3
+         DCOVAR = 0.0
+         IF (ISW(5) .GE. 0)  CALL MNMATU(1)
+         IF (ISW(5) .GE. 1)  CALL MNPRIN(2,AMIN)
+         GO TO 10
+         ENDIF
+      IF (ICONDN .LT. 10) GO TO 10
+      GO TO 900
+C                                              . . . . error conditions
+  500 IFLGUT = 3
+  900 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnrn15.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnrn15.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnrn15.F	(revision 2403)
@@ -0,0 +1,30 @@
+*
+* $Id: mnrn15.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNRN15(VAL,INSEED)
+#include "minuit/d506dp.inc"
+C         This is a super-portable random number generator.
+C         It should not overflow on any 32-bit machine.
+C         The cycle is only ~10**9, so use with care!
+C         Note especially that VAL must not be undefined on input.
+C                    Set Default Starting Seed
+      PARAMETER (THREE=3.0)
+      DATA ISEED/12345/
+      IF (VAL .EQ. THREE)  GO TO 100
+C
+      INSEED = ISEED
+      K = ISEED/53668
+      ISEED = 40014*(ISEED-K*53668) - K*12211
+      IF (ISEED .LT. 0) ISEED = ISEED + 2147483563
+      VAL = REAL(ISEED) * 4.656613E-10
+      RETURN
+C               "entry" to set seed, flag is VAL=3.
+  100 ISEED = INSEED
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnrset.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnrset.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnrset.F	(revision 2403)
@@ -0,0 +1,41 @@
+*
+* $Id: mnrset.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNRSET(IOPT)
+#include "minuit/d506dp.inc"
+CC        Called from MNCLER and whenever problem changes, for example
+CC        after SET LIMITS, SET PARAM, CALL FCN 6
+CC    If IOPT=1,
+CC        Resets function value and errors to UNDEFINED
+CC    If IOPT=0, sets only MINOS errors to undefined
+#include "minuit/d506cm.inc"
+      CSTATU = 'RESET     '
+      IF (IOPT .GE. 1)  THEN
+        AMIN = UNDEFI
+        FVAL3 = 2.0*ABS(AMIN) + 1.
+        EDM = BIGEDM
+        ISW(4) = 0
+        ISW(2) = 0
+        DCOVAR = 1.
+        ISW(1) = 0
+      ENDIF
+      LNOLIM = .TRUE.
+      DO 10 I= 1, NPAR
+      IEXT = NEXOFI(I)
+      IF (NVARL(IEXT) .GE. 4) LNOLIM=.FALSE.
+      ERP(I) = ZERO
+      ERN(I) = ZERO
+      GLOBCC(I) = ZERO
+   10 CONTINUE
+      IF (ISW(2) .GE. 1)  THEN
+         ISW(2) = 1
+         DCOVAR = MAX(DCOVAR,HALF)
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnsave.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnsave.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnsave.F	(revision 2403)
@@ -0,0 +1,91 @@
+*
+* $Id: mnsave.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSAVE
+#include "minuit/d506dp.inc"
+CC       Writes current parameter values and step sizes onto file ISYSSA
+CC          in format which can be reread by Minuit for restarting.
+CC       The covariance matrix is also output if it exists.
+CC
+#include "minuit/d506cm.inc"
+      LOGICAL LOPEN,LNAME
+      CHARACTER CGNAME*64, CFNAME*64, CANSWR*1
+C
+      INQUIRE(UNIT=ISYSSA,OPENED=LOPEN,NAMED=LNAME,NAME=CGNAME)
+      IF (LOPEN) THEN
+         IF (.NOT.LNAME) CGNAME='UNNAMED FILE'
+         WRITE (ISYSWR,32) ISYSSA,CGNAME
+   32    FORMAT (' CURRENT VALUES WILL BE SAVED ON UNIT',I3,': ',A/)
+      ELSE
+C                new file, open it
+         WRITE (ISYSWR,35) ISYSSA
+   35    FORMAT (' UNIT',I3,' IS NOT OPENED.')
+         IF (ISW(6) .EQ. 1) THEN
+            WRITE (ISYSWR,'(A)') ' PLEASE GIVE FILE NAME:'
+            READ (ISYSRD,'(A)') CFNAME
+            OPEN (UNIT=ISYSSA,FILE=CFNAME,STATUS='NEW',ERR=600)
+            CGNAME = CFNAME
+         ELSE
+            GO TO 650
+         ENDIF
+      ENDIF
+C                               file is now correctly opened
+      IF (ISW(6) .EQ. 1)  THEN
+         WRITE (ISYSWR,37)  ISYSSA
+   37    FORMAT (' SHOULD UNIT',I3,' BE REWOUND BEFORE WRITING TO IT?' )
+         READ  (ISYSRD,'(A)')  CANSWR
+         IF (CANSWR.EQ.'Y' .OR. CANSWR.EQ.'y') REWIND ISYSSA
+      ENDIF
+C                               and rewound if requested
+      WRITE (ISYSSA,'(10HSET TITLE )',ERR=700)
+      WRITE (ISYSSA,'(A)')  CTITL
+      WRITE (ISYSSA,'(10HPARAMETERS)')
+      NLINES = 3
+C                                write out parameter values
+      DO 200 I= 1, NU
+      IF (NVARL(I) .LT. 0)  GO TO 200
+      NLINES = NLINES + 1
+      IINT = NIOFEX(I)
+      IF (NVARL(I) .GT. 1)  GO TO 100
+C         parameter without limits
+      WRITE (ISYSSA,1001)  I,CPNAM(I),U(I),WERR(IINT)
+      GO TO 200
+C         parameter with limits
+  100 CONTINUE
+      WRITE (ISYSSA,1001) I,CPNAM(I),U(I),WERR(IINT),ALIM(I),BLIM(I)
+ 1001 FORMAT (1X,I5,1H',A10,1H',4E13.5)
+  200 CONTINUE
+      WRITE (ISYSSA,'(A)')  ' '
+      NLINES = NLINES + 1
+C                                  write out covariance matrix, if any
+      IF (ISW(2) .LT. 1)  GO TO 750
+      WRITE (ISYSSA,1003,ERR=700)  NPAR
+ 1003 FORMAT ('SET COVARIANCE',I6)
+      NPAR2 = NPAR*(NPAR+1)/2
+      WRITE (ISYSSA,1004) (VHMAT(I),I=1,NPAR2)
+ 1004 FORMAT (BN,7E11.4,3X)
+      NCOVAR = NPAR2/7 + 1
+      IF (MOD(NPAR2,7) .GT. 0)  NCOVAR = NCOVAR + 1
+      NLINES = NLINES + NCOVAR
+      WRITE (ISYSWR, 501) NLINES,ISYSSA,CGNAME(1:45)
+  501 FORMAT (1X,I5,' RECORDS WRITTEN TO UNIT',I4,':',A)
+      IF (NCOVAR .GT. 0) WRITE (ISYSWR, 502) NCOVAR
+  502 FORMAT (' INCLUDING',I5,' RECORDS FOR THE COVARIANCE MATRIX.'/)
+      GO TO 900
+C                                           some error conditions
+  600 WRITE (ISYSWR,'(A,I4)') ' I/O ERROR: UNABLE TO OPEN UNIT',ISYSSA
+      GO TO 900
+  650 WRITE (ISYSWR,'(A,I4,A)') ' UNIT',ISYSSA,' IS NOT OPENED.'
+      GO TO 900
+  700 WRITE (ISYSWR,'(A,I4)') ' ERROR: UNABLE TO WRITE TO UNIT',ISYSSA
+      GO TO 900
+  750 WRITE (ISYSWR,'(A)') ' THERE IS NO COVARIANCE MATRIX TO SAVE.'
+C
+  900 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnscan.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnscan.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnscan.F	(revision 2403)
@@ -0,0 +1,123 @@
+*
+* $Id: mnscan.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:51  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSCAN(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Scans the values of FCN as a function of one parameter
+CC        and plots the resulting values as a curve using MNPLOT.
+CC        It may be called to scan one parameter or all parameters.
+CC        retains the best function and parameter values found.
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      XLREQ = MIN(WORD7(3),WORD7(4))
+      XHREQ = MAX(WORD7(3),WORD7(4))
+      NCALL = WORD7(2) + 0.01
+      IF (NCALL .LE. 1)  NCALL = 41
+      IF (NCALL .GT. MAXCPT)  NCALL = MAXCPT
+      NCCALL = NCALL
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      IPARWD = WORD7(1) + 0.1
+      IPAR = MAX(IPARWD, 0)
+      IINT = NIOFEX(IPAR)
+      CSTATU = 'NO CHANGE'
+      IF (IPARWD .GT. 0)  GO TO 200
+C
+C         equivalent to a loop over parameters requested
+  100 IPAR = IPAR + 1
+      IF (IPAR .GT. NU)  GO TO 900
+      IINT = NIOFEX(IPAR)
+      IF (IINT .LE. 0)  GO TO 100
+C         set up range for parameter IPAR
+  200 CONTINUE
+      UBEST = U(IPAR)
+      XPT(1) = UBEST
+      YPT(1) = AMIN
+      CHPT(1)= ' '
+      XPT(2) = UBEST
+      YPT(2) = AMIN
+      CHPT(2)= 'X'
+      NXYPT = 2
+      IF (NVARL(IPAR) .GT. 1)  GO TO 300
+C         no limits on parameter
+      IF (XLREQ .EQ. XHREQ)  GO TO 250
+      UNEXT = XLREQ
+      STEP = (XHREQ-XLREQ)/FLOAT(NCALL-1)
+      GO TO 500
+  250 CONTINUE
+      XL = UBEST - WERR(IINT)
+      XH = UBEST+  WERR(IINT)
+      CALL MNBINS(XL,XH,NCALL, UNEXT,UHIGH,NBINS,STEP)
+      NCCALL = NBINS + 1
+      GO TO 500
+C         limits on parameter
+  300 CONTINUE
+      IF (XLREQ .EQ. XHREQ)  GO TO 350
+      XL = MAX(XLREQ,ALIM(IPAR))
+      XH = MIN(XHREQ,BLIM(IPAR))
+      IF (XL .GE. XH)  GO TO 700
+      UNEXT = XL
+      STEP = (XH-XL)/FLOAT(NCALL-1)
+      GO TO 500
+  350 CONTINUE
+      UNEXT = ALIM(IPAR)
+      STEP = (BLIM(IPAR)-ALIM(IPAR))/FLOAT(NCALL-1)
+C         main scanning loop over parameter IPAR
+  500 CONTINUE
+      DO 600 ICALL = 1, NCCALL
+      U(IPAR) = UNEXT
+      NPARX = NPAR
+      CALL FCN(NPARX,GIN,FNEXT,U,4,FUTIL)
+      NFCN = NFCN + 1
+      NXYPT = NXYPT + 1
+      XPT(NXYPT) = UNEXT
+      YPT(NXYPT) = FNEXT
+      CHPT(NXYPT) = '*'
+      IF (FNEXT .LT. AMIN)  THEN
+        AMIN = FNEXT
+        UBEST = UNEXT
+        CSTATU= 'IMPROVED  '
+        ENDIF
+  530 CONTINUE
+      UNEXT = UNEXT + STEP
+  600 CONTINUE
+C         finished with scan of parameter IPAR
+      U(IPAR) = UBEST
+      CALL MNEXIN(X)
+      IF (ISW(5) .GE. 1)  THEN
+        WRITE (ISYSWR,1001)  NEWPAG,IPAR,CPNAM(IPAR)
+        NUNIT = ISYSWR
+        CALL MNPLOT(XPT,YPT,CHPT,NXYPT,NUNIT,NPAGWD,NPAGLN)
+      ENDIF
+      GO TO 800
+  700 CONTINUE
+      WRITE (ISYSWR,1000) IPAR
+  800 CONTINUE
+      IF (IPARWD .LE. 0)  GO TO 100
+C         finished with all parameters
+  900 CONTINUE
+      IF (ISW(5) .GE. 0) CALL MNPRIN(5,AMIN)
+      RETURN
+ 1000 FORMAT (46H REQUESTED RANGE OUTSIDE LIMITS FOR PARAMETER  ,I3/)
+ 1001 FORMAT (I1,'SCAN OF PARAMETER NO.',I3,3H,   ,A10)
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnseek.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnseek.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnseek.F	(revision 2403)
@@ -0,0 +1,101 @@
+*
+* $Id: mnseek.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSEEK(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC   Performs a rough (but global) minimization by monte carlo search.
+CC        Each time a new minimum is found, the search area is shifted
+CC        to be centered at the best value.  Random points are chosen
+CC        uniformly over a hypercube determined by current step sizes.
+CC   The Metropolis algorithm accepts a worse point with probability
+CC      exp(-d/UP), where d is the degradation.  Improved points
+CC      are of course always accepted.  Actual steps are random
+CC      multiples of the nominal steps (DIRIN).
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      PARAMETER (TWOPI=2.0*3.141593)
+      DIMENSION  XBEST(MNI), XMID(MNI)
+      MXFAIL = WORD7(1)
+      IF (MXFAIL .LE. 0)  MXFAIL=100+20*NPAR
+      MXSTEP = 10*MXFAIL
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      ALPHA = WORD7(2)
+      IF (ALPHA .LE. ZERO)  ALPHA=3.
+      IF (ISW(5) .GE. 1)  WRITE (ISYSWR, 3) MXFAIL,MXSTEP,ALPHA
+    3 FORMAT (' MNSEEK: MONTE CARLO MINIMIZATION USING METROPOLIS',
+     + ' ALGORITHM'/' TO STOP AFTER',I6,' SUCCESSIVE FAILURES, OR',
+     + I7,' STEPS'/' MAXIMUM STEP SIZE IS',F9.3,' ERROR BARS.')
+      CSTATU= 'INITIAL  '
+      IF (ISW(5) .GE. 2)  CALL MNPRIN(2,AMIN)
+      CSTATU = 'UNCHANGED '
+      IFAIL = 0
+      RNUM = ZERO
+      RNUM1 = ZERO
+      RNUM2 = ZERO
+      NPARX = NPAR
+      FLAST = AMIN
+C              set up step sizes, starting values
+      DO 10 IPAR =  1, NPAR
+      IEXT = NEXOFI(IPAR)
+      DIRIN(IPAR) = 2.0*ALPHA*WERR(IPAR)
+      IF (NVARL(IEXT) .GT. 1)  THEN
+C              parameter with limits
+         CALL MNDXDI(X(IPAR),IPAR,DXDI)
+         IF (DXDI .EQ. ZERO)  DXDI=1.
+         DIRIN(IPAR) = 2.0*ALPHA*WERR(IPAR)/DXDI
+         IF (ABS(DIRIN(IPAR)).GT.TWOPI)  DIRIN(IPAR)=TWOPI
+         ENDIF
+      XMID(IPAR) = X(IPAR)
+   10 XBEST(IPAR) = X(IPAR)
+C                              search loop
+      DO 500 ISTEP= 1, MXSTEP
+      IF (IFAIL .GE. MXFAIL)  GO TO 600
+        DO 100 IPAR= 1, NPAR
+        CALL MNRN15(RNUM1,ISEED)
+        CALL MNRN15(RNUM2,ISEED)
+  100   X(IPAR) = XMID(IPAR) + 0.5*(RNUM1+RNUM2-1.)*DIRIN(IPAR)
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN,FTRY,U,4,FUTIL)
+      NFCN = NFCN + 1
+      IF (FTRY .LT. FLAST)  THEN
+         IF (FTRY .LT. AMIN)  THEN
+            CSTATU = 'IMPROVEMNT'
+            AMIN = FTRY
+            DO 200 IB= 1, NPAR
+  200       XBEST(IB) = X(IB)
+            IFAIL = 0
+            IF (ISW(5) .GE. 2) CALL MNPRIN(2,AMIN)
+            ENDIF
+         GO TO 300
+      ELSE
+         IFAIL = IFAIL + 1
+C                   Metropolis algorithm
+         BAR = (AMIN-FTRY)/UP
+         CALL MNRN15(RNUM,ISEED)
+         IF (BAR .LT. LOG(RNUM))  GO TO 500
+      ENDIF
+C                    Accept new point, move there
+  300 CONTINUE
+      DO 350 J= 1, NPAR
+      XMID(J) = X(J)
+  350 CONTINUE
+      FLAST = FTRY
+  500 CONTINUE
+C                               end search loop
+  600 CONTINUE
+      IF (ISW(5) .GT. 1) WRITE (ISYSWR,601) IFAIL
+  601 FORMAT(' MNSEEK:',I5,' SUCCESSIVE UNSUCCESSFUL TRIALS.')
+      DO 700 IB= 1, NPAR
+  700 X(IB) = XBEST(IB)
+      CALL MNINEX(X)
+      IF (ISW(5) .GE. 1)  CALL MNPRIN(2,AMIN)
+      IF (ISW(5) .EQ. 0)  CALL MNPRIN(0,AMIN)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnset.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnset.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnset.F	(revision 2403)
@@ -0,0 +1,422 @@
+*
+* $Id: mnset.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:52  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:29  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSET(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Called from MNEXCM
+CC        Interprets the commands that start with SET and SHOW
+CC
+#include "minuit/d506cm.inc"
+C
+      EXTERNAL FCN,FUTIL
+C        file characteristics for SET INPUT
+      LOGICAL LNAME
+      CHARACTER CFNAME*64, CMODE*16
+C       'SET ' or 'SHOW',  'ON ' or 'OFF', 'SUPPRESSED' or 'REPORTED  '
+      CHARACTER CKIND*4,    COPT*3,         CWARN*10
+C        explanation of print level numbers -1:3  and strategies 0:2
+      CHARACTER CPRLEV(-1:3)*34 ,CSTRAT(0:2)*44
+C        identification of debug options
+      PARAMETER (NUMDBG = 6)
+      CHARACTER*40 CDBOPT(0:NUMDBG)
+C        things that can be set or shown
+      CHARACTER*10 CNAME(30)
+      DATA CNAME( 1)/'FCN value '/
+      DATA CNAME( 2)/'PARameters'/
+      DATA CNAME( 3)/'LIMits    '/
+      DATA CNAME( 4)/'COVariance'/
+      DATA CNAME( 5)/'CORrelatio'/
+      DATA CNAME( 6)/'PRInt levl'/
+      DATA CNAME( 7)/'NOGradient'/
+      DATA CNAME( 8)/'GRAdient  '/
+      DATA CNAME( 9)/'ERRor def '/
+      DATA CNAME(10)/'INPut file'/
+      DATA CNAME(11)/'WIDth page'/
+      DATA CNAME(12)/'LINes page'/
+      DATA CNAME(13)/'NOWarnings'/
+      DATA CNAME(14)/'WARnings  '/
+      DATA CNAME(15)/'RANdom gen'/
+      DATA CNAME(16)/'TITle     '/
+      DATA CNAME(17)/'STRategy  '/
+      DATA CNAME(18)/'EIGenvalue'/
+      DATA CNAME(19)/'PAGe throw'/
+      DATA CNAME(20)/'MINos errs'/
+      DATA CNAME(21)/'EPSmachine'/
+      DATA CNAME(22)/'OUTputfile'/
+      DATA CNAME(23)/'BATch     '/
+      DATA CNAME(24)/'INTeractiv'/
+      DATA CNAME(25)/'VERsion   '/
+          DATA NNAME/25/
+C        options not intended for normal users
+      DATA CNAME(26)/'reserve   '/
+      DATA CNAME(27)/'NODebug   '/
+      DATA CNAME(28)/'DEBug     '/
+      DATA CNAME(29)/'SHOw      '/
+      DATA CNAME(30)/'SET       '/
+          DATA NNTOT/30/
+C
+      DATA CPRLEV(-1)/'-1: NO OUTPUT EXCEPT FROM "SHOW"  '/
+      DATA CPRLEV( 0)/' 0: REDUCED OUTPUT                '/
+      DATA CPRLEV( 1)/' 1: NORMAL OUTPUT                 '/
+      DATA CPRLEV( 2)/' 2: EXTRA OUTPUT FOR PROBLEM CASES'/
+      DATA CPRLEV( 3)/' 3: MAXIMUM OUTPUT                '/
+C
+      DATA CSTRAT( 0)/' 0: MINIMIZE THE NUMBER OF CALLS TO FUNCTION'/
+      DATA CSTRAT( 1)/' 1: TRY TO BALANCE SPEED AGAINST RELIABILITY'/
+      DATA CSTRAT( 2)/' 2: MAKE SURE MINIMUM TRUE, ERRORS CORRECT  '/
+C
+      DATA CDBOPT(0)/'REPORT ALL EXCEPTIONAL CONDITIONS      '/
+      DATA CDBOPT(1)/'MNLINE: LINE SEARCH MINIMIZATION       '/
+      DATA CDBOPT(2)/'MNDERI: FIRST DERIVATIVE CALCULATIONS  '/
+      DATA CDBOPT(3)/'MNHESS: SECOND DERIVATIVE CALCULATIONS '/
+      DATA CDBOPT(4)/'MNMIGR: COVARIANCE MATRIX UPDATES      '/
+      DATA CDBOPT(5)/'MNHES1: FIRST DERIVATIVE UNCERTAINTIES '/
+      DATA CDBOPT(6)/'MNCONT: MNCONTOUR PLOT (MNCROS SEARCH) '/
+C
+C
+      DO 2 I= 1, NNTOT
+      IF (INDEX(CWORD(4:10),CNAME(I)(1:3)) .GT. 0)  GO TO 5
+    2 CONTINUE
+      I = 0
+    5 KNAME = I
+C
+C           Command could be SET xxx, SHOW xxx,  HELP SET or HELP SHOW
+      IF (INDEX(CWORD(1:4),'HEL') .GT. 0)  GO TO 2000
+      IF (INDEX(CWORD(1:4),'SHO') .GT. 0)  GO TO 1000
+      IF (INDEX(CWORD(1:4),'SET') .EQ. 0)  GO TO 1900
+C                           ---
+      CKIND = 'SET '
+C                                        . . . . . . . . . . set unknown
+      IF (KNAME .LE. 0)  GO TO 1900
+C                                        . . . . . . . . . . set known
+      GO TO(3000,  20,  30,  40,3000,  60,  70,  80,  90, 100,
+     +       110, 120, 130, 140, 150, 160, 170,3000, 190,3000,
+     +       210, 220, 230, 240,3000,1900, 270, 280, 290, 300) , KNAME
+C
+C                                        . . . . . . . . . . set param
+   20 CONTINUE
+      IPRM = WORD7(1)
+      IF (IPRM .GT. NU)  GO TO 25
+      IF (IPRM .LE. 0)   GO TO 25
+      IF (NVARL(IPRM) .LT. 0)  GO TO 25
+      U(IPRM) = WORD7(2)
+      CALL MNEXIN(X)
+      ISW2 = ISW(2)
+      CALL MNRSET(1)
+C        Keep approximate covariance matrix, even if new param value
+      ISW(2) = MIN(ISW2,1)
+      CFROM = 'SET PARM'
+      NFCNFR = NFCN
+      CSTATU = 'NEW VALUES'
+      GO TO 4000
+   25 WRITE (ISYSWR,'(A/)') ' UNDEFINED PARAMETER NUMBER.  IGNORED.'
+      GO TO 4000
+C                                        . . . . . . . . . . set limits
+   30 CALL MNLIMS
+      GO TO 4000
+C                                        . . . . . . . . . . set covar
+   40 CONTINUE
+C   this command must be handled by MNREAD, and is not Fortran-callable
+      GO TO 3000
+C                                        . . . . . . . . . . set print
+   60 ISW(5) = WORD7(1)
+      GO TO 4000
+C                                        . . . . . . . . . . set nograd
+   70 ISW(3) = 0
+      GO TO 4000
+C                                        . . . . . . . . . . set grad
+   80 CALL MNGRAD(FCN,FUTIL)
+      GO TO 4000
+C                                        . . . . . . . . . . set errdef
+   90 IF (WORD7(1) .EQ. UP)  GO TO 4000
+      IF (WORD7(1) .LE. ZERO)  THEN
+         IF (UP .EQ. UPDFLT)  GO TO 4000
+         UP = UPDFLT
+      ELSE
+         UP = WORD7(1)
+      ENDIF
+      DO 95 I= 1, NPAR
+      ERN(I) = 0.
+   95 ERP(I) = 0.
+      CALL MNWERR
+      GO TO 4000
+C                                        . . . . . . . . . . set input
+C This command must be handled by MNREAD. If it gets this far,
+C         it is illegal.
+  100 CONTINUE
+      GO TO 3000
+C                                        . . . . . . . . . . set width
+  110 NPAGWD = WORD7(1)
+      NPAGWD = MAX(NPAGWD,50)
+      GO TO 4000
+C                                        . . . . . . . . . . set lines
+  120 NPAGLN = WORD7(1)
+      GO TO 4000
+C                                        . . . . . . . . . . set nowarn
+  130 LWARN = .FALSE.
+      GO TO 4000
+C                                        . . . . . . . . . . set warn
+  140 LWARN = .TRUE.
+      CALL MNWARN('W','SHO','SHO')
+      GO TO 4000
+C                                        . . . . . . . . . . set random
+  150 JSEED = INT(WORD7(1))
+      VAL = 3.
+      CALL MNRN15(VAL, JSEED)
+      IF (ISW(5) .GT. 0) WRITE (ISYSWR, 151) JSEED
+  151 FORMAT (' MINUIT RANDOM NUMBER SEED SET TO ',I10)
+      GO TO 4000
+C                                        . . . . . . . . . . set title
+  160 CONTINUE
+C   this command must be handled by MNREAD, and is not Fortran-callable
+      GO TO 3000
+C                                        . . . . . . . . . set strategy
+  170 ISTRAT = WORD7(1)
+      ISTRAT = MAX(ISTRAT,0)
+      ISTRAT = MIN(ISTRAT,2)
+      IF (ISW(5) .GT. 0)  GO TO 1172
+      GO TO 4000
+C                                       . . . . . . . . . set page throw
+  190 NEWPAG = WORD7(1)
+      GO TO 1190
+C                                        . . . . . . . . . . set epsmac
+  210 IF (WORD7(1).GT.ZERO .AND. WORD7(1).LT.0.1) EPSMAC = WORD7(1)
+      EPSMA2 = SQRT(EPSMAC)
+      GO TO 1210
+C                                        . . . . . . . . . . set outputfile
+  220 CONTINUE
+      IUNIT = WORD7(1)
+      ISYSWR = IUNIT
+      ISTKWR(1) = IUNIT
+      IF (ISW(5) .GE. 0) GO TO 1220
+      GO TO 4000
+C                                        . . . . . . . . . . set batch
+  230 ISW(6) = 0
+      IF (ISW(5) .GE. 0)  GO TO 1100
+      GO TO 4000
+C                                        . . . . . . . . . . set interactive
+  240 ISW(6) = 1
+      IF (ISW(5) .GE. 0)  GO TO 1100
+      GO TO 4000
+C                                        . . . . . . . . . . set nodebug
+  270 ISET = 0
+      GO TO 281
+C                                        . . . . . . . . . . set debug
+  280 ISET = 1
+  281 CONTINUE
+      IDBOPT = WORD7(1)
+      IF (IDBOPT .GT. NUMDBG) GO TO 288
+      IF (IDBOPT .GE. 0) THEN
+          IDBG(IDBOPT) = ISET
+          IF (ISET .EQ. 1)  IDBG(0) = 1
+      ELSE
+C             SET DEBUG -1  sets all debug options
+          DO 285 ID= 0, NUMDBG
+  285     IDBG(ID) = ISET
+      ENDIF
+      LREPOR = (IDBG(0) .GE. 1)
+      CALL MNWARN('D','SHO','SHO')
+      GO TO 4000
+  288 WRITE (ISYSWR,289) IDBOPT
+  289 FORMAT (' UNKNOWN DEBUG OPTION',I6,' REQUESTED. IGNORED')
+      GO TO 4000
+C                                        . . . . . . . . . . set show
+  290 CONTINUE
+C                                        . . . . . . . . . . set set
+  300 CONTINUE
+      GO TO 3000
+C                -----------------------------------------------------
+ 1000 CONTINUE
+C               at this point, CWORD must be 'SHOW'
+      CKIND = 'SHOW'
+      IF (KNAME .LE. 0)  GO TO 1900
+      GO TO (1010,1020,1030,1040,1050,1060,1070,1070,1090,1100,
+     +       1110,1120,1130,1130,1150,1160,1170,1180,1190,1200,
+     +       1210,1220,1100,1100,1250,1900,1270,1270,1290,1300),KNAME
+C
+C                                        . . . . . . . . . . show fcn
+ 1010 CONTINUE
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      CALL MNPRIN (0,AMIN)
+      GO TO 4000
+C                                        . . . . . . . . . . show param
+ 1020 CONTINUE
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      CALL MNPRIN (5,AMIN)
+      GO TO 4000
+C                                        . . . . . . . . . . show limits
+ 1030 CONTINUE
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      CALL MNPRIN (1,AMIN)
+      GO TO 4000
+C                                        . . . . . . . . . . show covar
+ 1040 CALL MNMATU(1)
+      GO TO 4000
+C                                        . . . . . . . . . . show corre
+ 1050 CALL MNMATU(0)
+      GO TO 4000
+C                                        . . . . . . . . . . show print
+ 1060 CONTINUE
+      IF (ISW(5) .LT.-1)  ISW(5) = -1
+      IF (ISW(5) .GT. 3)  ISW(5) = 3
+      WRITE (ISYSWR,'(A)') ' ALLOWED PRINT LEVELS ARE:'
+      WRITE (ISYSWR,'(27X,A)') CPRLEV
+      WRITE (ISYSWR,1061)  CPRLEV(ISW(5))
+ 1061 FORMAT (/' CURRENT PRINTOUT LEVEL IS ',A)
+      GO TO 4000
+C                                        . . . . . . . show nograd, grad
+ 1070 CONTINUE
+      IF (ISW(3) .LE. 0) THEN
+         WRITE (ISYSWR, 1081)
+ 1081    FORMAT(' NOGRAD IS SET.  DERIVATIVES NOT COMPUTED IN FCN.')
+      ELSE
+         WRITE (ISYSWR, 1082)
+ 1082    FORMAT('   GRAD IS SET.  USER COMPUTES DERIVATIVES IN FCN.')
+      ENDIF
+      GO TO 4000
+C                                       . . . . . . . . . . show errdef
+ 1090 WRITE (ISYSWR, 1091)  UP
+ 1091 FORMAT (' ERRORS CORRESPOND TO FUNCTION CHANGE OF',G13.5)
+      GO TO 4000
+C                                       . . . . . . . . . . show input,
+C                                                batch, or interactive
+ 1100 CONTINUE
+      INQUIRE(UNIT=ISYSRD,NAMED=LNAME,NAME=CFNAME)
+      CMODE = 'BATCH MODE      '
+      IF (ISW(6) .EQ. 1)  CMODE = 'INTERACTIVE MODE'
+      IF (.NOT. LNAME)  CFNAME='unknown'
+      WRITE (ISYSWR,1002) CMODE,ISYSRD,CFNAME
+ 1002 FORMAT (' INPUT NOW BEING READ IN ',A,' FROM UNIT NO.',I3/
+     + ' FILENAME: ',A)
+      GO TO 4000
+C                                       . . . . . . . . . . show width
+ 1110 WRITE (ISYSWR,1111) NPAGWD
+ 1111 FORMAT (10X,'PAGE WIDTH IS SET TO',I4,' COLUMNS')
+      GO TO 4000
+C                                       . . . . . . . . . . show lines
+ 1120 WRITE (ISYSWR,1121) NPAGLN
+ 1121 FORMAT (10X,'PAGE LENGTH IS SET TO',I4,' LINES')
+      GO TO 4000
+C                                       . . . . . . .show nowarn, warn
+ 1130 CONTINUE
+                 CWARN = 'SUPPRESSED'
+      IF (LWARN) CWARN = 'REPORTED  '
+      WRITE (ISYSWR,1141) CWARN
+ 1141 FORMAT (' MINUIT WARNING MESSAGES ARE ',A)
+      IF (.NOT. LWARN) CALL MNWARN('W','SHO','SHO')
+      GO TO 4000
+C                                      . . . . . . . . . . show random
+ 1150 VAL = 0.
+      CALL MNRN15(VAL,IGRAIN)
+      IKSEED = IGRAIN
+      WRITE (ISYSWR, 1151)  IKSEED
+ 1151 FORMAT (' MINUIT RNDM SEED IS CURRENTLY=',I10/)
+      VAL = 3.0
+      ISEED = IKSEED
+      CALL MNRN15(VAL,ISEED)
+      GO TO 4000
+C                                        . . . . . . . . . show title
+ 1160 WRITE (ISYSWR,'(A,A)') ' TITLE OF CURRENT TASK IS:',CTITL
+      GO TO 4000
+C                                        . . . . . . . show strategy
+ 1170 WRITE (ISYSWR, '(A)') ' ALLOWED STRATEGIES ARE:'
+      WRITE (ISYSWR, '(20X,A)') CSTRAT
+ 1172 WRITE (ISYSWR, 1175) CSTRAT(ISTRAT)
+ 1175 FORMAT (/' NOW USING STRATEGY ',A/)
+      GO TO 4000
+C                                          . . . . . show eigenvalues
+ 1180 CONTINUE
+      ISWSAV = ISW(5)
+      ISW(5) = 3
+      IF (ISW(2) .LT. 1)  THEN
+         WRITE (ISYSWR,'(1X,A)') COVMES(0)
+      ELSE
+         CALL MNPSDF
+      ENDIF
+      ISW(5) = ISWSAV
+      GO TO 4000
+C                                            . . . . . show page throw
+ 1190 WRITE (ISYSWR,'(A,I3)') ' PAGE THROW CARRIAGE CONTROL =',NEWPAG
+      IF (NEWPAG .EQ. 0)
+     +    WRITE (ISYSWR,'(A)') ' NO PAGE THROWS IN MINUIT OUTPUT'
+      GO TO 4000
+C                                        . . . . . . show minos errors
+ 1200 CONTINUE
+      DO 1202 II= 1, NPAR
+      IF (ERP(II).GT.ZERO .OR. ERN(II).LT.ZERO)  GO TO 1204
+ 1202 CONTINUE
+      WRITE (ISYSWR,'(A)')
+     +   '       THERE ARE NO MINOS ERRORS CURRENTLY VALID.'
+      GO TO 4000
+ 1204 CONTINUE
+      CALL MNPRIN(4,AMIN)
+      GO TO 4000
+C                                        . . . . . . . . . show epsmac
+ 1210 WRITE (ISYSWR,'(A,E12.3)')
+     +  ' FLOATING-POINT NUMBERS ASSUMED ACCURATE TO',EPSMAC
+      GO TO 4000
+C                                        . . . . . . show outputfiles
+ 1220 CONTINUE
+      WRITE (ISYSWR,'(A,I4)') '  MINUIT PRIMARY OUTPUT TO UNIT',ISYSWR
+      GO TO 4000
+C                                        . . . . . . show version
+ 1250 CONTINUE
+      WRITE (ISYSWR,'(A,A)') ' THIS IS MINUIT VERSION:',CVRSN
+      GO TO 4000
+C                                        . . . . . . show nodebug, debug
+ 1270 CONTINUE
+      DO 1285 ID= 0, NUMDBG
+      COPT = 'OFF'
+      IF (IDBG(ID) .GE. 1)  COPT = 'ON '
+ 1285 WRITE (ISYSWR,1286) ID, COPT, CDBOPT(ID)
+ 1286 FORMAT (10X,'DEBUG OPTION',I3,' IS ',A3,' :',A)
+      IF (.NOT. LREPOR) CALL MNWARN('D','SHO','SHO')
+      GO TO 4000
+C                                        . . . . . . . . . . show show
+ 1290 CKIND = 'SHOW'
+      GO TO 2100
+C                                        . . . . . . . . . . show set
+ 1300 CKIND = 'SET '
+      GO TO 2100
+
+C                -----------------------------------------------------
+C                              UNKNOWN COMMAND
+ 1900 WRITE (ISYSWR, 1901) CWORD
+ 1901 FORMAT (' THE COMMAND:',A10,' IS UNKNOWN.'/)
+      GO TO 2100
+C                -----------------------------------------------------
+C                    HELP SHOW,  HELP SET,  SHOW SET, or SHOW SHOW
+ 2000 CKIND = 'SET '
+      IF (INDEX(CWORD(4:10),'SHO') .GT. 0)  CKIND = 'SHOW'
+ 2100 WRITE (ISYSWR, 2101)  CKIND,CKIND, (CNAME(KK),KK=1,NNAME)
+ 2101 FORMAT (' THE FORMAT OF THE ',A4,' COMMAND IS:'//
+     +   1X,A4,' xxx    [numerical arguments if any]'//
+     +   ' WHERE xxx MAY BE ONE OF THE FOLLOWING:'/
+     +   (7X,6A12))
+      GO TO 4000
+C                -----------------------------------------------------
+C                               ILLEGAL COMMAND
+ 3000 WRITE (ISYSWR,'('' ABOVE COMMAND IS ILLEGAL.   IGNORED'')')
+ 4000 RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnseti.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnseti.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnseti.F	(revision 2403)
@@ -0,0 +1,18 @@
+*
+* $Id: mnseti.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSETI(TIT)
+#include "minuit/d506dp.inc"
+CC       Called by user to set or change title of current task.
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER*(*) TIT
+      CTITL = TIT
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnsimp.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnsimp.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnsimp.F	(revision 2403)
@@ -0,0 +1,203 @@
+*
+* $Id: mnsimp.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:54  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSIMP(FCN,FUTIL)
+#include "minuit/d506dp.inc"
+CC        Performs a minimization using the simplex method of Nelder
+CC        and Mead (ref. -- Comp. J. 7,308 (1965)).
+CC
+#include "minuit/d506cm.inc"
+      EXTERNAL FCN,FUTIL
+      DIMENSION Y(MNI+1)
+      DATA ALPHA,BETA,GAMMA,RHOMIN,RHOMAX / 1.0, 0.5, 2.0, 4.0, 8.0/
+      IF (NPAR .LE. 0)  RETURN
+      IF (AMIN .EQ. UNDEFI)  CALL MNAMIN(FCN,FUTIL)
+      CFROM = 'SIMPLEX '
+      NFCNFR = NFCN
+      CSTATU= 'UNCHANGED '
+      NPFN=NFCN
+      NPARP1=NPAR+1
+      NPARX = NPAR
+      RHO1 = 1.0 + ALPHA
+      RHO2 = RHO1 + ALPHA*GAMMA
+      WG = 1.0/FLOAT(NPAR)
+      IF (ISW(5) .GE. 0) WRITE(ISYSWR,100) EPSI
+  100 FORMAT(' START SIMPLEX MINIMIZATION.    CONVERGENCE WHEN EDM .LT.'
+     +,E10.2 )
+         DO 2 I= 1, NPAR
+         DIRIN(I) = WERR(I)
+           CALL MNDXDI(X(I),I,DXDI)
+           IF (DXDI .NE. ZERO) DIRIN(I)=WERR(I)/DXDI
+         DMIN = EPSMA2*ABS(X(I))
+         IF (DIRIN(I) .LT. DMIN)  DIRIN(I)=DMIN
+    2    CONTINUE
+C**       choose the initial simplex using single-parameter searches
+    1 CONTINUE
+      YNPP1 = AMIN
+      JL = NPARP1
+      Y(NPARP1) = AMIN
+      ABSMIN = AMIN
+      DO 10 I= 1, NPAR
+      AMING = AMIN
+      PBAR(I) = X(I)
+      BESTX = X(I)
+      KG = 0
+      NS = 0
+      NF = 0
+    4 X(I) = BESTX + DIRIN(I)
+      CALL MNINEX(X)
+      CALL FCN(NPARX,GIN, F, U, 4, FUTIL)
+      NFCN = NFCN + 1
+      IF (F .LT. AMING)  GO TO 6
+C         failure
+      IF (KG .EQ. 1)  GO TO 8
+      KG = -1
+      NF = NF + 1
+      DIRIN(I) = DIRIN(I) * (-0.4)
+      IF (NF .LT. 3)  GO TO 4
+C         stop after three failures
+      BESTX = X(I)
+      DIRIN(I) = DIRIN(I) * 3.0
+      AMING = F
+      GO TO 8
+C
+C         success
+    6 BESTX = X(I)
+      DIRIN(I) = DIRIN(I) * 3.0
+      AMING = F
+      CSTATU= 'PROGRESS  '
+      KG = 1
+      NS = NS + 1
+      IF (NS .LT. 6)  GO TO 4
+C
+C         3 failures or 6 successes or
+C         local minimum found in ith direction
+    8 Y(I) = AMING
+      IF (AMING .LT. ABSMIN)  JL = I
+      IF (AMING .LT. ABSMIN)  ABSMIN = AMING
+      X(I) = BESTX
+      DO 9 K= 1, NPAR
+    9 P(K,I) = X(K)
+   10 CONTINUE
+      JH = NPARP1
+      AMIN=Y(JL)
+      CALL MNRAZZ(YNPP1,PBAR,Y,JH,JL)
+      DO 20 I= 1, NPAR
+   20 X(I) = P(I,JL)
+      CALL MNINEX(X)
+      IF (ISW(5) .GE. 1)  CALL MNPRIN(5,AMIN)
+      EDM = BIGEDM
+      SIG2 = EDM
+      NCYCL=0
+C                                        . . . . .  start main loop
+   50 CONTINUE
+      IF (SIG2 .LT. EPSI .AND. EDM.LT.EPSI)     GO TO 76
+      SIG2 = EDM
+      IF ((NFCN-NPFN) .GT. NFCNMX)  GO TO 78
+C         calculate new point * by reflection
+      DO 60 I= 1, NPAR
+      PB = 0.
+      DO 59 J= 1, NPARP1
+   59 PB = PB + WG * P(I,J)
+      PBAR(I) = PB - WG * P(I,JH)
+   60 PSTAR(I)=(1.+ALPHA)*PBAR(I)-ALPHA*P(I,JH)
+      CALL MNINEX(PSTAR)
+      CALL FCN(NPARX,GIN,YSTAR,U,4,FUTIL)
+      NFCN=NFCN+1
+      IF(YSTAR.GE.AMIN) GO TO 70
+C         point * better than jl, calculate new point **
+      CSTATU = 'PROGRESS  '
+      DO 61 I=1,NPAR
+   61 PSTST(I)=GAMMA*PSTAR(I)+(1.-GAMMA)*PBAR(I)
+      CALL MNINEX(PSTST)
+      CALL FCN(NPARX,GIN,YSTST,U,4,FUTIL)
+      NFCN=NFCN+1
+C         try a parabola through ph, pstar, pstst.  min = prho
+      Y1 = (YSTAR-Y(JH)) * RHO2
+      Y2 = (YSTST-Y(JH)) * RHO1
+      RHO = 0.5 * (RHO2*Y1 -RHO1*Y2) / (Y1 -Y2)
+      IF (RHO .LT. RHOMIN)  GO TO 66
+      IF (RHO .GT. RHOMAX)  RHO = RHOMAX
+      DO 64 I= 1, NPAR
+   64 PRHO(I) = RHO*PBAR(I) + (1.0-RHO)*P(I,JH)
+      CALL MNINEX(PRHO)
+      CALL FCN(NPARX,GIN,YRHO, U,4,FUTIL)
+      NFCN = NFCN + 1
+      IF (YRHO .LT. AMIN)     CSTATU = 'PROGRESS  '
+      IF (YRHO .LT. Y(JL) .AND. YRHO .LT. YSTST)  GO TO 65
+      IF (YSTST .LT. Y(JL))  GO TO 67
+      IF (YRHO .GT. Y(JL))  GO TO 66
+C         accept minimum point of parabola, PRHO
+   65 CALL MNRAZZ (YRHO,PRHO,Y,JH,JL)
+      GO TO 68
+   66 IF (YSTST .LT. Y(JL))  GO TO 67
+      CALL MNRAZZ(YSTAR,PSTAR,Y,JH,JL)
+      GO TO 68
+   67 CALL MNRAZZ(YSTST,PSTST,Y,JH,JL)
+   68 NCYCL=NCYCL+1
+      IF (ISW(5) .LT. 2)  GO TO 50
+      IF (ISW(5) .GE. 3 .OR. MOD(NCYCL, 10) .EQ. 0) CALL MNPRIN(5,AMIN)
+      GO TO 50
+C         point * is not as good as jl
+   70 IF (YSTAR .GE. Y(JH))  GO TO 73
+      JHOLD = JH
+      CALL MNRAZZ(YSTAR,PSTAR,Y,JH,JL)
+      IF (JHOLD .NE. JH)  GO TO 50
+C         calculate new point **
+   73 DO 74 I=1,NPAR
+   74 PSTST(I)=BETA*P(I,JH)+(1.-BETA)*PBAR(I)
+      CALL MNINEX (PSTST)
+      CALL FCN(NPARX,GIN,YSTST,U,4,FUTIL)
+      NFCN=NFCN+1
+      IF(YSTST.GT.Y(JH)) GO TO 1
+C     point ** is better than jh
+      IF (YSTST .LT. AMIN)     CSTATU = 'PROGRESS  '
+      IF (YSTST .LT. AMIN)  GO TO 67
+      CALL MNRAZZ(YSTST,PSTST,Y,JH,JL)
+      GO TO 50
+C                                        . . . . . .  end main loop
+   76 IF (ISW(5) .GE. 0)  WRITE(ISYSWR,'(A)')
+     +                    ' SIMPLEX MINIMIZATION HAS CONVERGED.'
+      ISW(4) = 1
+      GO TO 80
+   78 IF (ISW(5) .GE. 0)  WRITE(ISYSWR,'(A)')
+     +                    ' SIMPLEX TERMINATES WITHOUT CONVERGENCE.'
+      CSTATU= 'CALL LIMIT'
+      ISW(4) = -1
+      ISW(1) = 1
+   80 DO 82 I=1,NPAR
+      PB = 0.
+      DO 81 J=1,NPARP1
+   81 PB = PB + WG * P(I,J)
+   82 PBAR(I) = PB - WG * P(I,JH)
+      CALL MNINEX(PBAR)
+      CALL FCN(NPARX,GIN,YPBAR,U,4,FUTIL)
+      NFCN=NFCN+1
+      IF (YPBAR .LT. AMIN)  CALL MNRAZZ(YPBAR,PBAR,Y,JH,JL)
+      CALL MNINEX(X)
+      IF (NFCNMX+NPFN-NFCN .LT. 3*NPAR)  GO TO 90
+      IF (EDM .GT. 2.0*EPSI)  GO TO 1
+   90 IF (ISW(5) .GE. 0)  CALL MNPRIN(5, AMIN)
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnstat.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnstat.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnstat.F	(revision 2403)
@@ -0,0 +1,42 @@
+*
+* $Id: mnstat.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:31  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSTAT(FMIN,FEDM,ERRDEF,NPARI,NPARX,ISTAT)
+#include "minuit/d506dp.inc"
+CC       User-called
+CC       Provides the user with information concerning the current status
+CC          of the current minimization. Namely, it returns:
+CC        FMIN: the best function value found so far
+CC        FEDM: the estimated vertical distance remaining to minimum
+CC        ERRDEF: the value of UP defining parameter uncertainties
+CC        NPARI: the number of currently variable parameters
+CC        NPARX: the highest (external) parameter number defined by user
+CC        ISTAT: a status integer indicating how good is the covariance
+CC           matrix:  0= not calculated at all
+CC                    1= approximation only, not accurate
+CC                    2= full matrix, but forced positive-definite
+CC                    3= full accurate covariance matrix
+CC
+#include "minuit/d506cm.inc"
+      FMIN = AMIN
+      FEDM = EDM
+      ERRDEF = UP
+      NPARI = NPAR
+      NPARX = NU
+      ISTAT = ISW(2)
+        IF (EDM  .EQ. BIGEDM)  THEN
+            FEDM = UP
+        ENDIF
+        IF (AMIN .EQ. UNDEFI)  THEN
+            FMIN = 0.0
+            FEDM = UP
+            ISTAT= 0
+        ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnstin.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnstin.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnstin.F	(revision 2403)
@@ -0,0 +1,175 @@
+*
+* $Id: mnstin.F,v 1.1.1.1 2003-06-11 14:18:29 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNSTIN(CRDBUF,IERR)
+#include "minuit/d506dp.inc"
+CC Called from MNREAD.
+CC Implements the SET INPUT command to change input units.
+CC If command is: 'SET INPUT'   'SET INPUT 0'   or  '*EOF',
+CC                 or 'SET INPUT , ,  ',
+CC                reverts to previous input unit number,if any.
+CC
+CC      If it is: 'SET INPUT n'  or  'SET INPUT n filename',
+CC                changes to new input file, added to stack
+CC
+CC      IERR = 0: reading terminated normally
+CC             2: end-of-data on primary input file
+CC             3: unrecoverable read error
+CC             4: unable to process request
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER CRDBUF*(*),CUNIT*10,CFNAME*64,CGNAME*64,CANSWR*1
+      CHARACTER CMODE*16
+      LOGICAL LOPEN,LREWIN,NONAME,LNAME,MNUNPT
+      NONAME = .TRUE.
+      IERR = 0
+      IF (INDEX(CRDBUF,'*EOF') .EQ. 1) GO TO 190
+      IF (INDEX(CRDBUF,'*eof') .EQ. 1) GO TO 190
+      LEND = LEN(CRDBUF)
+C                               look for end of SET INPUT command
+        DO 20 IC= 8,LEND
+        IF (CRDBUF(IC:IC) .EQ. ' ') GO TO 25
+        IF (CRDBUF(IC:IC) .EQ. ',') GO TO 53
+   20   CONTINUE
+      GO TO 200
+   25 CONTINUE
+C         look for end of separator between command and first argument
+      ICOL = IC+1
+         DO 50 IC= ICOL,LEND
+         IF (CRDBUF(IC:IC) .EQ. ' ') GO TO 50
+         IF (CRDBUF(IC:IC) .EQ. ',') GO TO 53
+         GO TO 55
+   50 CONTINUE
+      GO TO 200
+   53 IC = IC + 1
+   55 IC1 = IC
+C                      see if "REWIND" was requested in command
+      LREWIN = .FALSE.
+      IF (INDEX(CRDBUF(1:IC1),'REW') .GT. 5)  LREWIN=.TRUE.
+      IF (INDEX(CRDBUF(1:IC1),'rew') .GT. 5)  LREWIN=.TRUE.
+C                      first argument begins in or after col IC1
+      DO 75 IC= IC1,LEND
+      IF (CRDBUF(IC:IC) .EQ. ' ') GO TO 75
+      IF (CRDBUF(IC:IC) .EQ. ',') GO TO 200
+      GO TO 80
+   75 CONTINUE
+      GO TO 200
+   80 IC1 = IC
+C                        first argument really begins in col IC1
+      DO 100 IC= IC1+1,LEND
+      IF (CRDBUF(IC:IC) .EQ. ' ') GO TO 108
+      IF (CRDBUF(IC:IC) .EQ. ',') GO TO 108
+  100 CONTINUE
+      IC = LEND + 1
+  108 IC2 = IC-1
+C                            end of first argument is in col IC2
+  110 CONTINUE
+      CUNIT = CRDBUF(IC1:IC2)
+      WRITE (ISYSWR,'(A,A)') ' UNIT NO. :',CUNIT
+      READ (CUNIT,'(BN,F10.0)',ERR=500) FUNIT
+      IUNIT = FUNIT
+      IF (IUNIT .EQ. 0)  GO TO 200
+C                             skip blanks and commas, find file name
+      DO 120 IC= IC2+1,LEND
+      IF (CRDBUF(IC:IC) .EQ. ' ') GO TO 120
+      IF (CRDBUF(IC:IC) .EQ. ',') GO TO 120
+      GO TO 130
+  120 CONTINUE
+      GO TO 131
+  130 CONTINUE
+      CFNAME = CRDBUF(IC:LEND)
+      NONAME = .FALSE.
+      WRITE (ISYSWR, '(A,A)') ' FILE NAME IS:',CFNAME
+C              ask if file exists, if not ask for name and open it
+  131 CONTINUE
+      INQUIRE(UNIT=IUNIT,OPENED=LOPEN,NAMED=LNAME,NAME=CGNAME)
+      IF (LOPEN) THEN
+         IF (NONAME) THEN
+             GO TO 136
+         ELSE
+             IF (.NOT.LNAME) CGNAME='unknown'
+             WRITE (ISYSWR,132) IUNIT,CGNAME,CFNAME
+  132        FORMAT (' UNIT',I3,' ALREADY OPENED WITH NAME:',A/
+     +                  '                 NEW NAME IGNORED:',A)
+         ENDIF
+      ELSE
+C                new file, open it
+         WRITE (ISYSWR,135) IUNIT
+  135    FORMAT (' UNIT',I3,' IS NOT OPENED.')
+         IF (NONAME) THEN
+            WRITE (ISYSWR,'(A)') ' NO FILE NAME GIVEN IN COMMAND.'
+            IF (ISW(6) .LT. 1)  GO TO 800
+            WRITE (ISYSWR,'(A)') ' PLEASE GIVE FILE NAME:'
+            READ (ISYSRD,'(A)') CFNAME
+         ENDIF
+         OPEN (UNIT=IUNIT,FILE=CFNAME,STATUS='OLD',ERR=600)
+         WRITE (ISYSWR,'(A)') ' FILE OPENED SUCCESSFULLY.'
+      ENDIF
+C                                     . .   file is correctly opened
+  136 IF (LREWIN) GO TO 150
+      IF (ISW(6) .LT. 1)  GO TO 300
+      WRITE (ISYSWR,137)  IUNIT
+  137 FORMAT (' SHOULD UNIT',I3,' BE REWOUND?' )
+      READ  (ISYSRD,'(A)')  CANSWR
+      IF (CANSWR.NE.'Y' .AND. CANSWR.NE.'y') GO TO 300
+  150 REWIND IUNIT
+      GO TO 300
+C                      *EOF
+  190 CONTINUE
+      IF (NSTKRD .EQ. 0)  THEN
+         IERR = 2
+         GO TO 900
+         ENDIF
+C                      revert to previous input file
+  200 CONTINUE
+      IF (NSTKRD .EQ. 0)  THEN
+          WRITE (ISYSWR, '(A,A)') ' COMMAND IGNORED:',CRDBUF
+          WRITE (ISYSWR, '(A)') ' ALREADY READING FROM PRIMARY INPUT'
+      ELSE
+        ISYSRD = ISTKRD(NSTKRD)
+        NSTKRD = NSTKRD - 1
+        IF (NSTKRD .EQ. 0)  ISW(6) = IABS(ISW(6))
+        IF (ISW(5) .GE. 0)  THEN
+          INQUIRE(UNIT=ISYSRD,NAMED=LNAME,NAME=CFNAME)
+          CMODE = 'BATCH MODE      '
+          IF (ISW(6) .EQ. 1)  CMODE = 'INTERACTIVE MODE'
+          IF (.NOT.LNAME) CFNAME='unknown'
+          IF (MNUNPT(CFNAME))  CFNAME='unprintable'
+          WRITE (ISYSWR,290) CMODE,ISYSRD,CFNAME
+  290     FORMAT (' INPUT WILL NOW BE READ IN ',A,' FROM UNIT NO.',I3/
+     +    ' FILENAME: ',A)
+        ENDIF
+      ENDIF
+      GO TO 900
+C                      switch to new input file, add to stack
+  300 CONTINUE
+      IF (NSTKRD .GE. MAXSTK)  THEN
+          WRITE (ISYSWR, '(A)') ' INPUT FILE STACK SIZE EXCEEDED.'
+          GO TO 800
+          ENDIF
+      NSTKRD = NSTKRD + 1
+      ISTKRD(NSTKRD) = ISYSRD
+      ISYSRD = IUNIT
+C                   ISW(6) = 0 for batch, =1 for interactive, and
+C                      =-1 for originally interactive temporarily batch
+      IF (ISW(6) .EQ. 1)  ISW(6) = -1
+      GO TO 900
+C                      format error
+  500 CONTINUE
+      WRITE (ISYSWR,'(A,A)') ' CANNOT READ FOLLOWING AS INTEGER:',CUNIT
+      GO TO 800
+  600 CONTINUE
+      WRITE (ISYSWR, 601) CFNAME
+  601 FORMAT (' SYSTEM IS UNABLE TO OPEN FILE:',A)
+C                      serious error
+  800 CONTINUE
+      IERR = 3
+  900 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mntiny.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mntiny.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mntiny.F	(revision 2403)
@@ -0,0 +1,19 @@
+*
+* $Id: mntiny.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNTINY(EPSP1,EPSBAK)
+#include "minuit/d506dp.inc"
+CC        Compares its argument with the value 1.0, and returns
+CC        the value .TRUE. if they are equal.  To find EPSMAC
+CC        safely by foiling the Fortran optimizer
+CC
+      PARAMETER (ONE=1.0)
+      EPSBAK =  EPSP1  - ONE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnunpt.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnunpt.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnunpt.F	(revision 2403)
@@ -0,0 +1,28 @@
+*
+* $Id: mnunpt.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      LOGICAL FUNCTION MNUNPT(CFNAME)
+C           is .TRUE. if CFNAME contains unprintable characters.
+      CHARACTER CFNAME*(*)
+      CHARACTER CPT*80, CP1*40,CP2*40
+      PARAMETER (CP1=' ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm')
+      PARAMETER (CP2='nopqrstuvwxyz1234567890./;:[]$%*_!@#&+()')
+      CPT=CP1//CP2
+      MNUNPT = .FALSE.
+      L = LEN(CFNAME)
+      DO 100 I= 1, L
+         DO 50 IC= 1, 80
+         IF (CFNAME(I:I) .EQ. CPT(IC:IC))  GO TO 100
+   50    CONTINUE
+      MNUNPT = .TRUE.
+      GO TO 150
+  100 CONTINUE
+  150 CONTINUE
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnvers.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnvers.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnvers.F	(revision 2403)
@@ -0,0 +1,18 @@
+*
+* $Id: mnvers.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNVERS(CV)
+#include "minuit/d506dp.inc"
+CC         Returns the Minuit version in CV, char*6
+CC
+#include "minuit/d506cm.inc"
+      CHARACTER*(*) CV
+      CV = CVRSN
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnvert.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnvert.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnvert.F	(revision 2403)
@@ -0,0 +1,77 @@
+*
+* $Id: mnvert.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.2  1996/03/15 18:02:54  james
+*     Modified Files:
+* mnderi.F eliminate possible division by zero
+* mnexcm.F suppress print on STOP when print flag=-1
+*          set FVAL3 to flag if FCN already called with IFLAG=3
+* mninit.F set version 96.03
+* mnlims.F remove arguments, not needed
+* mnmigr.F VLEN -> LENV in debug print statement
+* mnparm.F move call to MNRSET to after NPAR redefined, to zero all
+* mnpsdf.F eliminate possible division by zero
+* mnscan.F suppress printout when print flag =-1
+* mnset.F  remove arguments in call to MNLIMS
+* mnsimp.F fix CSTATU so status is PROGRESS only if new minimum
+* mnvert.F eliminate possible division by zero
+*
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNVERT(A,L,M,N,IFAIL)
+#include "minuit/d506dp.inc"
+CC        inverts a symmetric matrix.   matrix is first scaled to
+CC        have all ones on the diagonal (equivalent to change of units)
+CC        but no pivoting is done since matrix is positive-definite.
+CC
+#include "minuit/d506cm.inc"
+      DIMENSION A(L,M) ,PP(MNI), Q(MNI),  S(MNI)
+      IFAIL=0
+      IF (N .LT. 1)  GO TO 100
+      IF (N .GT. MAXINT)  GO TO 100
+C                   scale matrix by sqrt of diag elements
+      DO 8  I=1,N
+      SI = A(I,I)
+      IF (SI) 100,100,8
+    8 S(I) = 1.0/SQRT(SI)
+      DO 20 I= 1, N
+      DO 20 J= 1, N
+   20 A(I,J) = A(I,J) *S(I)*S(J)
+C                                        . . . start main loop . . . .
+      DO 65 I=1,N
+      K = I
+C                   preparation for elimination step1
+      IF (A(K,K) .EQ. ZERO)  GO TO 100
+      Q(K)=1./A(K,K)
+      PP(K) = 1.0
+      A(K,K)=0.0
+      KP1=K+1
+      KM1=K-1
+      IF(KM1)100,50,40
+   40 DO 49 J=1,KM1
+      PP(J)=A(J,K)
+      Q(J)=A(J,K)*Q(K)
+   49 A(J,K)=0.
+   50 IF(K-N)51,60,100
+   51 DO 59 J=KP1,N
+      PP(J)=A(K,J)
+      Q(J)=-A(K,J)*Q(K)
+   59 A(K,J)=0.0
+C                   elimination proper
+   60 DO 65 J=1,N
+      DO 65 K=J,N
+   65 A(J,K)=A(J,K)+PP(J)*Q(K)
+C                   elements of left diagonal and unscaling
+      DO 70 J= 1, N
+      DO 70 K= 1, J
+      A(K,J) = A(K,J) *S(K)*S(J)
+   70 A(J,K) = A(K,J)
+      RETURN
+C                   failure return
+  100 IFAIL=1
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnwarn.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnwarn.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnwarn.F	(revision 2403)
@@ -0,0 +1,89 @@
+*
+* $Id: mnwarn.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNWARN(COPT,CORG,CMES)
+C     If COPT='W', CMES is a WARning message from CORG.
+C     If COPT='D', CMES is a DEBug message from CORG.
+C         If SET WARnings is in effect (the default), this routine
+C             prints the warning message CMES coming from CORG.
+C         If SET NOWarnings is in effect, the warning message is
+C             stored in a circular buffer of length MAXMES.
+C         If called with CORG=CMES='SHO', it prints the messages in
+C             the circular buffer, FIFO, and empties the buffer.
+#include "minuit/d506dp.inc"
+#include "minuit/d506cm.inc"
+      CHARACTER COPT*1, CORG*(*), CMES*(*), CTYP*7
+      PARAMETER (MAXMES=10)
+      CHARACTER     ORIGIN(MAXMES,2)*10, WARMES(MAXMES,2)*60
+      COMMON/MN7WRC/ORIGIN,              WARMES
+      COMMON/MN7WRI/NFCWAR(MAXMES,2),ICIRC(2)
+      CHARACTER ENGLSH*20
+C
+      IF (CORG(1:3).EQ.'SHO' .AND. CMES(1:3).EQ.'SHO')  GO TO 200
+C             Either print warning or put in buffer
+      IF (COPT .EQ. 'W')  THEN
+        ITYP = 1
+        IF (LWARN) THEN
+          WRITE (ISYSWR,'(A,A/A,A)') ' MINUIT WARNING IN ',CORG,
+     +              ' ============== ',CMES
+          RETURN
+        ENDIF
+      ELSE
+        ITYP = 2
+        IF (LREPOR) THEN
+          WRITE (ISYSWR,'(A,A/A,A)') ' MINUIT DEBUG FOR  ',CORG,
+     +              ' ============== ',CMES
+          RETURN
+        ENDIF
+      ENDIF
+C                 if appropriate flag is off, fill circular buffer
+         IF (NWRMES(ITYP) .EQ. 0)  ICIRC(ITYP) = 0
+         NWRMES(ITYP) = NWRMES(ITYP) + 1
+         ICIRC(ITYP) = ICIRC(ITYP) + 1
+         IF (ICIRC(ITYP) .GT. MAXMES) ICIRC(ITYP) = 1
+         IC = ICIRC(ITYP)
+         ORIGIN(IC,ITYP) = CORG
+         WARMES(IC,ITYP) = CMES
+         NFCWAR(IC,ITYP) = NFCN
+      RETURN
+C
+C             'SHO WARnings', ask if any suppressed mess in buffer
+  200 CONTINUE
+      IF (COPT .EQ. 'W') THEN
+        ITYP = 1
+        CTYP = 'WARNING'
+      ELSE
+        ITYP = 2
+        CTYP = '*DEBUG*'
+      ENDIF
+      IF (NWRMES(ITYP) .GT. 0) THEN
+         ENGLSH = ' WAS SUPPRESSED.  '
+         IF (NWRMES(ITYP) .GT. 1) ENGLSH = 'S WERE SUPPRESSED.'
+         WRITE (ISYSWR,'(/1X,I5,A,A,A,A/)') NWRMES(ITYP),
+     +    ' MINUIT ',CTYP,' MESSAGE', ENGLSH
+         NM = NWRMES(ITYP)
+         IC = 0
+         IF (NM .GT. MAXMES) THEN
+              WRITE (ISYSWR,'(A,I2,A)')  ' ONLY THE MOST RECENT ',
+     +          MAXMES,' WILL BE LISTED BELOW.'
+              NM = MAXMES
+              IC = ICIRC(ITYP)
+         ENDIF
+         WRITE (ISYSWR,'(A)') '  CALLS  ORIGIN         MESSAGE'
+           DO 300 I= 1, NM
+           IC = IC + 1
+           IF (IC .GT. MAXMES)  IC = 1
+           WRITE (ISYSWR,'(1X,I6,1X,A,1X,A)')
+     +           NFCWAR(IC,ITYP),ORIGIN(IC,ITYP),WARMES(IC,ITYP)
+ 300       CONTINUE
+         NWRMES(ITYP) = 0
+         WRITE (ISYSWR,'(1H )')
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/mnwerr.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/mnwerr.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/mnwerr.F	(revision 2403)
@@ -0,0 +1,57 @@
+*
+* $Id: mnwerr.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE MNWERR
+#include "minuit/d506dp.inc"
+CC          Calculates the WERR, external parameter errors,
+CC      and the global correlation coefficients, to be called
+CC      whenever a new covariance matrix is available.
+CC
+#include "minuit/d506cm.inc"
+C                         calculate external error if v exists
+      IF (ISW(2) .GE. 1) THEN
+      DO 100 L= 1, NPAR
+        NDEX = L*(L+1)/2
+        DX = SQRT(ABS(VHMAT(NDEX)*UP))
+        I = NEXOFI(L)
+        IF (NVARL(I) .GT. 1)  THEN
+          AL = ALIM(I)
+          BA = BLIM(I) - AL
+          DU1 = AL + 0.5 *(SIN(X(L)+DX) +1.0) * BA - U(I)
+          DU2 = AL + 0.5 *(SIN(X(L)-DX) +1.0) * BA - U(I)
+          IF (DX .GT. 1.0)  DU1 = BA
+          DX = 0.5 * (ABS(DU1) + ABS(DU2))
+        ENDIF
+        WERR(L) = DX
+  100 CONTINUE
+      ENDIF
+C                          global correlation coefficients
+      IF (ISW(2) .GE. 1) THEN
+         DO 130 I= 1, NPAR
+            GLOBCC(I) = 0.
+            K1 = I*(I-1)/2
+            DO 130 J= 1, I
+               K = K1 + J
+               P(I,J) = VHMAT(K)
+  130          P(J,I) = P(I,J)
+         CALL MNVERT(P,MAXINT,MAXINT,NPAR,IERR)
+         IF (IERR .EQ. 0)   THEN
+            DO 150 IIN= 1, NPAR
+               NDIAG = IIN*(IIN+1)/2
+               DENOM = P(IIN,IIN)*VHMAT(NDIAG)
+               IF (DENOM.LE.ONE .AND. DENOM.GE.ZERO)  THEN
+                   GLOBCC(IIN) = 0.
+               ELSE
+                   GLOBCC(IIN) = SQRT(1.0-1.0/DENOM)
+               ENDIF
+  150       CONTINUE
+         ENDIF
+      ENDIF
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/code/stand.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/code/stand.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/code/stand.F	(revision 2403)
@@ -0,0 +1,16 @@
+*
+* $Id: stand.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:30  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE STAND
+#include "minuit/d506dp.inc"
+CC        optional user-supplied subroutine is called whenever the
+CC        command "standard" appears.
+CC
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/examples/Imakefile
===================================================================
--- trunk/SophyaExt/CodeMinuit/examples/Imakefile	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/examples/Imakefile	(revision 2403)
@@ -0,0 +1,14 @@
+SRCS_F= fcnk0.F minexam.F
+OBJS  = fcnk0.o minexam.o
+
+FORTRANSAVEOPTION=FortranSaveFlags
+
+DefinePackageLibrary(NullParameter)
+
+#ifdef CERNLIB_WINNT
+FDEBUGFLAGS=NoOpFortranDebugFlags
+#endif
+
+CernlibFortranProgramTarget(minuit,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter)
+
+TestTarget(minuit,NullParameter,NullParameter)
Index: trunk/SophyaExt/CodeMinuit/examples/fcnk0.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/examples/fcnk0.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/examples/fcnk0.F	(revision 2403)
@@ -0,0 +1,127 @@
+*
+* $Id: fcnk0.F,v 1.1.1.1 2003-06-11 14:18:31 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      SUBROUTINE FCNK0(NPAR,GIN,F,X,IFLAG)
+#include "minuit/d506dp.inc"
+      REAL THPLUI, THMINI
+      DIMENSION X(*),GIN(*)
+      PARAMETER (MXBIN=50)
+      DIMENSION THPLU(MXBIN),THMIN(MXBIN),T(MXBIN),
+     +    EVTP(MXBIN),EVTM(MXBIN)
+      DATA  NBINS,NEVTOT/ 30,250/
+      DATA (EVTP(IGOD),IGOD=1,30)
+     +         /11.,  9., 13., 13., 17.,  9.,  1.,  7.,  8.,  9.,
+     +           6.,  4.,  6.,  3.,  7.,  4.,  7.,  3.,  8.,  4.,
+     +           6.,  5.,  7.,  2.,  7.,  1.,  4.,  1.,  4.,  5./
+      DATA (EVTM(IGOD),IGOD=1,30)
+     +         / 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  1.,
+     +           0.,  2.,  1.,  4.,  4.,  2.,  4.,  2.,  2.,  0.,
+     +           2.,  3.,  7.,  2.,  3.,  6.,  2.,  4.,  1.,  5./
+C
+      XRE = X(1)
+      XIM = X(2)
+      DM = X(5)
+      GAMS = 1.0/X(10)
+      GAML = 1.0/X(11)
+      GAMLS = 0.5*(GAML+GAMS)
+      IF (IFLAG .NE. 1)  GO TO 300
+C                        generate random data
+      STHPLU = 0.
+      STHMIN = 0.
+      DO 200 I= 1, NBINS
+      T(I) = 0.1*REAL(I)
+      TI = T(I)
+      EHALF = EXP(-TI*GAMLS)
+      TH =      ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML)
+      TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS)
+      TH = TH -               4.0*XIM*SIN(DM*TI) * EHALF
+      STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF
+      THPLU(I) = TH + STERM
+      THMIN(I) = TH - STERM
+      STHPLU = STHPLU + THPLU(I)
+      STHMIN = STHMIN + THMIN(I)
+  200 CONTINUE
+      NEVPLU = REAL(NEVTOT)*(STHPLU/(STHPLU+STHMIN))
+      NEVMIN = REAL(NEVTOT)*(STHMIN/(STHPLU+STHMIN))
+      WRITE (6,'(A)') '  LEPTONIC K ZERO DECAYS'
+      WRITE (6,'(A,3I10)') ' PLUS, MINUS, TOTAL=',NEVPLU,NEVMIN,NEVTOT
+      WRITE (6,'(A)')
+     +  '0    TIME        THEOR+      EXPTL+     THEOR-      EXPTL-'
+      SEVTP = 0.
+      SEVTM = 0.
+      DO 250 I= 1, NBINS
+      THPLU(I) = THPLU(I)*REAL(NEVPLU) / STHPLU
+      THMIN(I) = THMIN(I)*REAL(NEVMIN) / STHMIN
+      THPLUI = THPLU(I)
+CCC      CALL POISSN(THPLUI,NP,IERROR)
+CCC      EVTP(I) = NP
+      SEVTP = SEVTP + EVTP(I)
+      THMINI = THMIN(I)
+CCC      CALL POISSN(THMINI,NM,IERROR)
+CCC      EVTM(I) = NM
+      SEVTM = SEVTM + EVTM(I)
+      IF (IFLAG .NE. 4)
+     + WRITE (6,'(1X,5G12.4)') T(I),THPLU(I),EVTP(I),THMIN(I),EVTM(I)
+  250 CONTINUE
+      WRITE (6, '(A,2F10.2)') ' DATA EVTS PLUS, MINUS=', SEVTP,SEVTM
+C                      calculate chisquared
+  300 CONTINUE
+      CHISQ = 0.
+      STHPLU = 0.
+      STHMIN = 0.
+      DO 400 I= 1, NBINS
+      TI = T(I)
+      EHALF = EXP(-TI*GAMLS)
+      TH =      ((1.0-XRE)**2 + XIM**2) * EXP(-TI*GAML)
+      TH = TH + ((1.0+XRE)**2 + XIM**2) * EXP(-TI*GAMS)
+      TH = TH -               4.0*XIM*SIN(DM*TI) * EHALF
+      STERM = 2.0*(1.0-XRE**2-XIM**2)*COS(DM*TI) * EHALF
+      THPLU(I) = TH + STERM
+      THMIN(I) = TH - STERM
+      STHPLU = STHPLU + THPLU(I)
+      STHMIN = STHMIN + THMIN(I)
+  400 CONTINUE
+      THP = 0.
+      THM = 0.
+      EVP = 0.
+      EVM = 0.
+      IF (IFLAG .NE. 4) WRITE (6,'(1H0,10X,A,20X,A)')
+     +  'POSITIVE LEPTONS','NEGATIVE LEPTONS'
+      IF (IFLAG .NE. 4) WRITE (6,'(A,3X,A)')
+     +    '      TIME    THEOR    EXPTL    CHISQ',
+     +    '      TIME    THEOR    EXPTL    CHISQ'
+C
+      DO 450 I= 1, NBINS
+      THPLU(I) = THPLU(I)*SEVTP / STHPLU
+      THMIN(I) = THMIN(I)*SEVTM / STHMIN
+      THP = THP + THPLU(I)
+      THM = THM + THMIN(I)
+      EVP = EVP + EVTP(I)
+      EVM = EVM + EVTM(I)
+C  Sum over bins until at least four events found
+      IF (EVP .GT. 3.)  THEN
+         CHI1 = (EVP-THP)**2/EVP
+         CHISQ = CHISQ + CHI1
+         IF (IFLAG .NE. 4)
+     +      WRITE (6,'(1X,4F9.3)') T(I),THP,EVP,CHI1
+         THP = 0.
+         EVP = 0.
+      ENDIF
+      IF (EVM .GT. 3)  THEN
+         CHI2 = (EVM-THM)**2/EVM
+         CHISQ = CHISQ + CHI2
+         IF (IFLAG .NE. 4)
+     +      WRITE (6,'(42X,4F9.3)') T(I),THM,EVM,CHI2
+         THM = 0.
+         EVM = 0.
+      ENDIF
+  450 CONTINUE
+      F = CHISQ
+      RETURN
+      END
Index: trunk/SophyaExt/CodeMinuit/examples/minexam.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/examples/minexam.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/examples/minexam.F	(revision 2403)
@@ -0,0 +1,47 @@
+*
+* $Id: minexam.F,v 1.1.1.1 2003-06-11 14:18:31 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#include "minuit/pilot.h"
+      PROGRAM MNEXAM
+C             Minuit test case.  Fortran-callable.
+C             Fit randomly-generated leptonic K0 decays to the
+C       time distribution expected for interfering K1 and K2,
+C       with free parameters Re(X), Im(X), DeltaM, and GammaS.
+#include "minuit/d506dp.inc"
+      EXTERNAL FCNK0
+CC    OPEN (UNIT=6,FILE='DSDQ.OUT',STATUS='NEW',FORM='FORMATTED')
+      DIMENSION NPRM(5),VSTRT(5),STP(5)
+      CHARACTER*10 PNAM(5)
+      DATA NPRM /   1   ,    2   ,     5    ,   10     ,  11    /
+      DATA PNAM /'Re(X)', 'Im(X)', 'Delta M','T Kshort','T Klong'/
+      DATA VSTRT/   0.  ,    0.  ,    .535  ,   .892   ,  518.3 /
+      DATA STP  /   0.1 ,    0.1 ,     0.1  ,     0.   ,   0.   /
+      DATA ZERO,ONE,THREE,FIVE / 0., 1., 3., 5. /
+      CALL MNINIT(5,6,7)
+      DO 11  I= 1, 5
+       CALL MNPARM(NPRM(I),PNAM(I),VSTRT(I),STP(I),ZERO,ZERO,IERFLG)
+       IF (IERFLG .NE. 0)  THEN
+          WRITE (6,'(A,I3)')  ' UNABLE TO DEFINE PARAMETER NO.',I
+          STOP
+       ENDIF
+   11 CONTINUE
+C
+      CALL MNSETI('Time Distribution of Leptonic K0 Decays')
+C       Request FCN to read in (or generate random) data (IFLAG=1)
+      CALL MNEXCM(FCNK0, 'CALL FCN', ONE ,1,IERFLG, 0)
+C
+      CALL MNEXCM(FCNK0,'FIX', FIVE ,1,IERFLG,0)
+      CALL MNEXCM(FCNK0,'SET PRINT', ZERO ,1,IERFLG,0)
+      CALL MNEXCM(FCNK0,'MIGRAD', ZERO ,0,IERFLG,0)
+      CALL MNEXCM(FCNK0,'MINOS', ZERO ,0,IERFLG,0)
+      CALL MNEXCM(FCNK0,'RELEASE', FIVE ,1,IERFLG,0)
+      CALL MNEXCM(FCNK0,'MIGRAD', ZERO ,0,IERFLG,0)
+      CALL MNEXCM(FCNK0,'MINOS',  ZERO ,0,IERFLG,0)
+      CALL MNEXCM(FCNK0,'CALL FCN', THREE , 1,IERFLG,0)
+      STOP
+      END
Index: trunk/SophyaExt/CodeMinuit/minuit/Imakefile
===================================================================
--- trunk/SophyaExt/CodeMinuit/minuit/Imakefile	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/minuit/Imakefile	(revision 2403)
@@ -0,0 +1,3 @@
+INCLUDES=	 d506cm.inc d506dp.inc pilot.h
+
+InstallIncludes($(INCLUDES),$(CERN_INCLUDEDIR),minuit)
Index: trunk/SophyaExt/CodeMinuit/minuit/d506cm.inc
===================================================================
--- trunk/SophyaExt/CodeMinuit/minuit/d506cm.inc	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/minuit/d506cm.inc	(revision 2403)
@@ -0,0 +1,52 @@
+*
+* $Id: d506cm.inc,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#ifndef CERNLIB_MINUIT_D506CM_INC
+#define CERNLIB_MINUIT_D506CM_INC
+*
+*
+* d506cm.inc
+*
+      PARAMETER (MNE=100 , MNI=50)
+      PARAMETER (MNIHL=MNI*(MNI+1)/2)
+      CHARACTER*10 CPNAM
+      COMMON
+     1/MN7NAM/ CPNAM(MNE)
+     2/MN7EXT/ U(MNE)     ,ALIM(MNE)  ,BLIM(MNE)
+     3/MN7ERR/ ERP(MNI)   ,ERN(MNI)   ,WERR(MNI)  ,GLOBCC(MNI)
+     4/MN7INX/ NVARL(MNE) ,NIOFEX(MNE),NEXOFI(MNI)
+     5/MN7INT/ X(MNI)     ,XT(MNI)    ,DIRIN(MNI)
+     6/MN7FX2/ XS(MNI)    ,XTS(MNI)   ,DIRINS(MNI)
+     7/MN7DER/ GRD(MNI)   ,G2(MNI)    ,GSTEP(MNI) ,GIN(MNE) ,DGRD(MNI)
+     8/MN7FX3/ GRDS(MNI)  ,G2S(MNI)   ,GSTEPS(MNI)
+     9/MN7FX1/ IPFIX(MNI) ,NPFIX
+     A/MN7VAR/ VHMAT(MNIHL)
+     B/MN7VAT/ VTHMAT(MNIHL)
+     C/MN7SIM/ P(MNI,MNI+1),PSTAR(MNI),PSTST(MNI) ,PBAR(MNI),PRHO(MNI)
+C
+      PARAMETER (MAXDBG=10, MAXSTK=10, MAXCWD=20, MAXP=30, MAXCPT=101)
+      PARAMETER (ZERO=0.0,  ONE=1.0,   HALF=0.5)
+      COMMON
+     D/MN7NPR/ MAXINT ,NPAR   ,MAXEXT ,NU
+     E/MN7IOU/ ISYSRD ,ISYSWR ,ISYSSA ,NPAGWD ,NPAGLN ,NEWPAG
+     E/MN7IO2/ ISTKRD(MAXSTK) ,NSTKRD ,ISTKWR(MAXSTK) ,NSTKWR
+     F/MN7TIT/ CFROM  ,CSTATU ,CTITL  ,CWORD  ,CUNDEF ,CVRSN ,COVMES
+     G/MN7FLG/ ISW(7) ,IDBG(0:MAXDBG) ,NBLOCK ,ICOMND
+     H/MN7MIN/ AMIN   ,UP     ,EDM    ,FVAL3  ,EPSI   ,APSI  ,DCOVAR
+     I/MN7CNV/ NFCN   ,NFCNMX ,NFCNLC ,NFCNFR ,ITAUR,ISTRAT,NWRMES(2)
+     J/MN7ARG/ WORD7(MAXP)
+     K/MN7LOG/ LWARN  ,LREPOR ,LIMSET ,LNOLIM ,LNEWMN ,LPHEAD
+     L/MN7CNS/ EPSMAC ,EPSMA2 ,VLIMLO ,VLIMHI ,UNDEFI ,BIGEDM,UPDFLT
+     M/MN7RPT/ XPT(MAXCPT)    ,YPT(MAXCPT)
+     N/MN7CPT/ CHPT(MAXCPT)
+     o/MN7XCR/ XMIDCR ,YMIDCR ,XDIRCR ,YDIRCR ,KE1CR  ,KE2CR
+      CHARACTER CTITL*50, CWORD*(MAXCWD), CUNDEF*10, CFROM*8,
+     +          CVRSN*6,  COVMES(0:3)*22, CSTATU*10, CHPT*1
+      LOGICAL   LWARN, LREPOR, LIMSET, LNOLIM, LNEWMN, LPHEAD
+
+#endif
Index: trunk/SophyaExt/CodeMinuit/minuit/d506dp.inc
===================================================================
--- trunk/SophyaExt/CodeMinuit/minuit/d506dp.inc	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/minuit/d506dp.inc	(revision 2403)
@@ -0,0 +1,23 @@
+*
+* $Id: d506dp.inc,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+#ifndef CERNLIB_MINUIT_D506DP_INC
+#define CERNLIB_MINUIT_D506DP_INC
+*
+*
+* d506dp.inc
+*
+#if defined(CERNLIB_DOUBLE)
+C ************ DOUBLE PRECISION VERSION *************
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+#endif
+#if !defined(CERNLIB_DOUBLE)
+C ************ SINGLE PRECISION VERSION *************
+#endif
+
+#endif
Index: trunk/SophyaExt/CodeMinuit/minuit/pilot.h
===================================================================
--- trunk/SophyaExt/CodeMinuit/minuit/pilot.h	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/minuit/pilot.h	(revision 2403)
@@ -0,0 +1,7 @@
+#if 0
+#endif
+#if !defined(CERNLIB_SINGLE)
+#ifndef CERNLIB_DOUBLE
+#define CERNLIB_DOUBLE
+#endif
+#endif
Index: trunk/SophyaExt/CodeMinuit/obsolete/old506.F
===================================================================
--- trunk/SophyaExt/CodeMinuit/obsolete/old506.F	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/obsolete/old506.F	(revision 2403)
@@ -0,0 +1,24 @@
+*
+* $Id: old506.F,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+#include "sys/CERNLIB_machine.h"
+#include "_minuit/pilot.h"
+#if defined(CERNLIB_NEVER)
+      SUBROUTINE MINNEW
+C
+      ENTRY MINTS
+      ENTRY MINTL
+      ENTRY MINTSD
+      ENTRY MINTLD
+C
+      EXTERNAL FCN
+C
+      CALL MINUIT(FCN,0)
+      RETURN
+      END
+#endif
Index: trunk/SophyaExt/CodeMinuit/versions/inform.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/inform.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/inform.dat	(revision 2403)
@@ -0,0 +1,12 @@
+*
+* $Id: inform.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:32  mclareni
+* Minuit
+*
+*
+*  General information
+C MINUIT   0.00      000000 00.00 CERN Program Library     D506 MINUIT
+C          FUNCTION MINIMISATION AND ERROR ANALYSIS. F.JAMES CN/CERN
+C
Index: trunk/SophyaExt/CodeMinuit/versions/v204.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v204.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v204.dat	(revision 2403)
@@ -0,0 +1,21 @@
+*
+* $Id: v204.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.04   901031 15.30
+C
+C- Introduce the following patches/flags:
+C   > SMINUIT   : source patch
+C   > FMINUIT   : flags  patch (renamed from MNFLAGS)
+C   > DMINUIT   : documentation patch
+C
+C- Routine changes:
+C   > P=MINUIT,D=MNINIT     Update version
+C   > P=MINUIT,D=MNSAVE     Minor change in FORMAT statement
+C   > P=MINUIT,D=MNCONT     Compute NFCNMX
+C   > P=MINUIT,D=MNLINE     Protect SLAM against null denominators
+C
Index: trunk/SophyaExt/CodeMinuit/versions/v205.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v205.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v205.dat	(revision 2403)
@@ -0,0 +1,16 @@
+*
+* $Id: v205.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.05   910209 18.10
+C
+C- Patch/flag changes:
+C   > IBMVM    : for IBM VM/CMS. IBM=IBMVM or IBMMVS
+C   > VAXVMS   : for Vax VMS   . VAX=VAXVMS or VAXULX.
+C   > HPUX     : for HP/UX
+C   > MIPS     : for MIPS machine
+C
Index: trunk/SophyaExt/CodeMinuit/versions/v206.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v206.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v206.dat	(revision 2403)
@@ -0,0 +1,13 @@
+*
+* $Id: v206.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.06   910723 13.00
+C
+C- Patch/flag changes:
+C   > FMINUIT  : Add AMIGAUX, CDCUX, IBMPC, IBMUX, MACAUX, NECSX
+C
Index: trunk/SophyaExt/CodeMinuit/versions/v207.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v207.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v207.dat	(revision 2403)
@@ -0,0 +1,26 @@
+*
+* $Id: v207.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.07   930723 12.00
+C
+C- Introduce the following decks:
+C     MNPARS   new routine, user-callable, to define a parameter
+C                  specified only by a character-string
+C     MNINPU   new routine, user-callable, to change input unit
+C     MNCOMD   new routine, user-callable, to execute a command
+C                  specified only by a character-string
+C- Major changes in:
+C     MNREAD   which now calls MNPARS instead of MNPARM (then
+C                  MNPARS calls MNPARM, so where is the big deal?)
+C- Small but important changes in:
+C     MNCROS  to keep points inside limits in ALL cases.
+C     MNMNOT  to keep points inside limits in ALL cases.
+C     MNCONT  to get the error flag right
+C     all routines using ISW(6) which can now take on values 1,0,-1
+C- Very Minor changes in many routines
+C
Index: trunk/SophyaExt/CodeMinuit/versions/v208.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v208.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v208.dat	(revision 2403)
@@ -0,0 +1,11 @@
+*
+* $Id: v208.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.08   930803 14.00
+C     MNHELP   new help facility
+C     trivial fix in MNCONT
Index: trunk/SophyaExt/CodeMinuit/versions/v209.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v209.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v209.dat	(revision 2403)
@@ -0,0 +1,10 @@
+*
+* $Id: v209.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.09
+C     MNEXCM   fix to protect against bad input of LLIST
Index: trunk/SophyaExt/CodeMinuit/versions/v210.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v210.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v210.dat	(revision 2403)
@@ -0,0 +1,13 @@
+*
+* $Id: v210.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.10   931125  Minuit 93.11
+C     MNCOMD   fix serious bug in converting command to upper case
+C     MNEXCM, MNLIMS, MNMNOT   removed unused variable references
+C     MNFREE   suppress print message when print level .lt. 1
+C     MNPARM, MNPARS, MNREAD  print header line when appropriate
Index: trunk/SophyaExt/CodeMinuit/versions/v211.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v211.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v211.dat	(revision 2403)
@@ -0,0 +1,14 @@
+*
+* $Id: v211.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.11   940901  Minuit 94.09
+C     MNEMAT and MNPRIN  print one more digit of UP (G10.2 -> G10.3)
+C     MNMNOT   fix bug: sometimes returned wrong value with limits
+C     MNCOMD and MNEXCM  make error return codes consistent
+C     MNSEEK   avoid exponential overflows by using logs
+C     MNCROS   improve convergence criteria (for MNCONT, MINOS)
Index: trunk/SophyaExt/CodeMinuit/versions/v212.dat
===================================================================
--- trunk/SophyaExt/CodeMinuit/versions/v212.dat	(revision 2403)
+++ trunk/SophyaExt/CodeMinuit/versions/v212.dat	(revision 2403)
@@ -0,0 +1,12 @@
+*
+* $Id: v212.dat,v 1.1.1.1 2003-06-11 14:18:32 cmv Exp $
+*
+* $Log: not supported by cvs2svn $
+* Revision 1.1.1.1  1996/03/07 14:31:33  mclareni
+* Minuit
+*
+*
+* Version 2.12   950301  Munuit 95.03
+C     MNEXCM   fix bug: did not RETURN after CALL FCN 3
+C     MNSET    add new command: SHOw VERsion
+C     MNVERS   new routine to return Minuit version identifier.
