### the confuse about phase function of aerosol model

Posted:

**Thu May 06, 2021 10:00 am America/New_York**In aerosol.c of l2gen, the model_phase() can return phase. the one part of the code is as follows. I can't find the definition of splint() in all code, so I guess it returns a volume scattering function (phase) of aerosol look-up table according to scatter angle and wavelength. I am very confuse about "phase[im][iw] = exp(phase1) +exp(phase2)*(fres1[ig] + fres2[ig])". Why is it an exponential function of phase1 and phase2? if phase1 or phase2 is greater than 300 or 400, the result of the exponential function will be extremely great. Is there any literature or explanation? Thanks!

/* compute phase function for this geometry, all models */

for (iw = 0; iw < aertab->nwave; iw++) {

ig = gmult * iw;

splint(aertab->scatt,

&aertab->model[im]->lnphase[iw][0],

&aertab->model[im]->d2phase[iw][0],

aertab->nscatt, scatt1[ig], &phase1);

splint(aertab->scatt,

&aertab->model[im]->lnphase[iw][0],

&aertab->model[im]->d2phase[iw][0],

aertab->nscatt, scatt2[ig], &phase2);

// incident diffuse reflected diff dir

phase[im][iw] = exp(phase1) +

exp(phase2)*(fres1[ig] + fres2[ig]);

}

/* compute phase function for this geometry, all models */

for (iw = 0; iw < aertab->nwave; iw++) {

ig = gmult * iw;

splint(aertab->scatt,

&aertab->model[im]->lnphase[iw][0],

&aertab->model[im]->d2phase[iw][0],

aertab->nscatt, scatt1[ig], &phase1);

splint(aertab->scatt,

&aertab->model[im]->lnphase[iw][0],

&aertab->model[im]->d2phase[iw][0],

aertab->nscatt, scatt2[ig], &phase2);

// incident diffuse reflected diff dir

phase[im][iw] = exp(phase1) +

exp(phase2)*(fres1[ig] + fres2[ig]);

}