8 #if defined __cplusplus 24 if( particle == NULL )
return( NULL );
45 if( *p == particle ) {
51 if( particle == particleListEnd ) particleListEnd = particle->
prior;
52 if( particle == particleList ) particleList = particle->
next;
81 int i, iCmp,
min, mid,
max,
Z,
A,
m, level;
89 mid = ( min +
max ) / 2;
90 iCmp = strcmp( name, particleSortedList[mid]->name );
91 if( iCmp == 0 )
return( particleSortedList[mid] );
94 if( mid == 0 ) max = 0; }
97 if( min > max ) min =
max;
101 if( numberOfParticles > 0 ) {
102 iCmp = strcmp( name, particleSortedList[mid]->name );
103 if( iCmp == 0 )
return( particleSortedList[mid] );
104 if( ( iCmp < 0 ) && ( mid != 0 ) ) {
106 iCmp = strcmp( name, particleSortedList[mid]->name );
111 if( ( particle->
name =
smr_allocateCopyString( smr, name,
"particle->name", __FILE__, __LINE__, __func__ ) ) == NULL )
goto err;
113 particle->
prior = NULL;
114 particle->
next = NULL;
132 "particleSortedList" ) ) == NULL )
goto err;
135 if( particleList == NULL ) {
137 particleListEnd = particleList = particle; }
139 particle->
ordinal = particleListEnd->ordinal + 1;
141 particleListEnd->
next = particle;
142 particleListEnd = particle;
145 if( ( mid != 0 ) || ( iCmp > 0 ) ) mid++;
146 for( i = numberOfParticles; i > mid; i-- ) particleSortedList[i] = particleSortedList[i-1];
147 particleSortedList[mid] = particle;
167 #if defined __cplusplus MCGIDI_particle * MCGIDI_particle_getInternalID(statusMessageReporting *smr, const char *const name, MCGIDI_POPs *pops)
static int numberOfParticles
double MCGIDI_particleMass_AMU(statusMessageReporting *smr, const char *name)
static MCGIDI_particle * particleListEnd
static int initialSizeOfList
MCGIDI_POP * MCGIDI_POPs_findParticle(MCGIDI_POPs *pops, char const *name)
int MCGIDI_particle_printInternalSortedList(statusMessageReporting *)
printf("%d Experimental points found\, nlines)
static MCGIDI_particle ** particleSortedList
static int sizeOfParticleSortedList
static MCGIDI_particle * particleList
double A(double temperature)
#define smr_malloc2(smr, size, zero, forItem)
int MCGIDI_particle_freeInternalList(statusMessageReporting *smr)
int smr_isOk(statusMessageReporting *smr)
char * smr_allocateCopyString(statusMessageReporting *smr, char const *s, char const *forItem, char const *file, int line, char const *function)
int MCGIDI_miscNameToZAm(statusMessageReporting *smr, const char *name, int *Z, int *A, int *m, int *level)
void * smr_freeMemory(void **p)
static int incrementalSizeOfList
int MCGIDI_particle_initialize(statusMessageReporting *, MCGIDI_particle *particle)
MCGIDI_particle * MCGIDI_particle_free(statusMessageReporting *smr, MCGIDI_particle *particle)
#define smr_realloc2(smr, old, size, forItem)
MCGIDI_particle * MCGIDI_particle_new(statusMessageReporting *smr)
int MCGIDI_particle_release(statusMessageReporting *, MCGIDI_particle *particle)