mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 08:38:23 +01:00
vector s
This commit is contained in:
parent
e7c78a88ad
commit
de1ba62395
12
Phreeqc.cpp
12
Phreeqc.cpp
@ -726,9 +726,6 @@ void Phreeqc::init(void)
|
||||
max_logk = MAX_S;
|
||||
moles_per_kilogram_string= NULL;
|
||||
pe_string = NULL;
|
||||
s = NULL;
|
||||
count_s = 0;
|
||||
max_s = MAX_S;
|
||||
// auto s_diff_layer;
|
||||
s_x = NULL;
|
||||
count_s_x = 0;
|
||||
@ -1717,14 +1714,7 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc)
|
||||
}
|
||||
count_logk = pSrc->count_logk;
|
||||
// s, species
|
||||
count_s = 0;
|
||||
//max_s = pSrc->max_s;
|
||||
|
||||
//s = (struct species **) free_check_null(s);
|
||||
//s = (struct species **) PHRQ_malloc(sizeof(struct species *)*size_t(max_s));
|
||||
|
||||
space((void **)((void *)&s), pSrc->max_s, &max_s, sizeof(struct species *));
|
||||
for (int i = 0; i < pSrc->count_s; i++)
|
||||
for (int i = 0; i < (int)pSrc->s.size(); i++)
|
||||
{
|
||||
struct species *s_ptr = s_store(pSrc->s[i]->name, pSrc->s[i]->z, FALSE);
|
||||
memcpy(s_ptr, pSrc->s[i], sizeof(struct species));
|
||||
|
||||
@ -1483,9 +1483,7 @@ protected:
|
||||
char *moles_per_kilogram_string;
|
||||
char *pe_string;
|
||||
|
||||
struct species **s;
|
||||
int count_s;
|
||||
int max_s;
|
||||
std::vector<struct species*> s;
|
||||
std::vector< std::map < std::string, cxxSpeciesDL > > s_diff_layer;
|
||||
|
||||
struct species **s_x;
|
||||
|
||||
@ -88,8 +88,6 @@ initialize(void)
|
||||
space((void **) ((void *) &trxn.token), INIT, &max_trxn,
|
||||
sizeof(struct rxn_token_temp));
|
||||
|
||||
space((void **) ((void *) &s), INIT, &max_s, sizeof(struct species *));
|
||||
|
||||
space((void **) ((void *) &logk), INIT, &max_logk, sizeof(struct logk *));
|
||||
|
||||
/*
|
||||
@ -98,7 +96,7 @@ initialize(void)
|
||||
hcreate_multi((unsigned) max_logk, &logk_hash_table);
|
||||
hcreate_multi((unsigned) MAX_ELTS, &master_isotope_hash_table);
|
||||
hcreate_multi((unsigned) MAX_ELTS, &elements_hash_table);
|
||||
hcreate_multi((unsigned) max_s, &species_hash_table);
|
||||
hcreate_multi((unsigned) MAX_S, &species_hash_table);
|
||||
hcreate_multi((unsigned) MAX_PHASES, &phases_hash_table);
|
||||
// one save_values
|
||||
save_values =
|
||||
|
||||
@ -5028,7 +5028,7 @@ surface_model(void)
|
||||
if (dl_type_x != cxxSurface::NO_DL && same_model == FALSE)
|
||||
{
|
||||
s_diff_layer.clear();
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
std::map < std::string, cxxSpeciesDL > dl;
|
||||
s_diff_layer.push_back(dl);
|
||||
|
||||
57
pitzer.cpp
57
pitzer.cpp
@ -65,19 +65,18 @@ pitzer_tidy(void)
|
||||
*/
|
||||
if (spec != NULL)
|
||||
spec = (struct species **) free_check_null(spec);
|
||||
spec =
|
||||
(struct species **)
|
||||
PHRQ_malloc((size_t) (3 * count_s * sizeof(struct species *)));
|
||||
spec = (struct species **)
|
||||
PHRQ_malloc((size_t) (3 * s.size() * sizeof(struct species *)));
|
||||
if (spec == NULL)
|
||||
malloc_error();
|
||||
for (i = 0; i < 3 * count_s; i++)
|
||||
for (i = 0; i < 3 * (int)s.size(); i++)
|
||||
spec[i] = NULL;
|
||||
cations = spec;
|
||||
neutrals = &(spec[count_s]);
|
||||
anions = &(spec[2 * count_s]);
|
||||
MAXCATIONS = count_s;
|
||||
FIRSTANION = 2 * count_s;
|
||||
MAXNEUTRAL = count_s;
|
||||
neutrals = &(spec[s.size()]);
|
||||
anions = &(spec[2 * s.size()]);
|
||||
MAXCATIONS = (int)s.size();
|
||||
FIRSTANION = 2 * (int)s.size();
|
||||
MAXNEUTRAL = (int)s.size();
|
||||
count_cations = 0;
|
||||
count_anions = 0;
|
||||
count_neutrals = 0;
|
||||
@ -88,22 +87,22 @@ pitzer_tidy(void)
|
||||
*/
|
||||
if (IPRSNT != NULL)
|
||||
IPRSNT = (int *) free_check_null(IPRSNT);
|
||||
IPRSNT = (int *) PHRQ_malloc((size_t) (3 * count_s * sizeof(int)));
|
||||
IPRSNT = (int *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(int)));
|
||||
if (IPRSNT == NULL)
|
||||
malloc_error();
|
||||
if (M != NULL)
|
||||
M = (LDBLE *) free_check_null(M);
|
||||
M = (LDBLE *) PHRQ_malloc((size_t) (3 * count_s * sizeof(LDBLE)));
|
||||
M = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (M == NULL)
|
||||
malloc_error();
|
||||
if (LGAMMA != NULL)
|
||||
LGAMMA = (LDBLE *) free_check_null(LGAMMA);
|
||||
LGAMMA = (LDBLE *) PHRQ_malloc((size_t) (3 * count_s * sizeof(LDBLE)));
|
||||
LGAMMA = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (LGAMMA == NULL)
|
||||
malloc_error();
|
||||
|
||||
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
if (s[i] == s_eminus)
|
||||
continue;
|
||||
@ -159,9 +158,9 @@ pitzer_tidy(void)
|
||||
|
||||
}
|
||||
}
|
||||
for (i = 2 * count_s; i < 2 * count_s + count_anions - 1; i++)
|
||||
for (i = 2 * (int)s.size(); i < 2 * (int)s.size() + count_anions - 1; i++)
|
||||
{
|
||||
for (j = i + 1; j < 2 * count_s + count_anions; j++)
|
||||
for (j = i + 1; j < 2 * (int)s.size() + count_anions; j++)
|
||||
{
|
||||
sprintf(line, "%s %s 1", spec[i]->name, spec[j]->name);
|
||||
pzp_ptr = pitz_param_read(line, 2);
|
||||
@ -574,7 +573,7 @@ ISPEC(const char *name)
|
||||
*/
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 3 * count_s; i++)
|
||||
for (i = 0; i < 3 * (int)s.size(); i++)
|
||||
{
|
||||
if (spec[i] == NULL)
|
||||
continue;
|
||||
@ -923,7 +922,7 @@ pitzer(void)
|
||||
C TRANSFER DATA FROM TO M
|
||||
C
|
||||
*/
|
||||
for (i = 0; i < 3 * count_s; i++)
|
||||
for (i = 0; i < 3 * (int)s.size(); i++)
|
||||
{
|
||||
IPRSNT[i] = FALSE;
|
||||
M[i] = 0.0;
|
||||
@ -954,7 +953,7 @@ pitzer(void)
|
||||
C
|
||||
*/
|
||||
PTEMP(TK);
|
||||
for (i = 0; i < 2 * count_s + count_anions; i++)
|
||||
for (i = 0; i < 2 * (int)s.size() + count_anions; i++)
|
||||
{
|
||||
LGAMMA[i] = 0.0;
|
||||
if (IPRSNT[i] == TRUE)
|
||||
@ -1155,7 +1154,7 @@ pitzer(void)
|
||||
F_var = (z0 == 1 ? F1 : (z0 == 2.0 ? F2 : F));
|
||||
LGAMMA[i] += z0 * z0 * F_var + z0 * CSUM;
|
||||
}
|
||||
for (i = 2 * count_s; i < 2 * count_s + count_anions; i++)
|
||||
for (i = 2 * (int)s.size(); i < 2 * (int)s.size() + count_anions; i++)
|
||||
{
|
||||
if (!IPRSNT[i])
|
||||
continue;
|
||||
@ -1176,7 +1175,7 @@ pitzer(void)
|
||||
C CORRECTED ERROR IN PHIMAC, NOVEMBER, 1989
|
||||
C
|
||||
*/
|
||||
for (i = 0; i < 2 * count_s + count_anions; i++)
|
||||
for (i = 0; i < 2 * (int)s.size() + count_anions; i++)
|
||||
{
|
||||
if (IPRSNT[i] == TRUE)
|
||||
{
|
||||
@ -1198,7 +1197,7 @@ pitzer(void)
|
||||
*/
|
||||
/*s_h2o->la=log10(AW); */
|
||||
mu_x = I;
|
||||
for (i = 0; i < 2 * count_s + count_anions; i++)
|
||||
for (i = 0; i < 2 * (int)s.size() + count_anions; i++)
|
||||
{
|
||||
if (IPRSNT[i] == FALSE)
|
||||
continue;
|
||||
@ -2627,12 +2626,12 @@ pitzer_make_lists(void)
|
||||
max = count_cations;
|
||||
break;
|
||||
case 1:
|
||||
min = count_s;
|
||||
max = count_s + count_neutrals;
|
||||
min = (int)s.size();
|
||||
max = (int)s.size() + count_neutrals;
|
||||
break;
|
||||
case 2:
|
||||
min = 2*count_s;
|
||||
max = 2*count_s + count_anions;
|
||||
min = 2* (int)s.size();
|
||||
max = 2* (int)s.size() + count_anions;
|
||||
break;
|
||||
}
|
||||
for (int i = min; i < max; i++)
|
||||
@ -2647,19 +2646,19 @@ pitzer_make_lists(void)
|
||||
continue;
|
||||
IPRSNT[i] = TRUE;
|
||||
s_list.push_back(i);
|
||||
if (i < count_s)
|
||||
if (i < (int)s.size())
|
||||
{
|
||||
cation_list.push_back(i);
|
||||
}
|
||||
if (i >= count_s && i < 2*count_s)
|
||||
if (i >= (int)s.size() && i < 2* (int)s.size())
|
||||
{
|
||||
neutral_list.push_back(i);
|
||||
}
|
||||
if (i >= 2*count_s)
|
||||
if (i >= 2* (int)s.size())
|
||||
{
|
||||
anion_list.push_back(i);
|
||||
}
|
||||
if (i < count_s || i >= 2*count_s)
|
||||
if (i < (int)s.size() || i >= 2* (int)s.size())
|
||||
{
|
||||
ion_list.push_back(i);
|
||||
}
|
||||
|
||||
6
prep.cpp
6
prep.cpp
@ -1205,7 +1205,7 @@ build_model(void)
|
||||
count_s_x = 0;
|
||||
compute_gfw("H2O", &gfw_water);
|
||||
gfw_water *= 0.001;
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
if (s[i]->type > H2O && s[i]->type != EX && s[i]->type != SURF)
|
||||
continue;
|
||||
@ -1810,7 +1810,7 @@ clear(void)
|
||||
*/
|
||||
solution_ptr = use.Get_solution_ptr();
|
||||
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
s[i]->in = FALSE;
|
||||
}
|
||||
@ -4832,7 +4832,7 @@ setup_unknowns(void)
|
||||
max_unknowns++;
|
||||
if (pitzer_model == TRUE || sit_model == TRUE)
|
||||
{
|
||||
max_unknowns += count_s;
|
||||
max_unknowns += (int)s.size();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
48
sit.cpp
48
sit.cpp
@ -39,16 +39,16 @@ sit_tidy(void)
|
||||
* allocate pointers to species structures
|
||||
*/
|
||||
if (spec != NULL) spec = (struct species **) free_check_null(spec);
|
||||
spec = (struct species **) PHRQ_malloc((size_t) (3 * count_s * sizeof(struct species *)));
|
||||
spec = (struct species **) PHRQ_malloc((size_t) (3 * s.size() * sizeof(struct species *)));
|
||||
if (spec == NULL) malloc_error();
|
||||
for (i = 0; i < 3 * count_s; i++) spec[i] = NULL;
|
||||
for (i = 0; i < 3 * (int)s.size(); i++) spec[i] = NULL;
|
||||
|
||||
cations = spec;
|
||||
neutrals = &(spec[count_s]);
|
||||
anions = &(spec[2 * count_s]);
|
||||
sit_MAXCATIONS = count_s;
|
||||
sit_FIRSTANION = 2 * count_s;
|
||||
sit_MAXNEUTRAL = count_s;
|
||||
neutrals = &(spec[s.size()]);
|
||||
anions = &(spec[2 * s.size()]);
|
||||
sit_MAXCATIONS = (int)s.size();
|
||||
sit_FIRSTANION = 2 * (int)s.size();
|
||||
sit_MAXNEUTRAL = (int)s.size();
|
||||
sit_count_cations = 0;
|
||||
sit_count_anions = 0;
|
||||
sit_count_neutrals = 0;
|
||||
@ -57,17 +57,17 @@ sit_tidy(void)
|
||||
* allocate other arrays for SIT
|
||||
*/
|
||||
if (sit_IPRSNT != NULL) sit_IPRSNT = (int *) free_check_null(sit_IPRSNT);
|
||||
sit_IPRSNT = (int *) PHRQ_malloc((size_t) (3 * count_s * sizeof(int)));
|
||||
sit_IPRSNT = (int *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(int)));
|
||||
if (sit_IPRSNT == NULL) malloc_error();
|
||||
if (sit_M != NULL) sit_M = (LDBLE *) free_check_null(sit_M);
|
||||
sit_M = (LDBLE *) PHRQ_malloc((size_t) (3 * count_s * sizeof(LDBLE)));
|
||||
sit_M = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (sit_M == NULL) malloc_error();
|
||||
if (sit_LGAMMA != NULL) sit_LGAMMA = (LDBLE *) free_check_null(sit_LGAMMA);
|
||||
sit_LGAMMA = (LDBLE *) PHRQ_malloc((size_t) (3 * count_s * sizeof(LDBLE)));
|
||||
sit_LGAMMA = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (sit_LGAMMA == NULL) malloc_error();
|
||||
|
||||
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
if (s[i] == s_eminus)
|
||||
continue;
|
||||
@ -149,7 +149,7 @@ sit_ISPEC(const char *name)
|
||||
*/
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 3 * count_s; i++)
|
||||
for (i = 0; i < 3 * (int)s.size(); i++)
|
||||
{
|
||||
if (spec[i] == NULL)
|
||||
continue;
|
||||
@ -340,7 +340,7 @@ sit(void)
|
||||
sit_M[i] = 0.0;
|
||||
}
|
||||
}
|
||||
//for (i = 0; i < 3 * count_s; i++)
|
||||
//for (i = 0; i < 3 * (int)s.size(); i++)
|
||||
//{
|
||||
// sit_IPRSNT[i] = FALSE;
|
||||
// sit_M[i] = 0.0;
|
||||
@ -368,7 +368,7 @@ sit(void)
|
||||
XI = XI + sit_M[i] * spec[i]->z * spec[i]->z;
|
||||
OSUM = OSUM + sit_M[i];
|
||||
}
|
||||
//for (i = 0; i < 2 * count_s + sit_count_anions; i++)
|
||||
//for (i = 0; i < 2 * (int)s.size() + sit_count_anions; i++)
|
||||
//{
|
||||
// sit_LGAMMA[i] = 0.0;
|
||||
// if (sit_IPRSNT[i] == TRUE)
|
||||
@ -462,7 +462,7 @@ sit(void)
|
||||
// z0 = spec[i]->z;
|
||||
// sit_LGAMMA[i] += z0 * z0 * F;
|
||||
//}
|
||||
//for (i = 2 * count_s; i < 2 * count_s + sit_count_anions; i++)
|
||||
//for (i = 2 * (int)s.size(); i < 2 * (int)s.size() + sit_count_anions; i++)
|
||||
//{
|
||||
// z0 = spec[i]->z;
|
||||
// sit_LGAMMA[i] += z0 * z0 * F;
|
||||
@ -488,7 +488,7 @@ sit(void)
|
||||
int i = s_list[j];
|
||||
spec[i]->lg_pitzer = sit_LGAMMA[i];
|
||||
}
|
||||
// for (i = 0; i < 2 * count_s + sit_count_anions; i++)
|
||||
// for (i = 0; i < 2 * (int)s.size() + sit_count_anions; i++)
|
||||
// {
|
||||
// if (sit_IPRSNT[i] == FALSE) continue;
|
||||
// spec[i]->lg_pitzer = sit_LGAMMA[i];
|
||||
@ -1447,12 +1447,12 @@ sit_make_lists(void)
|
||||
max = sit_count_cations;
|
||||
break;
|
||||
case 1:
|
||||
min = count_s;
|
||||
max = count_s + sit_count_neutrals;
|
||||
min = (int)s.size();
|
||||
max = (int)s.size() + sit_count_neutrals;
|
||||
break;
|
||||
case 2:
|
||||
min = 2*count_s;
|
||||
max = 2*count_s + sit_count_anions;
|
||||
min = 2*(int)s.size();
|
||||
max = 2*(int)s.size() + sit_count_anions;
|
||||
break;
|
||||
}
|
||||
for (int i = min; i < max; i++)
|
||||
@ -1466,19 +1466,19 @@ sit_make_lists(void)
|
||||
continue;
|
||||
sit_IPRSNT[i] = TRUE;
|
||||
s_list.push_back(i);
|
||||
if (i < count_s)
|
||||
if (i < (int)s.size())
|
||||
{
|
||||
cation_list.push_back(i);
|
||||
}
|
||||
if (i >= count_s && i < 2*count_s)
|
||||
if (i >= (int)s.size() && i < 2*(int)s.size())
|
||||
{
|
||||
neutral_list.push_back(i);
|
||||
}
|
||||
if (i >= 2*count_s)
|
||||
if (i >= 2*(int)s.size())
|
||||
{
|
||||
anion_list.push_back(i);
|
||||
}
|
||||
if (i < count_s || i >= 2*count_s)
|
||||
if (i < (int)s.size() || i >= 2*(int)s.size())
|
||||
{
|
||||
ion_list.push_back(i);
|
||||
}
|
||||
|
||||
2
step.cpp
2
step.cpp
@ -326,7 +326,7 @@ xsolution_zero(void)
|
||||
}
|
||||
if (pitzer_model == TRUE || sit_model == TRUE)
|
||||
{
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
s[i]->lg = 0.0;
|
||||
}
|
||||
|
||||
@ -64,12 +64,11 @@ clean_up(void)
|
||||
|
||||
/* species */
|
||||
|
||||
for (j = 0; j < count_s; j++)
|
||||
for (j = 0; j < (int)s.size(); j++)
|
||||
{
|
||||
s_free(s[j]);
|
||||
s[j] = (struct species *) free_check_null(s[j]);
|
||||
}
|
||||
s = (struct species **) free_check_null(s);
|
||||
|
||||
/* master species */
|
||||
|
||||
@ -311,7 +310,6 @@ clean_up(void)
|
||||
title_x = (char *) free_check_null(title_x);
|
||||
last_title_x.clear();
|
||||
count_master = 0;
|
||||
count_s = 0;
|
||||
count_logk = 0;
|
||||
count_rates = 0;
|
||||
count_inverse = 0;
|
||||
@ -1962,11 +1960,7 @@ s_delete(int i)
|
||||
|
||||
s_free(s[i]);
|
||||
s[i] = (struct species *) free_check_null(s[i]);
|
||||
for (j = i; j < (count_s - 1); j++)
|
||||
{
|
||||
s[j] = s[j + 1];
|
||||
}
|
||||
count_s--;
|
||||
s.erase(s.begin() + i);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
@ -2158,13 +2152,8 @@ s_store(const char *name, LDBLE l_z, int replace_if_found)
|
||||
}
|
||||
else
|
||||
{
|
||||
n = count_s++;
|
||||
/* make sure there is space in s */
|
||||
if (count_s >= max_s)
|
||||
{
|
||||
space((void **) ((void *) &s), count_s, &max_s,
|
||||
sizeof(struct species *));
|
||||
}
|
||||
n = (int)s.size();
|
||||
s.resize((size_t)n + 1);
|
||||
/* Make new species structure */
|
||||
s[n] = s_alloc();
|
||||
s_ptr = s[n];
|
||||
|
||||
10
tidy.cpp
10
tidy.cpp
@ -150,7 +150,7 @@ tidy_model(void)
|
||||
/* species */
|
||||
if (new_model == TRUE)
|
||||
{
|
||||
qsort(s, (size_t) count_s, (size_t) sizeof(struct species *), s_compare);
|
||||
qsort(s.data(), s.size(), sizeof(struct species *), s_compare);
|
||||
|
||||
/* master species */
|
||||
qsort(master, (unsigned) count_master, sizeof(struct master *), master_compare);
|
||||
@ -453,7 +453,7 @@ check_species_input(void)
|
||||
int return_value;
|
||||
|
||||
return_value = OK;
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
if (s[i]->next_elt == NULL)
|
||||
{
|
||||
@ -2304,7 +2304,7 @@ tidy_species(void)
|
||||
/*
|
||||
* Set secondary and primary pointers in species structures
|
||||
*/
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
s[i]->number = i;
|
||||
s[i]->primary = NULL;
|
||||
@ -2396,7 +2396,7 @@ tidy_species(void)
|
||||
/*
|
||||
* Rewrite all species to secondary species
|
||||
*/
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
count_trxn = 0;
|
||||
if (s[i]->primary != NULL || s[i]->secondary != NULL)
|
||||
@ -2487,7 +2487,7 @@ tidy_species(void)
|
||||
/*
|
||||
* Calculate H and O if alternate mass balance is given
|
||||
*/
|
||||
for (i = 0; i < count_s; i++)
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
if (s[i]->next_secondary != NULL)
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user