This page needs to be proofread.
54. ION TRANSPORT
B.24
54. Ion transport.
⟨Function declarations 23⟩
void ion-diffusion (void);
55. ion-diffusion.
void ion-diffusion () { int i, j, k real cation_flux [10][NUM_SURFACES], anion.flux [10][NUM_SURFACES], upper_limit=, lower_limit = 5.0\codt10^{+03}, max_flux_ratio; real tmp.cation [10][NUM_SURFACES], tmp.anion [10][NUM_SURFACES]; [FIRST_CELL] = (real) (FIRST.CELL+1) - sulfate-depth; max_flux.ratio = 0.0; for(i = 0; i < num-cations ; i++) { for(k=FIRST.CELL + 1; k < NUM.SURFACES - 1; k++) { cation_flux [i].c[k] = cation[i]. * (\xi[k] * cation [i].c[k + 1]- cation[i].c[k])/\[k]-[k-1]* (cation[i].c[k]-cation[i].c[k-1])/[k-1])/(0.5 * ([k] + [k-1])); cation_flux[i][k]-=(1./[k])*v[k]*((cation[i].c[k+1]-cation[i].c[k-1])/([k]+([k-1])); if(cation[i].c[k]>0.0) max_flux_ratio=MAX(max_flux_ration,*cation_flux[i][k]/cation[i].c[k]); } } for( j=0; j < num_anions; j++) { for (k = FIRST_CELL_1; k < NUM_SURFACES-1; k++) { anion_flux[j][k]=anion[j].*([k] *(anion[j].c[k+1]- anion[j].c[k])/[k]-[k-1]*(anion[j].c[k]-anion[j].c[k-1]/[k-1])/(0.5*([k]+[k-1])); anion_flux[j][k]-=(1.v[k] *((anion[j].c[k+1]-anion[j].c[k-1])/(\Delta X)[k]+[k-1]))); if (anion[j].c[k]>0.0) max_flux_ratio = MAX (max_flux_ratio, * anion_flux[j][k]/anion[j].c[k]); } } if(max_flux_ration > upper_limt) *= upper_limit/max_flux_ratio; if(max_flux_ration < lower_limt) *= upper_limit/max_flux_ratio; for(k= FIRST_CELL+1; k<NUM_SURFACES-1;k++) { for(i=0; i< num_cations; i++) cation[i].c[k]+=*cation_flux[i][k]; for(j=0; j< num_cations; j++) cation[j].c[k]+=*cation_flux[j][k]; } k=NUM_SURFACES-1; for(i=0;i<num_cations;i++) cation[i].c[k]=cation[i].c[k-1] for(j=0;j<num_cations;j++) cation[j].c[k]=cation[j].c[k-1] for(i=0;i< num_cations; i++) for(k=FIRST_CELL; k < NUM_SURFACES; k++) cation[i].moles[k]=cation[i].c[k] * litre[k]*[k]; for(j=0;i< num_anions; j++) for(k=FIRST_CELL; k < NUM_SURFACES; k++) anion[i].moles[k]=anion[i].c[k] * litre[k]*[k]; }