NEURON
nocpout.cpp File Reference
#include <../../nrnconf.h>
#include "modl.h"
#include "parse1.hpp"
#include <algorithm>
#include <iterator>
#include <stdlib.h>
#include <string>
#include <vector>
#include <filesystem>
#include <unordered_set>
#include <unordered_map>

Go to the source code of this file.

Classes

struct  Info
 

Macros

#define GETWD(buf)   getcwd(buf, NRN_BUFSIZE)
 
#define IONEREV   0 /* Parameter */
 
#define IONIN   1
 
#define IONOUT   2
 
#define IONCUR   3 /* assigned */
 
#define IONDCUR   4
 
#define SYMITER(arg)
 
#define SYMLISTITER
 
#define NRNFIX(arg)
 

Functions

int check_tables_threads (List *)
 
Listset_ion_variables (int)
 
Listget_ion_variables (int)
 
int decode_limits (Symbol *sym, double *pg1, double *pg2)
 
int decode_tolerance (Symbol *sym, double *pg1)
 
void defs_h (Symbol *)
 
int iontype (char *s1, char *s2)
 
void nrndeclare ()
 
void del_range (List *)
 
void declare_p ()
 
int iondef (int *)
 
void ion_promote (Item *)
 
static void ppvar_semantics (int, const char *semantics, const char *name, const char *type)
 
void nrninit ()
 
void parout ()
 
void check_ion_vars_as_constant (char *ion_name, const List *ion_var_list)
 
static void check_sufficient_ion_read_statements (std::string const &ion_name, List *read_variables, List *write_variables)
 
void check_useion_variables ()
 
void warn_ignore (Symbol *s)
 
void ldifusreg ()
 
void decode_ustr (Symbol *sym, double *pg1, double *pg2, char *s)
 
void units_reg ()
 
static void var_count (Symbol *s)
 
void nrn_list (Item *q1, Item *q2)
 
void bablk (int ba, int type, Item *q1, Item *q2)
 
int ion_declared (Symbol *s)
 
void nrn_use (Item *q1, Item *q2, Item *q3, Item *q4)
 
static Symbolifnew_install (const char *name)
 
Listbegin_dion_stmt ()
 
Listend_dion_stmt (const char *strdel)
 
void nrn_var_assigned (Symbol *s)
 
void slist_data (Symbol *s, int indx, int findx)
 
int slist_search (int n, Symbol *s)
 
static void cvode_conc_map ()
 
void out_nt_ml_frag (List *p)
 
void cvode_emit_interface ()
 
void cvode_proced_emit ()
 
void cvode_interface (Symbol *fun, int num, int neq)
 
void cvode_valid ()
 
void cvode_rw_cur (char(&b)[NRN_BUFSIZE])
 
void net_receive (Item *qarg, Item *qp1, Item *qp2, Item *qstmt, Item *qend)
 
void net_init (Item *qinit, Item *qp2)
 
void fornetcon (Item *keyword, Item *par1, Item *args, Item *par2, Item *stmt, Item *qend)
 
void chk_thread_safe ()
 
void chk_global_state ()
 
void conductance_hint (int blocktype, Item *q1, Item *q2)
 
void possible_local_current (int blocktype, List *symlist)
 
Symbolbreakpoint_current (Symbol *s)
 
void check_range_in_func (Symbol *s)
 
void set_inside_func (Symbol *s)
 
static bool check_func (Symbol *s)
 
void func_needs_setdata ()
 
void hocfunc_setdata_item (Symbol *s, Item *q)
 

Variables

const char * nmodl_version_ = "7.7.0"
 
int vectorize = 1
 
int brkpnt_exists
 
static const char * brkpnt_str_
 
Symbolindepsym
 
Listsymlist []
 
Listldifuslist
 
Listsyminorder
 
Listplotlist
 
Listdefs_list
 
Itemdefs_list_parm_default
 
int electrode_current = 0
 
int thread_data_index = 0
 
Listthread_cleanup_list
 
Listthread_mem_init_list
 
Listtoplocal_
 
int protect_
 
int protect_include_
 
int netrec_need_v
 
Listcurrents
 
Listuseion
 
Listconductance_
 
Listbreakpoint_local_current_
 
static Listrangeparm
 
static Listrangedep
 
static Listrangestate
 
static Listnrnpointers
 
static Listnmodlrandoms
 
