version 1.14, 2015/03/04 04:45:11
|
version 1.15, 2015/03/11 22:18:05
|
|
|
int epszflag = (strstr(keylist,"EPSZ") != NULL); | int epszflag = (strstr(keylist,"EPSZ") != NULL); |
int debugflag = (strstr(debug,"debug") != NULL); | int debugflag = (strstr(debug,"debug") != NULL); |
| |
|
DRMS_Record_t *sharpinrec = sharpinrecset->records[0]; |
for (irec=0;irec<nrecs;irec++) |
DRMS_Record_t *sharpceainrec = sharpceainrecset->records[0]; |
{ |
|
|
|
|
|
DRMS_Record_t *sharpinrec = sharpinrecset->records[irec]; |
|
DRMS_Record_t *sharpceainrec = sharpceainrecset->records[irec]; |
|
DRMS_Segment_t *inseg = drms_segment_lookup(sharpceainrec, "Br"); | DRMS_Segment_t *inseg = drms_segment_lookup(sharpceainrec, "Br"); |
int nx = inseg->axis[0]; | int nx = inseg->axis[0]; |
int ny = inseg->axis[1]; | int ny = inseg->axis[1]; |
|
|
float *jz_smooth = (float *) (malloc(nxny * sizeof(float))); | float *jz_smooth = (float *) (malloc(nxny * sizeof(float))); |
float *err_term1 = (float *) (calloc(nxny, sizeof(float))); | float *err_term1 = (float *) (calloc(nxny, sizeof(float))); |
float *err_term2 = (float *) (calloc(nxny, sizeof(float))); | float *err_term2 = (float *) (calloc(nxny, sizeof(float))); |
float *err_termA = (float *) (calloc(nxny, sizeof(float))); |
float *fx = (float *) (malloc(nxny * sizeof(float))); |
float *err_termB = (float *) (calloc(nxny, sizeof(float))); |
float *fy = (float *) (malloc(nxny * sizeof(float))); |
float *err_termAt = (float *) (calloc(nxny, sizeof(float))); |
float *fz = (float *) (malloc(nxny * sizeof(float))); |
float *err_termBt = (float *) (calloc(nxny, sizeof(float))); |
|
float *err_termAh = (float *) (calloc(nxny, sizeof(float))); |
for (irec=0;irec<nrecs;irec++) |
float *err_termBh = (float *) (calloc(nxny, sizeof(float))); |
{ |
|
|
|
//DRMS_Record_t *sharpinrec = sharpinrecset->records[irec]; |
|
DRMS_Record_t *sharpceainrec = sharpceainrecset->records[irec]; |
|
DRMS_Segment_t *inseg = drms_segment_lookup(sharpceainrec, "Br"); |
| |
// ephemeris variables | // ephemeris variables |
float cdelt1_orig, cdelt1, dsun_obs, imcrpix1, imcrpix2, crpix1, crpix2; | float cdelt1_orig, cdelt1, dsun_obs, imcrpix1, imcrpix2, crpix1, crpix2; |
|
|
float UNIX_epoch = -220924792.000; | float UNIX_epoch = -220924792.000; |
sprint_time(timebuf, (double)time(NULL) + UNIX_epoch, "ISO", 0); | sprint_time(timebuf, (double)time(NULL) + UNIX_epoch, "ISO", 0); |
sprintf(historyofthemodule,"The following keywords were re-computed on %s: %s.",timebuf,keylist); | sprintf(historyofthemodule,"The following keywords were re-computed on %s: %s.",timebuf,keylist); |
printf("historyofthemodule=%s\n",historyofthemodule); |
//printf("historyofthemodule=%s\n",historyofthemodule); |
history0 = drms_getkey_string(sharpinrec, "HISTORY", &status); | history0 = drms_getkey_string(sharpinrec, "HISTORY", &status); |
strcat(historyofthemodule,"\n"); | strcat(historyofthemodule,"\n"); |
strcat(historyofthemodule,history0); | strcat(historyofthemodule,history0); |
|
|
float *p1pad = (float *)malloc(nxp*nyp*sizeof(float)); | float *p1pad = (float *)malloc(nxp*nyp*sizeof(float)); |
float *pmapn = (float *)malloc(nx1*ny1*sizeof(float)); | float *pmapn = (float *)malloc(nx1*ny1*sizeof(float)); |
| |
// define some arrays for the lorentz force calculation |
|
float *fx = (float *) (malloc(nxny * sizeof(float))); |
|
float *fy = (float *) (malloc(nxny * sizeof(float))); |
|
float *fz = (float *) (malloc(nxny * sizeof(float))); |
|
|
|
// Get emphemeris | // Get emphemeris |
sharpinrec = sharpinrecset->records[irec]; | sharpinrec = sharpinrecset->records[irec]; |
sharpceainrec = sharpceainrecset->records[irec]; | sharpceainrec = sharpceainrecset->records[irec]; |
|
|
| |
// Then take the derivative of Bt | // Then take the derivative of Bt |
if (computeBtotalderivative(bt, dims, &mean_derivative_btotal, mask, bitmask, derx_bt, dery_bt, bt_err, | if (computeBtotalderivative(bt, dims, &mean_derivative_btotal, mask, bitmask, derx_bt, dery_bt, bt_err, |
&mean_derivative_btotal_err, err_termAt, err_termBt)) |
&mean_derivative_btotal_err, err_term1, err_term2)) |
{ | { |
mean_derivative_btotal = DRMS_MISSING_FLOAT; | mean_derivative_btotal = DRMS_MISSING_FLOAT; |
mean_derivative_btotal_err = DRMS_MISSING_FLOAT; | mean_derivative_btotal_err = DRMS_MISSING_FLOAT; |
|
|
computeBh(bx_err, by_err, bh_err, bx, by, bz, bh, dims, &mean_hf, mask, bitmask); | computeBh(bx_err, by_err, bh_err, bx, by, bz, bh, dims, &mean_hf, mask, bitmask); |
| |
// Then take the derivative of Bh | // Then take the derivative of Bh |
if (computeBhderivative(bh, bh_err, dims, &mean_derivative_bh, &mean_derivative_bh_err, mask, bitmask, derx_bh, dery_bh, err_termAh, err_termBh)) |
if (computeBhderivative(bh, bh_err, dims, &mean_derivative_bh, &mean_derivative_bh_err, mask, bitmask, derx_bh, dery_bh, err_term1, err_term2)) |
{ | { |
mean_derivative_bh = DRMS_MISSING_FLOAT; | mean_derivative_bh = DRMS_MISSING_FLOAT; |
mean_derivative_bh_err = DRMS_MISSING_FLOAT; | mean_derivative_bh_err = DRMS_MISSING_FLOAT; |
|
|
if (meangbzflag) | if (meangbzflag) |
{ | { |
// Compute Bz derivative | // Compute Bz derivative |
if (computeBzderivative(bz, bz_err, dims, &mean_derivative_bz, &mean_derivative_bz_err, mask, bitmask, derx_bz, dery_bz, err_termA, err_termB)) |
if (computeBzderivative(bz, bz_err, dims, &mean_derivative_bz, &mean_derivative_bz_err, mask, bitmask, derx_bz, dery_bz, err_term1, err_term2)) |
{ | { |
mean_derivative_bz = DRMS_MISSING_FLOAT; | mean_derivative_bz = DRMS_MISSING_FLOAT; |
mean_derivative_bz_err = DRMS_MISSING_FLOAT; | mean_derivative_bz_err = DRMS_MISSING_FLOAT; |
|
|
| |
/******************************* END FLAGS **********************************/ | /******************************* END FLAGS **********************************/ |
| |
|
|
drms_free_array(bitmaskArray); | drms_free_array(bitmaskArray); |
drms_free_array(maskArray); | drms_free_array(maskArray); |
drms_free_array(bxArray); | drms_free_array(bxArray); |
|
|
drms_free_array(by_errArray); | drms_free_array(by_errArray); |
drms_free_array(bz_errArray); | drms_free_array(bz_errArray); |
drms_free_array(losArray); | drms_free_array(losArray); |
|
|
// free the arrays that are related to the lorentz calculation |
|
free(fx); free(fy); free(fz); |
|
//used for select calculations |
|
free(bh); free(bt); free(jz); |
|
free(bpx); free(bpy); free(bpz); |
|
free(derx); free(dery); |
|
free(derx_bt); free(dery_bt); |
|
free(derx_bz); free(dery_bz); |
|
free(derx_bh); free(dery_bh); |
|
free(bt_err); free(bh_err); free(jz_err); |
|
free(jz_err_squared); free(jz_rms_err); |
|
free(cvsinfoall); | free(cvsinfoall); |
free(jz_err_squared_smooth); |
|
free(jz_smooth); |
|
| |
free(rim); | free(rim); |
free(p1p0); | free(p1p0); |
|
|
free(p1pad); | free(p1pad); |
free(pmapn); | free(pmapn); |
| |
// free the arrays that are related to the numerical derivatives |
|
free(err_term2); |
|
free(err_term1); |
|
free(err_termB); |
|
free(err_termA); |
|
free(err_termBt); |
|
free(err_termAt); |
|
free(err_termBh); |
|
free(err_termAh); |
|
|
|
} //endfor | } //endfor |
| |
|
free(fx); free(fy); free(fz); |
|
free(bh); free(bt); free(jz); |
|
free(bpx); free(bpy); free(bpz); |
|
free(derx); free(dery); |
|
free(derx_bt); free(dery_bt); |
|
free(derx_bz); free(dery_bz); |
|
free(derx_bh); free(dery_bh); |
|
free(bt_err); free(bh_err); free(jz_err); |
|
free(jz_err_squared); free(jz_rms_err); |
|
free(jz_err_squared_smooth); |
|
free(jz_smooth); |
|
free(err_term2); |
|
free(err_term1); |
drms_close_records(sharpinrecset, DRMS_FREE_RECORD); | drms_close_records(sharpinrecset, DRMS_FREE_RECORD); |
drms_close_records(sharpceainrecset, DRMS_FREE_RECORD); | drms_close_records(sharpceainrecset, DRMS_FREE_RECORD); |
| |
|
|
drms_close_records(sharpceaoutrecset, DRMS_INSERT_RECORD); | drms_close_records(sharpceaoutrecset, DRMS_INSERT_RECORD); |
| |
printf("Success=%d\n",sameflag); | printf("Success=%d\n",sameflag); |
|
|
return 0; | return 0; |
|
|
} // DoIt | } // DoIt |