diff --git a/GEMS3K/ipm_chemical.cpp b/GEMS3K/ipm_chemical.cpp index 275d75da..1adf7d2d 100644 --- a/GEMS3K/ipm_chemical.cpp +++ b/GEMS3K/ipm_chemical.cpp @@ -523,7 +523,7 @@ case DC_SCM_SPECIES: } } } - else if( pm.SCM[k][ist] == SC_BSM || pm.SCM[k][ist] == SC_CCM ) + else if( pm.SCM[k][ist] == SC_BSM || pm.SCM[k][ist] == SC_CCM || pm.SCM[k][ist] == SC_ISCCM ) { // Basic Stern model, Christl & Kretzschmar, 1999 // New CD version of TLM added 25.10.2004 if( fabs( CD0 ) > 1e-20 && fabs( CDb ) > 1e-20 ) diff --git a/GEMS3K/ipm_chemical2.cpp b/GEMS3K/ipm_chemical2.cpp index ef0f02a9..b6f4c12e 100644 --- a/GEMS3K/ipm_chemical2.cpp +++ b/GEMS3K/ipm_chemical2.cpp @@ -595,9 +595,10 @@ void TMultiBase::IS_EtaCalc() pm.XetaB[k][ist] += pm.X[j]*Ez; pm.XetaA[k][ist] += pm.X[j]*CD0; // added for testing } - else if( pm.SCM[k][ist] == SC_CCM ) + else if( pm.SCM[k][ist] == SC_CCM || pm.SCM[k][ist] == SC_ISCCM ) { // Added 25.07.03 to implement the extended CCM Nilsson ea 1996 // New CD version of BSM added 25.10.2004 + // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity pm.XetaB[k][ist] += pm.X[j] * CDb; pm.XetaA[k][ist] += pm.X[j] * CD0; } @@ -697,6 +698,7 @@ TMultiBase::GouyChapman( long int, long int, long int k ) switch( pm.SCM[k][ist] ) { case SC_CCM: // Constant-Capacitance Model Schindler, extension Nilsson + case SC_ISCCM: // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity SigA = pm.Xetaf[k][ist] + XetaA[ist]; SigDDL = -SigA - XetaB[ist]; SigB = XetaB[ist]; @@ -796,9 +798,13 @@ TMultiBase::GouyChapman( long int, long int, long int k ) pm.XpsiB[k][ist] = PsiD; break; case SC_CCM: // Constant-Capacitance Model Schindler, ext. Nilsson + case SC_ISCCM: // 2026 SC_ISCCM uses dependcy of capacity with IS C = sqrt(IS)/alpha, alpha is given instead of capacity if( pm.XcapB[k][ist] > 0.001 ) { // Classic CCM Schindler with inner-sphere species only - PsiA = SigA / pm.XcapA[k][ist]; + if (pm.SCM[k][ist] == SC_ISCCM) + PsiA = SigA / (sqrt(I)/pm.XcapA[k][ist]); + else + PsiA = SigA / pm.XcapA[k][ist]; if( fabs( PsiA ) > 0.7 ) // truncated 0-plane potential { PsiA = PsiA<0? -0.7: 0.7; diff --git a/GEMS3K/ipm_simplex.cpp b/GEMS3K/ipm_simplex.cpp index 55cb2327..244ac5b7 100644 --- a/GEMS3K/ipm_simplex.cpp +++ b/GEMS3K/ipm_simplex.cpp @@ -56,7 +56,7 @@ void TMultiBase::AutoInitialApproximation( ) for( i=0; iEPS; // 13.10.00 KC DK - GZ = 1./EPS; + GZ = 1./EPS; T=0; // Calcuation of all non-zero values in A and G arrays for(i=0;i