static Listnrn_mech_inst_destruct_list
 
static int num_random_vars = 0
 
static char suffix [256]
 
static const char * rsuffix
 
static char * mechname
 
int point_process
 
int artificial_cell
 
static int diamdec = 0
 
static int areadec = 0
 
static int use_bbcorepointer = 0
 
static int ppvar_cnt
 
static Listppvar_semantics_
 
static int for_netcons_
 
static Itemnet_init_q1_
 
static Itemnet_init_q2_
 
static int ba_index_
 
static Listba_list_
 
Liststate_discon_list_
 
int cvode_not_allowed
 
static int cvode_emit
 
static int cvode_ieq_index
 
static int tqitem_index
 
static int watch_index
 
static Listion_synonym
 
int debugging_
 
int net_receive_
 
int net_send_seen_
 
int net_event_seen_
 
int watch_seen_
 
Listwatch_alloc
 
static Itemnet_send_delivered_
 
static int varcount
 
static int parraycount
 
static int prop_size
 
static std::vector< std::pair< int, std::string > > ppvar_data_field_strings
 
static std::vector< std::string > data_field_strings
 
static int cvode_valid_
 
static int using_cvode
 
static int cvode_num_
 
static int cvode_neq_
 
static Symbolcvode_fun_
 
static std::unordered_map< Symbol *, Infofuncs
 
static Symbolin_func_
 

Macro Definition Documentation

◆ GETWD

#define GETWD (   buf)    getcwd(buf, NRN_BUFSIZE)

Definition at line 76 of file nocpout.cpp.

◆ IONCUR

#define IONCUR   3 /* assigned */

Definition at line 96 of file nocpout.cpp.

◆ IONDCUR

#define IONDCUR   4

Definition at line 97 of file nocpout.cpp.

◆ IONEREV

#define IONEREV   0 /* Parameter */

Definition at line 93 of file nocpout.cpp.

◆ IONIN

#define IONIN   1

Definition at line 94 of file nocpout.cpp.

◆ IONOUT

#define IONOUT   2

Definition at line 95 of file nocpout.cpp.

◆ NRNFIX

#define NRNFIX (   arg)
Value:
if (strcmp(n, arg) == 0) \
e = 1;
int const size_t const size_t n
Definition: nrngsl.h:10

Definition at line 2654 of file nocpout.cpp.

◆ SYMITER

#define SYMITER (   arg)
Value:
s = SYM(q); \
if (s->type == arg)
#define ITERATE(itm, lst)
Definition: model.h:18
#define SYM(q)
Definition: model.h:75
List * syminorder
Definition: nocpout.cpp:105
size_t q
s
Definition: multisend.cpp:521

Definition at line 175 of file nocpout.cpp.

◆ SYMLISTITER

#define SYMLISTITER
Value:
for (i = 'A'; i <= 'z'; i++) \
#define i
Definition: md1redef.h:19
List * symlist[]
Definition: symbol.cpp:9

Definition at line 180 of file nocpout.cpp.

Function Documentation

◆ bablk()

void bablk ( int  ba,
int  type,
Item q1,
Item q2 
)

Definition at line 1945 of file nocpout.cpp.

◆ begin_dion_stmt()

List* begin_dion_stmt ( )

Definition at line 2565 of file nocpout.cpp.

◆ breakpoint_current()

Symbol* breakpoint_current ( Symbol s)

Definition at line 3286 of file nocpout.cpp.

◆ check_func()

static bool check_func ( Symbol s)
static

Definition at line 3414 of file nocpout.cpp.

◆ check_ion_vars_as_constant()

void check_ion_vars_as_constant ( char *  ion_name,
const List ion_var_list 
)

Definition at line 1489 of file nocpout.cpp.

◆ check_range_in_func()

void check_range_in_func ( Symbol s)

Definition at line 3317 of file nocpout.cpp.

◆ check_sufficient_ion_read_statements()

static void check_sufficient_ion_read_statements ( std::string const &  ion_name,
List read_variables,
List write_variables 
)
static

Definition at line 1504 of file nocpout.cpp.

◆ check_tables_threads()

int check_tables_threads ( List p)

Definition at line 370 of file parsact.cpp.

◆ check_useion_variables()

void check_useion_variables ( )

Definition at line 1534 of file nocpout.cpp.

◆ chk_global_state()

void chk_global_state ( )

