//RodentPreBotCNeuron.h
//Jessica Parker, October 5, 2024
//
//This is the header file. It declares the global functions and parameters. Using 'static const' to initialize
//your global parameters that you don't intend to change is an appropriate way to use global variables. The use of global
//variables is controversial, but I feel that the way I am using them is appropriate for a simple program like this. Using
//nonstatic global variables that will be changed in the rest of your code is a less appropriate use of global variables,
//although it still works. This code limits the use of nonstatic global variables to the one or two parameters that
//you may be sweeping. The benefit of setting our parameters as static global variables is that it causes the code to
//run faster and it is much easier to make changes to the equations in RodentPreBotCNeuron_dy.c. However, if you prefer,
//you can make the parameters that you are sweeping arguments for each of the functions defined below.
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <gsl/gsl_errno.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_odeiv.h>
int main (void);
int integrate(int run1, int run2, int run3, int run4, int run5, int run6, int nvar, double tf, double tint, double y[]); //integrates and saves data
int integrateNW(int run1, int run2, int run3, int run4, int run5, int run6, int nvar, double tf, double tint, double y[]); //integrates without saving data
int func(double t, const double y[], double f[], void *params); //equations defined
//Parameters of Differential Equations
static const double capac = 0.018;
static const double ENa = 65.0;
static const double EK = -80.0;
static const double gNaP = 2.12;
static const double gL = 1.1;
static const double gK = 99.0;
static const double gNaF = 108.0;
static const double VmNaF = -45.5;
static const double VhNaF = -67.4;
static const double kmNaF = -7.0;
static const double khNaF = 10.8;
static const double tauhNaF = 0.04;
static const double VmNaP = -48.0;
static const double kmNaP = -4.5;
static const double taumNaP = 0.006;
static const double VmK = -45.5;
static const double kmK = -11.0;
static const double taumK = 0.005;
static const double EL = -61.0;
static const double frdy = 9.6485e13;
static const double vlm = 2.6e-14;
static const double Ipmpmx = 40.0;
static const double Naih = 15.0;
static const double Nae = 130.0;
static const double nhillNa = 1.4;
static const double rtf = 26.0;
static const double alpha = -0.46;
static const double gModWE = 0.0;
static const double gModWI = 0.0;
static const double Iinj = 0.0;