      SUBROUTINE SPHCAR_I [dll export, alias:'I_SphCar'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,a1)
       pointer (pa2,a2)
       pointer (pa3,a3)
       pointer (pb1,b1)
       pointer (pb2,b2)
       pointer (pb3,b3)
       pointer (pi,i)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pi  = argv(7)
	 call sphcar(a1,a2,a3,b1,b2,b3,i)
	 return
      end
      
	SUBROUTINE GEOGSM_I [dll export, alias:'I_GeoGsm'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XGEO)
       pointer (pa2,YGEO)
       pointer (pa3,ZGEO)
       pointer (pb1,XGSM)
       pointer (pb2,YGSM)
       pointer (pb3,ZGSM)
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pi  = argv(7)
	 call GEOGSM(XGEO,YGEO,ZGEO,XGSM,YGSM,ZGSM,J)
      return
      end

      SUBROUTINE SMGSM_I [dll export, alias:'I_SmGsm'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XSM)
       pointer (pa2,YSM)
       pointer (pa3,ZSM)
       pointer (pb1,XGSM)
       pointer (pb2,YGSM)
       pointer (pb3,ZGSM)
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pi  = argv(7)
	 call smgsm(XSM,YSM,ZSM,XGSM,YGSM,ZGSM,J)
      return
      end

      SUBROUTINE MAGSM_I [dll export, alias:'I_MagSm'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XMAG)
       pointer (pa2,YMAG)
       pointer (pa3,ZMAG)
       pointer (pb1,XSM )
       pointer (pb2,YSM )
       pointer (pb3,ZSM )
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
       pi  = argv(7)
	 call magsm(XMAG,YMAG,ZMAG,XSM,YSM,ZSM,J)
      return
      end

      SUBROUTINE GSMGSE_I [dll export, alias:'I_GsmGse'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XGSM)
       pointer (pa2,YGSM)
       pointer (pa3,ZGSM)
       pointer (pb1,XGSE)
       pointer (pb2,YGSE)
       pointer (pb3,ZGSE)
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pi  = argv(7)
	 call GSMGSE(XGSM,YGSM,ZGSM,XGSE,YGSE,ZGSE,J)
      return
      end

      SUBROUTINE GEIGEO_I [dll export, alias:'I_GeiGeo'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XGEI)
       pointer (pa2,YGEI)
       pointer (pa3,ZGEI)
       pointer (pb1,XGEO)
       pointer (pb2,YGEO)
       pointer (pb3,ZGEO)
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
       pi  = argv(7)
	 call geigeo(XGEI,YGEI,ZGEI,XGEO,YGEO,ZGEO,J)
      return
      end

      SUBROUTINE GEOMAG_I [dll export, alias:'I_GeoMag'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XGEO)
       pointer (pa2,YGEO)
       pointer (pa3,ZGEO)
       pointer (pb1,XMAG)
       pointer (pb2,YMAG)
       pointer (pb3,ZMAG)
       pointer (pi,J)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pi  = argv(7)
	 call geomag(XGEO,YGEO,ZGEO,XMAG,YMAG,ZMAG,J)
      return
      end

      SUBROUTINE RECALC_I [dll export, alias:'I_ReCalc'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pi1,IYR)
       pointer (pi2,IDAY)
       pointer (pi3,IHOUR)
       pointer (pi4,IMIN)
       pointer (pi5,ISEC)
       pi1 = argv(1)
       pi2 = argv(2)
       pi3 = argv(3)
       pi4 = argv(4)
       pi5 = argv(5)
	 call recalc(IYR,IDAY,IHOUR,IMIN,ISEC)
      return
      end

      SUBROUTINE BSPCAR_1 [dll export, alias:'I_BSpCar'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,TETA)
       pointer (pa2,PHI)
       pointer (pa3,BR)
       pointer (pb1,BTET)
       pointer (pb2,BPHI)
       pointer (pb3,BX)
       pointer (pb4,BY)
       pointer (pb5,BZ)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 pb4 = argv(7)
	 pb5 = argv(8)
	 call bspcar(TETA,PHI,BR,BTET,BPHI,BX,BY,BZ)
      return
      end
      
      SUBROUTINE BCARSP_1 [dll export, alias:'I_BCarSp'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,X)
       pointer (pa2,Y)
       pointer (pa3,Z)
       pointer (pa4,BX)
       pointer (pa5,BY)
       pointer (pa6,BZ)
       pointer (pb1,BR)
       pointer (pb2,BTET)
       pointer (pb3,BPHI)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
       pa4 = argv(4)
       pa5 = argv(5)
	 pa6 = argv(6)
	 pb1 = argv(7)
	 pb2 = argv(8)
	 pb3 = argv(9)
	 call bcarsp(X,Y,Z,BX,BY,BZ,BR,BTET,BPHI)
      return
      end
      
      SUBROUTINE SUN_I [dll export, alias:'I_Sun'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pi1,IYR)
       pointer (pi2,IDAY)
       pointer (pi3,IHOUR)
       pointer (pi4,IMIN)
       pointer (pi5,ISEC)
       pointer (pa1,GST)
       pointer (pa2,SLONG)
       pointer (pa3,SRASN)
       pointer (pa4,SDEC)
       pi1 = argv(1)
       pi2 = argv(2)
       pi3 = argv(3)
       pi4 = argv(4)
       pi5 = argv(5)
       pa1 = argv(6)
       pa2 = argv(7)
       pa3 = argv(8)
       pa4 = argv(9)
	 call sun(IYR,IDAY,IHOUR,IMIN,ISEC,GST,SLONG,SRASN,SDEC)
      return
      end

      SUBROUTINE DIP_I [dll export, alias:'I_Dip'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,X)
       pointer (pa2,Y)
       pointer (pa3,Z)
       pointer (pb1,BX)
       pointer (pb2,BY)
       pointer (pb3,BZ)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
	 pb1 = argv(5)
       pb2 = argv(6)
	 pb3 = argv(7)
	 call DIP(X,Y,Z,BX,BY,BZ)
      return
      end

      SUBROUTINE IGRF_GSM_I [ dll export, alias:'I_Igrf_gsm'] 
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XGSM)
       pointer (pa2,YGSM)
       pointer (pa3,ZGSM)
       pointer (pb1,HXGSM)
       pointer (pb2,HYGSM)
       pointer (pb3,HZGSM)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 call IGRF_GSM(XGSM,YGSM,ZGSM,HXGSM,HYGSM,HZGSM)
      return
      end

      SUBROUTINE IGRF_GEO_I [ dll export, alias:'I_Igrf_geo']
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,R)
       pointer (pa2,T)
       pointer (pa3,F)
       pointer (pb1,BR)
       pointer (pb2,BT)
       pointer (pb3,BF)
	 pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pb1 = argv(4)
       pb2 = argv(5)
	 pb3 = argv(6)
	 call IGRF_GEO(R,T,F,BR,BT,BF)
      return
      end

      SUBROUTINE T96_MGNP_I [ dll export, alias:'I_T96_mgnp']
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XN_PD)
       pointer (pa2,VEL)
       pointer (pa3,XGSM)
       pointer (pa4,YGSM)
       pointer (pa5,ZGSM)
       pointer (pb1,XMGNP)
       pointer (pb2,YMGNP)
       pointer (pb3,ZMGNP)
       pointer (pb4,DIST)
       pointer (pi1,ID)
	 pa1 = argv(1)
	 pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
       pa5 = argv(5)
       pb1 = argv(6)
       pb2 = argv(7)
	 pb3 = argv(8)
	 pb4 = argv(9)
	 pi1 = argv(10)
       call T96_MGNP (XN_PD,VEL,XGSM,YGSM,ZGSM,
     *XMGNP,YMGNP,ZMGNP,DIST,ID)
      return
      end

      SUBROUTINE SHUETAL_MGNP_I [ dll export, alias:'I_Shuetal_mgnp'] 
     *(argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       pointer (pa1,XN_PD)
       pointer (pa2,VEL)
       pointer (pa3,BZIMF)
       pointer (pa4,XGSM)
       pointer (pa5,YGSM)
       pointer (pa6,ZGSM)
       pointer (pb1,XMGNP)
       pointer (pb2,YMGNP)
       pointer (pb3,ZMGNP)
       pointer (pb4,DIST)
       pointer (pi1,ID)
	 pa1 = argv(1)
	 pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
       pa5 = argv(5)
       pa6 = argv(6)
       pb1 = argv(6)
       pb2 = argv(7)
	 pb3 = argv(9)
	 pb4 = argv(10)
	 pi1 = argv(11)
       call SHUETAL_MGNP (XN_PD,VEL,BZIMF,XGSM,YGSM,ZGSM,
     *XMGNP,YMGNP,ZMGNP,DIST,ID)
      return
      end

      SUBROUTINE T89C_I [dll export, alias:'I_t89c'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
	 pointer (pi1,IOPT)
	 pointer (pa0,PARMOD(10))
       pointer (pa1,PS)
       pointer (pa2,X)
       pointer (pa3,Y)
       pointer (pa4,Z)
       pointer (pb1,BX)
       pointer (pb2,BY)
       pointer (pb3,BZ)
       pi1 = argv(1)
       pa0 = argv(2)
       pa1 = argv(3)
       pa2 = argv(4)
	 pa3 = argv(5)
	 pa4 = argv(6)
       pb1 = argv(7)
       pb2 = argv(8)
	 pb3 = argv(9)
	 call T89C(IOPT,PARMOD,PS,X,Y,Z,BX,BY,BZ)
      return
      end

      SUBROUTINE T96_01_I [dll export, alias:'I_t96_01'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
	 pointer (pi1,IOPT)
	 pointer (pa0,PARMOD(10))
       pointer (pa1,PS)
       pointer (pa2,X)
       pointer (pa3,Y)
       pointer (pa4,Z)
       pointer (pb1,BX)
       pointer (pb2,BY)
       pointer (pb3,BZ)
       pi1 = argv(1)
       pa0 = argv(2)
       pa1 = argv(3)
       pa2 = argv(4)
	 pa3 = argv(5)
	 pa4 = argv(6)
       pb1 = argv(7)
       pb2 = argv(8)
	 pb3 = argv(9)
	 call T96_01(IOPT,PARMOD,PS,X,Y,Z,BX,BY,BZ)
      return
      end

      SUBROUTINE T01_01_I [dll export, alias:'I_t01_01'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
	 pointer (pi1,IOPT)
	 pointer (pa0,PARMOD(10))
       pointer (pa1,PS)
       pointer (pa2,X)
       pointer (pa3,Y)
       pointer (pa4,Z)
       pointer (pb1,BX)
       pointer (pb2,BY)
       pointer (pb3,BZ)
       pi1 = argv(1)
       pa0 = argv(2)
       pa1 = argv(3)
       pa2 = argv(4)
	 pa3 = argv(5)
	 pa4 = argv(6)
       pb1 = argv(7)
       pb2 = argv(8)
	 pb3 = argv(9)
	 call T01_01(IOPT,PARMOD,PS,X,Y,Z,BX,BY,BZ)
      return
      end

      SUBROUTINE LOCATE_I [dll export, alias:'I_Locate'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XN_PD)
       pointer (pa2,VEL)
       pointer (pa3,XGSM)
       pointer (pa4,YGSM)
       pointer (pa5,ZGSM)
       pointer (pa6,XMGNP)
       pointer (pa7,YMGNP)
       pointer (pa8,ZMGNP)
       pointer (pa9,DIST)
     	 pointer (pi1,ID)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
	 pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pa7 = argv(7)
	 pa8 = argv(8)
	 pa9 = argv(9)
	 pi1 = argv(10)
       call Locate(XN_PD,VEL,XGSM,YGSM,ZGSM,XMGNP,YMGNP,ZMGNP,DIST,ID)
      return
      end

      SUBROUTINE CROSSING_I [dll export, alias: 'I_Crossing']
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XGSM)
       pointer (pa2,YGSM)
       pointer (pa3,ZGSM)
       pointer (pa4,PDYN)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
	 pa4 = argv(4)
	 call CROSSING(XGSM,YGSM,ZGSM,PDYN)
	return
      end

 	SUBROUTINE GSMMAG_I [dll export, alias:'I_GSMMag'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integers
       pointer (pa1,XGSM)
       pointer (pa2,YGSM)
       pointer (pa3,ZGSM)
       pointer (pa4,R   )
       pointer (pa5,aLAT )
       pointer (pa6,aMLT )
       pointer (pi1,J)
       pa1 = argv(1)
       pa2 = argv(2)
	 pa3 = argv(3)
	 pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pi1 = argv(7)
       call GSMMAG(xgsm,ygsm,zgsm,r,alat,aMLT,j)
	return
      end

      SUBROUTINE STEP_I[dll export, alias:'I_Step'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,X)
       pointer (pa2,Y)
	 pointer (pa3,Z)
       pointer (pa4,DS)
	 pointer (pa5,ERRIN)
       pointer (pi6,IOPT)
	 pointer (pa7,PARMOD(10))
       pointer (pi8,IEXNAME)
       pointer (pi9,INNAME)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pi6 = argv(6)
       pa7 = argv(7)
       pi8 = argv(8)
       pi9 = argv(9)
	
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.0) 
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T89C,DIP)
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.1) 
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T89C,IGRF_GSM)
	
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.0)  
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T96_01,DIP)
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.1)  
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T96_01,IGRF_GSM)
      
	if (IEXNAME.EQ.1 .AND. INNAME.EQ.0)  
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T01_01,DIP)
	if (IEXNAME.EQ.1 .AND. INNAME.EQ.1)  
     * CALL STEP(X,Y,Z,DS,ERRIN,IOPT,PARMOD,T01_01,IGRF_GSM)
      
	return
	end


      SUBROUTINE RHAND_I[dll export, alias:'I_RHand'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,X)
       pointer (pa2,Y)
	 pointer (pa3,Z)
       pointer (pa4,R1)
	 pointer (pa5,R2)
	 pointer (pa6,R3)
       pointer (pi7,IOPT)
	 pointer (pa8,PARMOD(10))
       pointer (pi9,IEXNAME)
       pointer (pi10,INNAME)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
       pi7 = argv(7)
       pa8 = argv(8)
       pi9 = argv(9)
	 pi10= argv(10)
      
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.0) 
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T89C,DIP)
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.1) 
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T89C,IGRF_GSM)
	
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.0)  
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T96_01,DIP)
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.1)  
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T96_01,IGRF_GSM)
	
	if (IEXNAME.EQ.1 .AND. INNAME.EQ.0)  
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T01_01,DIP)
	if (IEXNAME.EQ.1 .AND. INNAME.EQ.1)  
     * CALL RHAND(X,Y,Z,R1,R2,R3,IOPT,PARMOD,T01_01,IGRF_GSM)

	 return
	end

      SUBROUTINE TRACE_I[dll export, alias:'I_Trace'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,XI)
       pointer (pa2,YI)
       pointer (pa3,ZI)
	 pointer (pa4,DIR)
       pointer (pa5,RLIM)
	 pointer (pa6,R0)
       pointer (pi7,IOPT)
	 pointer (pa8,PARMOD(10))
       pointer (pi9,IEXNAME)
       pointer (pi10,INNAME)
       pointer (pa11,XF)
       pointer (pa12,YF)
       pointer (pa13,ZF)
	 pointer (pa14,XX(*))
       pointer (pa15,YY(*))
	 pointer (pa16,ZZ(*))
       pointer (pi17,L)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
       pi7 = argv(7)
       pa8 = argv(8)
       pi9 = argv(9)
       pi10= argv(10)
       pa11= argv(11)
       pa12= argv(12)
       pa13= argv(13)
       pa14= argv(14)
       pa15= argv(15)
       pa16= argv(16)
       pi17= argv(17)
       
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.0) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T89C,DIP,
     *            XF,YF,ZF,XX,YY,ZZ,L)
	if (IEXNAME.EQ.89 .AND. INNAME.EQ.1) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T89C,IGRF_GSM,
     *            XF,YF,ZF,XX,YY,ZZ,L)
	
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.0) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T96_01,DIP,
     *            XF,YF,ZF,XX,YY,ZZ,L)
	if (IEXNAME.EQ.96 .AND. INNAME.EQ.1) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T96_01,IGRF_GSM,
     *XF,YF,ZF,XX,YY,ZZ,L)

	if (IEXNAME.EQ.1 .AND. INNAME.EQ.0) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T01_01,DIP,
     *            XF,YF,ZF,XX,YY,ZZ,L)
	if (IEXNAME.EQ.1 .AND. INNAME.EQ.1) 
     * CALL TRACE(XI,YI,ZI,DIR,RLIM,R0,IOPT,PARMOD,T01_01,IGRF_GSM,
     *XF,YF,ZF,XX,YY,ZZ,L)

	return
      end

	SUBROUTINE GEOCGM01_I[dll export, alias:'I_GeoCgm01'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pi1,ICOR)
       pointer (pi2,IYEAR)
       pointer (pa3,HI)
	 pointer (pa4,DAT(11,4))
       pointer (pa5,PLA(4))
	 pointer (pa6,PLO(4))
       pi1 = argv(1)
       pi2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
       call GEOCGM01(ICOR,IYEAR,HI,DAT,PLA,PLO)
      return
      end

	SUBROUTINE MLTUT_I [dll export, alias:'I_MltUt'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,STA)
       pointer (pa2,STO)
       pointer (pa3,CLA)
	 pointer (pa4,PLA)
       pointer (pa5,PLO)
	 pointer (pa6,UT)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 call MLTUT(SLA,SLO,CLA,PLA,PLO,UT)
	return
	end

      real function OVL_ANG_I [dll export, alias:'I_Ovl_Ang']
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,SLA)
       pointer (pa2,SLO)
       pointer (pa3,CLA)
	 pointer (pa4,CLO)
       pointer (pa5,RR)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
       OVL_ANG_I = OVL_ANG(sla,slo,cla,clo,rr)
	return
	end
	
	real function cgmgla_i [dll export, alias:'I_CgmGLa'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,CLat)
       pa1 = argv(1)
       cgmgla_i = cgmgla(CLat)
	return
	end

      real function cgmglo_i [dll export, alias:'I_CgmGLo'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,CLon)
       pa1 = argv(1)
       cgmglo_i = cgmglo(CLon)
	return
	end
	
	
      real function AZM_ANG_I [dll export, alias:'I_Azm_Ang']
     * (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,SLA)
       pointer (pa2,SLO)
       pointer (pa3,CLA)
	 pointer (pa4,PLA)
       pointer (pa5,PLO)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
       AZM_ANG_I = AZM_ANG(sla,slo,cla,pla,plo)
	return
	end

      SUBROUTINE MFC_I [dll export, alias:'I_MFc'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,SLA)
       pointer (pa2,SLO)
       pointer (pa3,R  )
	 pointer (pa4,H  )
       pointer (pa5,D  )
	 pointer (pa6,Z  )
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 call MFC(SLA,SLO,R,H,D,Z)
	return
	end

      SUBROUTINE FTPRNT_I [dll export, alias:'I_FtPrnt'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
       pointer (pa1,RH )
	 pointer (pa2,SLA)
       pointer (pa3,SLO)
       pointer (pa4,CLA)
       pointer (pa5,CLO)
	 pointer (pa6,ACLA)
       pointer (pa7,ACLO)
       pointer (pa8,SLAF)
       pointer (pa9,SLOF)
       pointer (pa10,RF )
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pa7 = argv(7)
	 pa8 = argv(8)
	 pa9 = argv(9)
	 pa10= argv(10)
	 call FTPRNT(RH,SLA,SLO,CLA,CLO,ACLA,ACLO,SLAF,SLOF,RF)
	return
	end

      SUBROUTINE GEOLOW_I [dll export, alias:'I_GeoLow'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
	 pointer (pa1,SLAR)
       pointer (pa2,SLOR)
       pointer (pa3,RH )
       pointer (pa4,CLAR)
       pointer (pa5,CLOR)
	 pointer (pa6,RBM)
       pointer (pa7,SLAC)
       pointer (pa8,SLOC)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pa7 = argv(7)
	 pa8 = argv(8)
	 call GEOLOW(SLAR,SLOR,RH,CLAR,CLOR,RBM,SLAC,SLOC)
	return
	end

      SUBROUTINE CORGEO_I [dll export, alias:'I_CorGeo'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
	 pointer (pa1,SLA)
       pointer (pa2,SLO)
       pointer (pa3,RH )
       pointer (pa4,DLA)
       pointer (pa5,DLO)
	 pointer (pa6,CLA)
       pointer (pa7,CLO)
       pointer (pa8,PMI)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pa7 = argv(7)
	 pa8 = argv(8)
	 call CORGEO(SLA,SLO,RH,DLA,DLO,CLA,CLO,PMI)
	return
	end

      SUBROUTINE GEOCOR_I [dll export, alias:'I_GeoCor'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
	 pointer (pa1,SLA)
       pointer (pa2,SLO)
       pointer (pa3,RH )
       pointer (pa4,DLA)
       pointer (pa5,DLO)
	 pointer (pa6,CLA)
       pointer (pa7,CLO)
       pointer (pa8,PMI)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 pa7 = argv(7)
	 pa8 = argv(8)
	 call GEOCOR(SLA,SLO,RH,DLA,DLO,CLA,CLO,PMI)
	return
	end

      SUBROUTINE SHAG_I [dll export, alias:'I_Shag'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
	 pointer (pa1,X)
       pointer (pa2,Y)
       pointer (pa3,Z)
       pointer (pa4,DS)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 call SHAG(X,Y,Z,DS)
	return
	end

      SUBROUTINE RIGHT_I [dll export, alias:'I_Right'] (argc, argv)
      INTEGER*4 argc, argv(*)           !Argc and Argv are integer
	 pointer (pa1,X)
       pointer (pa2,Y)
       pointer (pa3,Z)
       pointer (pa4,R1)
       pointer (pa5,R2)
	 pointer (pa6,R3)
       pa1 = argv(1)
       pa2 = argv(2)
       pa3 = argv(3)
       pa4 = argv(4)
	 pa5 = argv(5)
	 pa6 = argv(6)
	 call RIGHT(X,Y,Z,R1,R2,R3)
	return
	end

      real function TILT_I [dll export, alias:'I_Tilt_Ang'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers     
       COMMON /GEOPACK1/ A(15),PSI1,AA(10),DS31,K1,IY1,BB(8)
       pointer (pi1,IYR)
       pointer (pi2,IDAY)
       pointer (pi3,IHOUR)
       pointer (pi4,IMIN)
       pointer (pi5,ISEC)
       pi1 = argv(1)
       pi2 = argv(2)
       pi3 = argv(3)
       pi4 = argv(4)
       pi5 = argv(5)
	 call recalc(IYR,IDAY,IHOUR,IMIN,ISEC)
 	 TILT_I = PSI1
      return
      end

      SUBROUTINE GETCOM_I [dll export, alias:'I_GetCom'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers   
       COMMON /GEOPACK1/ A(15),PSI1,AA(10),DS31,K1,IY1,BB(8)
	 pointer (pa1,PSI)
       pointer (pa2,DS3)
       pointer (pi3,K)
       pointer (pi4,IY)
	 pa1 = argv(1)
       pa2 = argv(2)
       pi3 = argv(3)
       pi4 = argv(4)
      
	 PSI = PSI1
       DS3 = DS31
       K   = K1
       IY  = IY1
      return 
      end

      SUBROUTINE SETCOM_I [dll export, alias:'I_SetCom'] (argc, argv)
       INTEGER*4 argc, argv(*)           !Argc and Argv are integers   
       COMMON /GEOPACK1/ A(15),PSI1,AA(10),DS31,K1,IY1,BB(8)
	 pointer (pa1,PSI)
       pointer (pa2,DS3)
       pointer (pi3,K)
       pointer (pi4,IY)
	 pa1 = argv(1)
       pa2 = argv(2)
       pi3 = argv(3)
       pi4 = argv(4)
      
       PSI1 = PSI
       DS31 = DS3
       K1   = K
       IY1  = IY
      return 
      end