Definition at line 3235 of file nocpout.cpp.

◆ chk_thread_safe()

void chk_thread_safe ( )

Definition at line 3221 of file nocpout.cpp.

◆ conductance_hint()

void conductance_hint ( int  blocktype,
Item q1,
Item q2 
)

Definition at line 3246 of file nocpout.cpp.

◆ cvode_conc_map()

static void cvode_conc_map ( )
static

Definition at line 2727 of file nocpout.cpp.

◆ cvode_emit_interface()

void cvode_emit_interface ( )

Definition at line 2819 of file nocpout.cpp.

◆ cvode_interface()

void cvode_interface ( Symbol fun,
int  num,
int  neq 
)

Definition at line 2983 of file nocpout.cpp.

◆ cvode_proced_emit()

void cvode_proced_emit ( )

Definition at line 2964 of file nocpout.cpp.

◆ cvode_rw_cur()

void cvode_rw_cur ( char(&)  b[NRN_BUFSIZE])

Definition at line 3014 of file nocpout.cpp.

◆ cvode_valid()

void cvode_valid ( )

Definition at line 3005 of file nocpout.cpp.

◆ declare_p()

void declare_p ( )

Definition at line 2178 of file nocpout.cpp.

◆ decode_limits()

int decode_limits ( Symbol sym,
double *  pg1,
double *  pg2 
)

Definition at line 1673 of file nocpout.cpp.

◆ decode_tolerance()

int decode_tolerance ( Symbol sym,
double *  pg1 
)

Definition at line 1696 of file nocpout.cpp.

◆ decode_ustr()

void decode_ustr ( Symbol sym,
double *  pg1,
double *  pg2,
char *  s 
)

Definition at line 1718 of file nocpout.cpp.

◆ defs_h()

void defs_h ( Symbol s)

Definition at line 1841 of file nocpout.cpp.

◆ del_range()

void del_range ( List range)

Definition at line 2164 of file nocpout.cpp.

◆ end_dion_stmt()

List* end_dion_stmt ( const char *  strdel)

Definition at line 2589 of file nocpout.cpp.

◆ fornetcon()

void fornetcon ( Item keyword,
Item par1,
Item args,
Item par2,
Item stmt,
Item qend 
)

Definition at line 3181 of file nocpout.cpp.

◆ func_needs_setdata()

void func_needs_setdata ( )

Definition at line 3348 of file nocpout.cpp.

◆ get_ion_variables()

List * get_ion_variables ( int  block)

Definition at line 2307 of file nocpout.cpp.

◆ hocfunc_setdata_item()

void hocfunc_setdata_item ( Symbol s,
Item q 
)

Definition at line 3438 of file nocpout.cpp.

◆ ifnew_install()

static Symbol* ifnew_install ( const char *  name)
static

Definition at line 2077 of file nocpout.cpp.

◆ ion_declared()

int ion_declared ( Symbol s)

Definition at line 1980 of file nocpout.cpp.

◆ ion_promote()

void ion_promote ( Item qion)

Definition at line 2617 of file nocpout.cpp.

◆ iondef()

int iondef ( int *  p_pointercount)

Definition at line 2358 of file nocpout.cpp.

◆ iontype()

int iontype ( char *  s1,
char *  s2 
)

Definition at line 2054 of file nocpout.cpp.

◆ ldifusreg()

void ldifusreg ( )

Definition at line 1570 of file nocpout.cpp.

◆ net_init()

void net_init ( Item qinit,
Item qp2 
)

Definition at line 3162 of file nocpout.cpp.

◆ net_receive()

void net_receive ( Item qarg,
Item qp1,
Item qp2,
Item qstmt,
Item qend 
)

Definition at line 3040 of file nocpout.cpp.

◆ nrn_list()

void nrn_list ( Item q1,
Item q2 
)

Definition at line 1867 of file nocpout.cpp.

◆ nrn_use()

void nrn_use ( Item q1,
Item q2,
Item q3,
Item q4 
)

Definition at line 1992 of file nocpout.cpp.

◆ nrn_var_assigned()

void nrn_var_assigned ( Symbol s)

Definition at line 2658 of file nocpout.cpp.

◆ nrndeclare()

void nrndeclare ( )

Definition at line 2087 of file nocpout.cpp.

◆ nrninit()

void nrninit ( )

Definition at line 193 of file nocpout.cpp.

