int 
PZsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value)
{
    PZAN *job = (PZAN *) anal;

    NG_IGNORE(ckt);

    switch(which) {

    case PZ_NODEI:
        job->PZin_pos = value->nValue->number;
        break;

    case PZ_NODEG:
        job->PZin_neg = value->nValue->number;
        break;

    case PZ_NODEJ:
        job->PZout_pos = value->nValue->number;
        break;

    case PZ_NODEK:
        job->PZout_neg = value->nValue->number;
        break;

    case PZ_V:
        if(value->iValue) {
            job->PZinput_type = PZ_IN_VOL;
        }
        break;

    case PZ_I:
        if(value->iValue) {
            job->PZinput_type = PZ_IN_CUR;
        }
        break;

    case PZ_POL:
        if(value->iValue) {
            job->PZwhich = PZ_DO_POLES;
        }
        break;

    case PZ_ZER:
        if(value->iValue) {
            job->PZwhich = PZ_DO_ZEROS;
        }
        break;

    case PZ_PZ:
        if(value->iValue) {
            job->PZwhich = PZ_DO_POLES | PZ_DO_ZEROS;
        }
        break;

    default:
        return(E_BADPARM);
    }
    return(OK);
}
Can you add comments for this code?