SUBROUTINE VPOLVF * * Module Number: 15.12.4 * * Module Name: polverify * * Keyphrase: * ---------- * Verify polarization calibrations of polarization efficiency and position * angle offset * * Description: * ------------ * This module verifies polarization and its position angle of targets for * any number of apertures (up to 20). * The polarization and its position angle of a target at a given aperture is * calculated from measurements at three different roll angles. * The distribution of roll angles should be such that they cover more than * 90 degrees. Ideally, they should be 60 degrees from one another. * For the same aperture, more than one measurements may be taken at the same * roll angle. Also, for the same aperture, input data must have the same * target, and roughly obtained at the same temperature/epoch. * Maximum number of input data points is 2000. * * FORTRAN Name: VPOLVF.FOR * * Keywords of Accessed Files and Tables: * -------------------------------------- * Name I/O Description / Comments * * Subroutines Called: * ------------------- * CDBS: * CDPGT, VPVFBN, VPVFPT * SDAS: * UMSPUT * OTHERS: * none * * History: * -------- * Version Date Author Description * 1 07-15-86 J.-C. Hsu Design and coding * 2 10-05-87 J.-C. Hsu F77 standard *------------------------------------------------------------------------------- * *== local: * --count rate REAL CNT(2000), * --count rate's standard deviation : CNTSD(2000), * --observed and reference polarization : POL(20), P0(20), * --observed and reference position angle : PA(20), PA0(20), * --intensity : INTEN(20), * --temperature : TEMP(2000), * --mean temperature : TMPAVE(20), * --position angle of aperture used : APPA(2000) * --epoch DOUBLE PRECISION EPOCH(2000), * --mean epoch : EPAVE(20) * --number of input data points INTEGER NPTS, * --number of apertures : NROWS, * --return status : STATUS, STATOK * --aperture CHARACTER*10 APERT(2000) * --target name CHARACTER*20 TARGET(2000) * --output table name CHARACTER*128 OFILE * --error message context CHARACTER*130 CONTXT *=========================begin hsp.inc========================================= * --status return code INTEGER OK, ERRNUM(20) * --message destination and priority INTEGER DEST, PRIO DATA OK /0/ DATA ERRNUM /701, 702, 703, 704, 705, 706, 707, 708, 709, 710, : 711, 712, 713, 714, 715, 716, 717, 718, 719, 720/ DATA DEST, PRIO /1, 0/ *=========================end hsp.inc=========================================== *------------------------------------------------------------------------------- * * read parameters and input data * CALL CDPGT ( : CNT, CNTSD, APPA, TEMP, EPOCH, APERT, TARGET, : NPTS, OFILE, STATUS) IF (STATUS .NE. OK) THEN CONTXT = 'error getting parameters and/or data' GO TO 999 END IF * * sort input data based on aperture/roll angle, calculate Stokes parameters for * each aperture * CALL VPVFBN (CNT, CNTSD, APPA, TEMP, EPOCH, NPTS, : APERT, TARGET, : POL, PA, INTEN, P0, PA0, TMPAVE, EPAVE, NROWS, : STATUS) IF (STATUS .NE. OK) GO TO 1000 * * write result to output table * CALL VPVFPT (OFILE, APERT, POL, PA, INTEN, P0, PA0, : TMPAVE, EPAVE, TARGET, NROWS, STATUS) IF (STATUS .NE. OK) GO TO 1000 * STATUS = OK GO TO 1000 * 999 CALL UMSPUT ('VPOLVF: ' // CONTXT, DEST, PRIO, STATOK) * 1000 RETURN END