◆ out_nt_ml_frag()

void out_nt_ml_frag ( List p)

Definition at line 2798 of file nocpout.cpp.

◆ parout()

void parout ( )

Definition at line 207 of file nocpout.cpp.

◆ possible_local_current()

void possible_local_current ( int  blocktype,
List symlist 
)

Definition at line 3266 of file nocpout.cpp.

◆ ppvar_semantics()

void ppvar_semantics ( int  i,
const char *  semantics,
const char *  name,
const char *  type 
)
static

Definition at line 2545 of file nocpout.cpp.

◆ set_inside_func()

void set_inside_func ( Symbol s)

Definition at line 3333 of file nocpout.cpp.

◆ set_ion_variables()

List* set_ion_variables ( int  block)

Definition at line 2236 of file nocpout.cpp.

◆ slist_data()

void slist_data ( Symbol s,
int  indx,
int  findx 
)

Definition at line 2686 of file nocpout.cpp.

◆ slist_search()

int slist_search ( int  n,
Symbol s 
)

Definition at line 2711 of file nocpout.cpp.

◆ units_reg()

void units_reg ( )

Definition at line 1766 of file nocpout.cpp.

◆ var_count()

static void var_count ( Symbol s)
static

Definition at line 1818 of file nocpout.cpp.

◆ warn_ignore()

void warn_ignore ( Symbol s)

Definition at line 1551 of file nocpout.cpp.

Variable Documentation

◆ areadec

int areadec = 0
static

Definition at line 141 of file nocpout.cpp.

◆ artificial_cell

int artificial_cell

Definition at line 139 of file nocpout.cpp.

◆ ba_index_

int ba_index_
static

Definition at line 157 of file nocpout.cpp.

◆ ba_list_

List* ba_list_
static

Definition at line 158 of file nocpout.cpp.

◆ breakpoint_local_current_

List* breakpoint_local_current_

Definition at line 127 of file nocpout.cpp.

◆ brkpnt_exists

int brkpnt_exists
extern

◆ brkpnt_str_

const char* brkpnt_str_
static

Definition at line 100 of file nocpout.cpp.

◆ conductance_

List* conductance_

Definition at line 126 of file nocpout.cpp.

◆ currents

List* currents

Definition at line 124 of file nocpout.cpp.

◆ cvode_emit

int cvode_emit
static

Definition at line 162 of file nocpout.cpp.

◆ cvode_fun_

Symbol* cvode_fun_
static

Definition at line 2684 of file nocpout.cpp.

◆ cvode_ieq_index

int cvode_ieq_index
static

Definition at line 162 of file nocpout.cpp.

◆ cvode_neq_

int cvode_neq_
static

Definition at line 2683 of file nocpout.cpp.

◆ cvode_not_allowed

int cvode_not_allowed

Definition at line 161 of file nocpout.cpp.

◆ cvode_num_

int cvode_num_
static

Definition at line 2683 of file nocpout.cpp.

◆ cvode_valid_

int cvode_valid_
static

Definition at line 2682 of file nocpout.cpp.

◆ data_field_strings

std::vector<std::string> data_field_strings
static

Definition at line 191 of file nocpout.cpp.

◆ debugging_

int debugging_

Definition at line 166 of file nocpout.cpp.

◆ defs_list

List* defs_list

Definition at line 107 of file nocpout.cpp.

◆ defs_list_parm_default

Item* defs_list_parm_default

Definition at line 108 of file nocpout.cpp.

◆ diamdec

int diamdec = 0
static

Definition at line 140 of file nocpout.cpp.

◆ electrode_current

int electrode_current = 0

Definition at line 109 of file nocpout.cpp.

◆ for_netcons_

int for_netcons_
static

Definition at line 154 of file nocpout.cpp.

◆ funcs

std::unordered_map<Symbol*, Info> funcs
static

Definition at line 3314 of file nocpout.cpp.

◆ in_func_

Symbol* in_func_
static

Definition at line 3315 of file nocpout.cpp.

◆ indepsym

Symbol* indepsym
extern

Definition at line 8 of file declare.cpp.

◆ ion_synonym

List* ion_synonym
static

Definition at line 165 of file nocpout.cpp.

◆ ldifuslist

List* ldifuslist
extern

Definition at line 72 of file kinetic.cpp.

◆ mechname

char* mechname
static

Definition at line 137 of file nocpout.cpp.

◆ net_event_seen_

int net_event_seen_

Definition at line 169 of file nocpout.cpp.

◆ net_init_q1_

Item* net_init_q1_
static

Definition at line 155 of file nocpout.cpp.

◆ net_init_q2_

Item* net_init_q2_
static

Definition at line 156 of file nocpout.cpp.

◆ net_receive_

int net_receive_

Definition at line 167 of file nocpout.cpp.

◆ net_send_delivered_

Item* net_send_delivered_
static

Definition at line 172 of file nocpout.cpp.

◆ net_send_seen_

int net_send_seen_

Definition at line 168 of file nocpout.cpp.

◆ netrec_need_v

int netrec_need_v
extern

Definition at line 67 of file netrec_discon.cpp.

◆ nmodl_version_

const char* nmodl_version_ = "7.7.0"

Definition at line 12 of file nocpout.cpp.

◆ nmodlrandoms

List* nmodlrandoms
static

Definition at line 132 of file nocpout.cpp.

◆ nrn_mech_inst_destruct_list

List* nrn_mech_inst_destruct_list
static

Definition at line 133 of file nocpout.cpp.

◆ nrnpointers

List* nrnpointers
static

Definition at line 131 of file nocpout.cpp.

◆ num_random_vars

int num_random_vars = 0
static

Definition at line 134 of file nocpout.cpp.

◆ parraycount

int parraycount
static

Definition at line 188 of file nocpout.cpp.

◆ plotlist

List* plotlist

Definition at line 106 of file nocpout.cpp.

◆ point_process

int point_process

Definition at line 138 of file nocpout.cpp.

◆ ppvar_cnt

int ppvar_cnt
static

Definition at line 151 of file nocpout.cpp.

◆ ppvar_data_field_strings

std::vector<std::pair<int, std::string> > ppvar_data_field_strings
static

Definition at line 190 of file nocpout.cpp.

◆ ppvar_semantics_

List* ppvar_semantics_
static

Definition at line 152 of file nocpout.cpp.

◆ prop_size

int prop_size
static

Definition at line 189 of file nocpout.cpp.

◆ protect_

int protect_
extern

Definition at line 25 of file parsact.cpp.

◆ protect_include_

int protect_include_
extern

Definition at line 26 of file parsact.cpp.

◆ rangedep

List* rangedep
static

Definition at line 129 of file nocpout.cpp.

◆ rangeparm

List* rangeparm
static

Definition at line 128 of file nocpout.cpp.

◆ rangestate

List* rangestate
static

Definition at line 130 of file nocpout.cpp.

◆ rsuffix

const char* rsuffix
static

Definition at line 136 of file nocpout.cpp.

◆ state_discon_list_

List* state_discon_list_

Definition at line 160 of file nocpout.cpp.

◆ suffix

char suffix[256]
static

Definition at line 135 of file nocpout.cpp.

◆ syminorder

List* syminorder

Definition at line 105 of file nocpout.cpp.

◆ symlist

List* symlist[]
extern

Definition at line 9 of file symbol.cpp.

◆ thread_cleanup_list

List* thread_cleanup_list

Definition at line 111 of file nocpout.cpp.

◆ thread_data_index

int thread_data_index = 0

Definition at line 110 of file nocpout.cpp.

◆ thread_mem_init_list

List* thread_mem_init_list

Definition at line 112 of file nocpout.cpp.

◆ toplocal_

List* toplocal_

Definition at line 113 of file nocpout.cpp.

◆ tqitem_index

int tqitem_index
static

Definition at line 163 of file nocpout.cpp.

◆ use_bbcorepointer

int use_bbcorepointer = 0
static

Definition at line 142 of file nocpout.cpp.

◆ useion

List* useion

Definition at line 125 of file nocpout.cpp.

◆ using_cvode

int using_cvode
static

Definition at line 2682 of file nocpout.cpp.

◆ varcount

int varcount
static

Definition at line 188 of file nocpout.cpp.

◆ vectorize

int vectorize = 1

Definition at line 78 of file nocpout.cpp.

◆ watch_alloc

List* watch_alloc
extern

Definition at line 16 of file parsact.cpp.

◆ watch_index

int watch_index
static

Definition at line 164 of file nocpout.cpp.

◆ watch_seen_

int watch_seen_

Definition at line 170 of file nocpout.cpp.