Index of /users/oxborrow/sdast

Icon  Name                    Last modified      Size  Description
[PARENTDIR] Parent Directory - [DIR] 039/ 2005-11-04 09:58 - [TXT] AH.lin6.email1.txt 2008-05-22 11:40 1.9K [TXT] AIList.closed.html 2012-06-21 16:55 68K [TXT] AIList.html 2012-06-21 16:56 1.9K [   ] BackgroundNote1.ps 1999-04-28 13:01 229K [TXT] CAO.CalibrationGain...> 2008-05-22 11:40 4.9K [   ] CAO.INT5poster.pdf 2004-03-11 09:40 951K [   ] CAO.INT5posterPaper.pdf 2004-03-19 13:47 370K [TXT] CAO.JCorGain6.X.emai..> 2008-05-22 11:41 2.6K [   ] CAO.Overview.figs.ep..> 2004-06-21 16:58 8.7K [   ] CAO.SPAG.ps.tar.gz 2004-06-21 17:05 132K [   ] CAO.SimpleOverview.eps 2004-06-21 16:58 15K [TXT] CAO.agingProposal1.txt 2008-05-22 12:11 6.2K [   ] CAO.anodeSPAG.ps.tar.gz 2004-06-21 17:00 49K [TXT] CAO.badEventSpectra1..> 2008-05-22 12:11 4.3K [TXT] CAO.badHVswitches.23..> 2008-05-22 12:11 2.3K [   ] CAO.dead.anodes.ps.gz 2004-06-21 16:59 22K [TXT] CAO.deadtime.email1.txt 2008-05-22 11:41 8.0K [TXT] CAO.deliveredGainHis..> 2008-05-22 12:12 4.4K [TXT] CAO.ecalAnomaly1.txt 2008-05-22 12:12 2.0K [   ] CAO.gain.history.ps...> 2004-06-21 16:57 43K [TXT] CAO.gainDetails.emai..> 2008-05-22 11:41 5.4K [TXT] CAO.gainDetails.emai..> 2008-05-22 11:41 3.6K [   ] CAO.gainRev45.fit6.3.ps 2004-07-20 11:58 147K [   ] CAO.jemx1.gain23.rev..> 2004-06-21 15:32 2.0M [   ] CAO.jemx2.gain.revs1..> 2004-06-21 15:33 616K [   ] CAO.jemx2.gain.revs3..> 2004-06-21 15:33 1.0M [   ] CAO.jemx2.gain3.rev8..> 2004-06-21 15:34 1.1M [   ] CAO.jmx1.rev167.anod..> 2004-06-21 17:12 1.3M [   ] CAO.jmx1.rev167.anod..> 2004-06-21 17:13 129K [   ] CAO.longStaring102.s..> 2004-12-16 11:01 367K [   ] CAO.munichPaper.acc.ps 2004-06-22 13:09 19M [   ] CAO14.slides.ps.tar 2000-03-14 09:42 216K [   ] CAOfeIntesity16-216.ps 2005-07-07 17:33 25M [TXT] CAOfeLine1email1.txt 2008-05-22 11:41 1.9K [TXT] CAOfeLineIntensity.txt 2008-05-22 12:12 4.2K [   ] CAOfeLineIntensityPe..> 2005-07-06 18:36 2.6M [   ] CAOfeLineIntensityPk..> 2005-07-06 18:37 5.2M [TXT] CAOjmx1.XeLines.emai..> 2008-05-22 11:42 3.8K [   ] CAOjmx1.XeLines.ps.tar 2005-05-17 15:03 13K [DIR] CRAB/ 2005-12-07 11:50 - [DIR] ChatMeetings/ 2011-03-17 13:26 - [DIR] ECAL/ 2009-11-13 18:00 - [TXT] ECALresults.html 2009-11-13 17:54 9.9K [IMG] EFfeLine1cenX3jmx2_s..> 2005-06-14 10:12 14K [IMG] EFfeLine1cenX3jmx2_s..> 2005-06-14 10:13 20K [TXT] EFfeLine1email1.txt 2008-05-22 11:42 1.5K [   ] EFfeLine1figures.fit..> 2005-06-14 10:16 10K [   ] ESAMissionReport.45.pdf 2004-01-22 09:21 583K [DIR] FAQ/ 2023-01-19 11:44 - [TXT] FP.misal.sources.txt 2004-08-19 09:00 39K [TXT] FP.misalignment.emai..> 2008-05-22 11:43 3.7K [TXT] FP.misfit.cpp 2004-08-19 09:11 16K [   ] FP.phd_misal.ps 2004-08-19 08:58 6.9M [DIR] GAIN/ 2025-03-05 08:59 - [TXT] GAINresults.html 2025-03-05 20:29 1.1M [TXT] GAINresults.html.bak 2019-06-24 16:48 392K [TXT] GAINresults.html.psv..> 2005-11-16 09:58 34K [TXT] GAINresults000.html 2021-02-03 17:29 16K [TXT] GAINresults100.html 2021-02-03 17:30 32K [TXT] GAINresults1000.html 2021-02-03 17:35 200K [TXT] GAINresults1100.html 2021-02-03 17:35 192K [TXT] GAINresults1200.html 2021-02-03 17:36 197K [TXT] GAINresults1300.html 2021-02-03 17:37 187K [TXT] GAINresults1400.html 2021-02-03 17:37 196K [TXT] GAINresults1500.html 2021-02-03 17:38 193K [TXT] GAINresults1600.html 2021-02-03 17:38 192K [TXT] GAINresults1700.html 2021-02-03 17:39 192K [TXT] GAINresults1800.html 2021-02-03 17:40 192K [TXT] GAINresults1900.html 2021-02-03 17:40 191K [TXT] GAINresults200.html 2021-02-03 17:30 47K [TXT] GAINresults2000.html 2021-02-03 17:41 190K [TXT] GAINresults2100.html 2021-02-03 17:12 200K [TXT] GAINresults2200.html 2021-02-03 16:58 180K [TXT] GAINresults300.html 2021-02-03 17:31 54K [TXT] GAINresults400.html 2021-02-03 17:32 93K [TXT] GAINresults500.html 2021-02-03 17:32 89K [TXT] GAINresults600.html 2021-02-03 17:33 93K [TXT] GAINresults700.html 2021-02-03 17:33 101K [TXT] GAINresults800.html 2021-02-03 17:34 101K [TXT] GAINresults900.html 2021-02-03 17:34 130K [TXT] GAINresultsBackup 2017-06-06 16:06 240K [   ] GainHistoryrev5-252...> 2004-12-14 15:14 26M [TXT] HotspotsBelow3keVPro..> 2008-05-22 12:13 2.1K [DIR] IBAS/ 2002-06-07 12:13 - [TXT] IOSM-install.txt 2001-11-08 13:13 4.4K [TXT] IPC.newProcedures1.txt 2008-05-22 12:13 5.0K [TXT] ISDCchecklist5.1.html 2005-10-17 17:40 12K [TXT] ISDCchecklist5.1.txt 2005-10-17 17:37 5.8K [DIR] ISDCchecklist5.1_files/ 2005-10-17 17:40 - [TXT] ISDCdirectories.html 2007-07-11 10:38 435 [DIR] ISSW/ 2010-12-17 13:37 - [TXT] ISSWpage.html 2009-12-04 12:01 9.9K [DIR] InstrConfig/ 2024-03-30 12:33 - [TXT] JC.Anodes_list.txt 2004-12-14 10:44 1.3K [TXT] JC.ISWTobs.229.231.r..> 2008-05-22 12:13 1.0K [   ] JC.J1_Xe_chrono1.ps 2004-07-20 10:23 24K [TXT] JC.JMX1_Xe.out1.txt 2004-07-20 10:19 58K [   ] JC.JMX1_Xe_pos1.ps 2004-07-20 10:41 24K [   ] JC.JMX1_Xe_width1.ps 2004-07-20 10:42 37K [   ] JC.JMX2_Xe_pos1.ps 2004-07-20 10:43 55K [   ] JC.JMX2_Xe_width1.ps 2004-07-20 10:43 101K [TXT] JC.Midisky_241_res.txt 2004-10-08 09:40 3.5K [TXT] JC.OSA4_241_res.txt 2004-10-08 09:41 13K [   ] JC.accum_rev242.idt 2004-10-18 11:01 2.2K [TXT] JC.diskspace.email1.txt 2008-05-22 11:43 1.7K [TXT] JC.jmx1_242_res.txt 2004-10-18 11:00 8.0K [IMG] JC.jmx1_srcl_arf.fits 2005-10-17 17:11 17K [IMG] JC.jmx1_srcl_speA.fits 2005-10-17 17:06 20K [IMG] JC.jmx1_srcl_speB.fits 2005-10-17 17:07 20K [TXT] JC.mosaic_weight.c 2004-01-02 11:12 40K [TXT] JC.mosaic_weight.par 2004-01-02 11:12 1.1K [   ] JC.munich.poster.pdf 2004-04-13 11:20 840K [   ] JC.pointing.dat.003 2004-06-21 15:03 2.6M [TXT] JC.rev233Results.ema..> 2004-09-15 08:34 1.0K [TXT] JC.rev233Results.ema..> 2004-09-15 08:36 1.0K [TXT] JC.rev234.email.txt 2008-05-22 11:51 861 [TXT] JC.rev235.email.html 2004-09-21 08:53 1.1K [TXT] JC.rev235.email.txt 2008-05-22 11:51 48 [TXT] JC.srcSpec.xspec_A.log 2005-10-17 17:09 600 [TXT] JC.xeLline.email1.html 2004-05-19 12:16 1.7K [   ] JC_Xe_J1_SPAG_spe.ps 2004-05-19 12:17 24K [   ] JC_Xe_J1_bkg_spectru..> 2004-05-19 12:17 15K [   ] JC_Xe_J2_bkg_spectru..> 2004-05-19 12:18 15K [   ] JC_Xe_jmx1_dsp_179_4..> 2004-05-19 12:17 19K [   ] JC_Xe_jmx2_dsp_179_4..> 2004-05-19 12:18 21K [   ] JCmeeting30.041107_0..> 2004-12-07 10:08 17K [   ] JCmeeting30.041107_a..> 2004-12-07 10:08 17K [TXT] JCmeeting30.Anodes_l..> 2004-12-07 10:09 1.3K [   ] JCmeeting30.JMX1_Xe_..> 2004-12-07 10:09 30K [   ] JCmeeting30.JMX1_Xe_..> 2004-12-07 10:09 57K [   ] JCmeeting30.tar.gz 2004-12-07 10:11 23K [TXT] JCmeeting30.txt 2004-12-07 10:08 1.9K [TXT] JCsourceSpeclog.B.txt 2005-10-17 17:09 102K [TXT] JCspectBinDependance..> 2005-10-17 17:04 1.5K [TXT] JCsrcSpec.log.A.txt 2005-10-17 17:08 103K [TXT] JCsrcSpec.xspec_B.log 2005-10-17 17:10 600 [   ] JEM-X.calib.gainHist..> 2004-12-03 09:46 2.4M [TXT] JEM-X1.status.feb200..> 2008-05-22 12:14 2.8K [TXT] JEM-Xforum.html 2013-08-30 17:18 8.3K [   ] JEM2_Counts_SCOX1.re..> 2004-01-22 09:25 127K [TXT] JEMX.gain.evolution...> 2004-07-20 10:07 634 [   ] JEMX1_Change-Record.doc 2004-03-22 10:22 429K [TXT] JEMX1_Change-Record...> 2004-03-22 10:39 63K [DIR] JEMX1_Change-Record_..> 2004-01-22 09:08 - [   ] JEMX2_Change-Record.doc 2004-03-22 10:22 376K [TXT] JEMX2_Change-Record...> 2004-03-22 10:46 72K [DIR] JEMX2_Change-Record_..> 2006-04-06 10:29 - [   ] JEMX_instab.doc 2004-03-10 09:24 23K [TXT] JEMXinstruments.html 2009-12-04 12:04 2.1K [IMG] JMX1-IMOD-GRP.fits 2001-10-16 14:20 1.9M [TXT] JMX1GainNotesRev309.txt 2005-11-04 10:00 259 [   ] JMX1gainHistory252.f..> 2004-12-14 15:01 6.9M [IMG] JMX2-IMOD-GRP.fits 2001-10-16 14:20 1.9M [   ] JMX2gainHistory239.f..> 2004-12-14 15:01 10M [   ] JMXi-IMOD-GRP.tar.gz 2002-04-08 16:41 321K [TXT] KP.svr3review.email1..> 2008-05-22 11:51 3.7K [TXT] MS.orbitEvolution.em..> 2008-05-22 11:51 2.2K [   ] MakePNGfile.sh 2009-03-17 17:03 686 [   ] Makefile 2004-08-23 10:07 331 [TXT] Makefile1 1999-03-09 13:35 3.9K [TXT] Makefile2.txt 2000-02-25 12:34 4.5K [TXT] Makefile_cc.txt 2000-02-25 12:32 4.0K [   ] Meeting14.peter.slid..> 2000-03-10 13:57 258K [   ] Misalignment.JMX1.cy..> 2005-03-15 12:57 106K [   ] Misalignment.JMX1.gr..> 2005-03-15 12:59 64K [   ] Misalignment.JMX1.sc..> 2005-03-15 13:01 60K [   ] Misalignment.JMX2.cy..> 2005-03-15 13:03 111K [   ] Misalignment.JMX2.gr..> 2005-03-15 13:07 89K [TXT] Misalignment.JMX2.gr..> 2005-03-15 13:05 89K [DIR] MondayMeetings/ 2011-03-17 13:18 - [TXT] NJW.SVR.SCWs1.txt 2008-05-22 12:15 1.5K [TXT] NJW.SVR5.0_work_pack..> 2005-06-14 11:22 1.3K [TXT] NJW.SmartSelect1.txt 2008-05-22 12:15 560 [   ] NJW.arf_repair_kit_b..> 2004-05-19 13:19 257K [TXT] NJW.catalogues.email..> 2008-05-22 11:51 1.1K [TXT] NJW.catalogues.email..> 2008-05-22 11:52 546 [TXT] NJW.catalogues.email..> 2008-05-22 11:52 803 [TXT] NJW.energyLimits1.txt 2008-05-22 12:15 1.6K [TXT] NJW.jemxDetectorData..> 2008-05-22 12:16 5.8K [   ] NJW.jemx_spec_cal_i1..> 2004-04-13 11:16 612K [   ] NJW.jemx_tn_poscor.ps 2004-08-31 15:42 434K [TXT] NJW.jemxlib.h 2004-11-25 10:05 9.8K [   ] NJW.jemxlib_manual.pdf 2004-11-25 10:03 359K [TXT] NJW.jemxlib_predmod_..> 2004-10-18 11:22 3.0K [TXT] NJW.jisurcat4_n.readme 2004-10-18 14:29 2.0K [TXT] NJW.lin6.archive.txt 2008-05-22 12:16 601 [TXT] NJW.lin6.email1.txt 2008-05-22 11:52 905 [TXT] NJW.mk_ideal_shd.pro 2004-08-31 15:48 892 [TXT] NJW.mosaicking.email..> 2008-05-22 11:52 1.0K [   ] NJW.newsource.templa..> 2003-12-03 10:14 913 [TXT] NJW.newsources.templ..> 2008-05-22 11:52 935 [TXT] NJW.notes_users_manu..> 2004-11-26 12:51 1.7K [TXT] NJW.pointing_plot.em..> 2008-05-22 11:52 941 [TXT] NJW.repairKit.email1..> 2008-05-22 11:53 961 [TXT] NJW.source.catalogue..> 2008-05-22 12:16 860 [TXT] NJWcrabAzimuthAngle.txt 2008-05-22 12:16 876 [TXT] NJWcrabFluxIROS1emai..> 2008-05-22 11:53 2.9K [   ] NJWcrabFluxIROS_0.ps 2005-06-14 10:37 132K [   ] NJWcrabFluxIROS_1.ps 2005-06-14 10:37 157K [   ] NJWcrabFluxIROS_2.ps 2005-06-14 10:37 142K [   ] NJWcrabFluxIROS_3.ps 2005-06-14 10:38 142K [   ] NJWjmx1_crab_4deg_of..> 2005-10-17 16:15 18K [TXT] NL.CBJ.collimatorTil..> 2008-05-22 12:16 1.6K [   ] NL.CRAB1_T2200_E1.pdf 2004-07-20 13:42 12K [   ] NL.CRAB1_T2200_E1_or..> 2004-07-20 13:42 12K [   ] NL.CRAB_MB7_044_1.pdf 2004-07-22 11:36 13K [   ] NL.CRAB_MB7_170_1.pdf 2004-07-22 11:37 8.9K [   ] NL.CRAB_SL_1all.pdf 2004-07-20 13:42 21K [   ] NL.CRAB_SL_2all.pdf 2004-07-20 13:43 21K [TXT] NL.CrabFlux.collimat..> 2008-05-22 12:17 1.4K [TXT] NL.CrabFlux.techNote..> 2008-05-22 12:17 2.2K [TXT] NL.FeLineAnalysisEma..> 2008-05-22 12:17 8.5K [TXT] NL.JEMXperformance.e..> 2008-05-22 11:53 8.4K [TXT] NL.LC.status.email1.txt 2008-05-22 11:53 7.0K [TXT] NL.SmartSelection1.txt 2008-05-22 12:17 953 [   ] NL.brass_on_mask.pdf 2005-04-14 10:39 197K [TXT] NL.crab.calib.input.txt 2008-05-22 12:18 4.7K [TXT] NL.crab.calib.planni..> 2008-05-22 12:18 9.6K [TXT] NL.crab.calib.planni..> 2008-05-22 12:18 1.4K [TXT] NL.fluxComp.email1.txt 2008-05-22 11:53 1.2K [TXT] NL.imaging.email.txt 2008-05-22 11:53 3.4K [TXT] NL.jmx1status.email1..> 2008-05-22 11:54 3.9K [TXT] NL.leaked.fluxes.ema..> 2008-05-22 11:54 1.3K [   ] NL.mask_sup_struct.pdf 2005-04-14 10:40 564K [TXT] NL.midiskyStructures..> 2008-05-22 12:18 12K [TXT] NL.mosaicing.email1.txt 2008-05-22 11:54 5.7K [TXT] NL.mosaicing.email2.txt 2008-05-22 11:54 1.8K [TXT] NL.status.email1.txt 2008-05-22 11:54 2.7K [   ] NL.techNote8.pdf 2005-04-14 10:32 17K [   ] NL.techNote9.pdf 2005-04-14 10:36 92K [TXT] NL.variance.email1.txt 2008-05-22 11:55 7.0K [TXT] NL.variance.email2.txt 2008-05-22 11:55 2.7K [TXT] NL.whatArePixels.txt 2008-05-22 12:19 4.3K [TXT] NLcalibrationWishesO..> 2008-05-22 12:19 3.5K [TXT] NLcrabFlux1email1.txt 2008-05-22 11:55 3.1K [TXT] NLimprovedSpectralEx..> 2008-05-22 12:19 6.4K [TXT] OSA5.0-checklist.txt 2005-02-10 09:26 1.8K [TXT] OSA5.plans.txt 2004-09-08 10:15 1.4K [   ] PK.18795.web.pdf 2006-03-20 14:43 189K [IMG] PK.Crab0042_jmx1_Inn..> 2004-07-20 14:31 14K [IMG] PK.Crab0102_jmx1_Inn..> 2004-07-20 14:31 14K [IMG] PK.Crab0170_jmx2_Inn..> 2004-07-20 14:30 14K [TXT] PK.CrabPos1.txt 2008-05-22 12:19 655 [   ] PK.CrabPos2.pdf 2004-06-21 15:18 11K [   ] PK.CrabPosHisto1.pdf 2004-06-21 15:20 9.6K [IMG] PK.Crab_RA_Dec_Scatt..> 2004-06-21 15:10 5.5K [   ] PK.INT5workshop.post..> 2004-03-15 12:06 955K [   ] PK.Offset_vs_Detsig.pdf 2004-06-21 15:20 15K [   ] PK.RMxAC..20_yfuchs.pdf 2006-03-20 14:54 1.4M [TXT] PK.SL.TO.Offline29.txt 2008-05-22 12:20 4.1K [TXT] PK.SM.CrabFluxes1.txt 2008-05-22 12:20 664 [TXT] PK.ScwList.txt 2004-05-19 12:48 80K [TXT] PK.SmartSelection1.txt 2008-05-22 12:20 1.2K [TXT] PK.SmartSelection2.txt 2008-05-22 12:20 699 [TXT] PK.SourcePos1.txt 2008-05-22 12:20 4.2K [   ] PK.VelaPos1.pdf 2004-06-21 15:19 6.2K [   ] PK.VelaPosHisto1.pdf 2004-06-21 15:21 6.2K [   ] PK.aa2961-05.pdf 2006-03-20 14:31 359K [   ] PK.crab170.pointing_..> 2004-06-25 10:37 8.8K [TXT] PK.crab170.pointings..> 2008-05-22 12:21 390 [TXT] PK.dependancies.scri..> 2008-05-22 12:21 597 [IMG] PK.hotspot.217.26.jpg 2004-07-28 10:47 92K [TXT] PK.jemxDetectorData.txt 2008-05-22 12:21 1.6K [TXT] PK.jemx_shared.h 2004-08-23 11:21 3.0K [TXT] PK.jemx_shared_gener..> 2004-08-23 11:22 5.7K [TXT] PK.jemx_shared_imod.c 2004-08-23 11:23 16K [TXT] PK.jtools.email1.txt 2008-05-22 11:55 1.6K [TXT] PK.mosaicing.email1.txt 2008-05-22 11:56 3.5K [TXT] PK.normalised.fluxes..> 2008-05-22 11:56 1.2K [TXT] PK.osa4.0.crabspectr..> 2004-06-25 11:37 3.4K [TXT] PK.sharedsoftware.em..> 2008-05-22 11:56 843 [TXT] PK.sharedsoftware.em..> 2008-05-22 11:56 2.3K [TXT] PK.sharedsoftware.em..> 2008-05-22 11:56 1.9K [TXT] PK.sharedsoftware.em..> 2008-05-22 11:56 4.2K [TXT] PK.sourcelist.email1..> 2008-05-22 11:57 701 [TXT] PK.specCrabFits.disc..> 2004-07-20 14:34 4.2K [TXT] PK.srcSpec.problem1.txt 2008-05-22 12:21 659 [TXT] PKexoCrabFluxEmail1.txt 2008-05-22 12:22 678 [IMG] PKexoCrabFluxFig1.jpg 2005-06-15 09:51 55K [IMG] PKexoCrabFluxFig2.jpg 2005-06-15 09:52 55K [TXT] PKfeLine1email1.txt 2008-05-22 11:57 1.6K [TXT] PKfeLine1email2.txt 2008-05-22 11:57 160 [IMG] PKfeLineVelax1.png 2005-06-14 10:22 18K [TXT] PKimprovedSpectralEx..> 2008-05-22 12:22 3.4K [TXT] PL.email1.txt 2008-05-22 11:57 1.2K [   ] PL.spectra.jmxosa42...> 2005-04-14 09:42 153K [   ] PLcrabSpectra2.jemx0..> 2005-06-14 12:20 18K [   ] PLcrabSpectra2.jemx0..> 2005-06-14 12:21 18K [TXT] PLcrabSpectra2email1..> 2008-05-22 11:57 2.3K [TXT] PLcrabSpectra2email2..> 2008-05-22 11:58 2.8K [   ] PLcrabSpectra2jemx_o..> 2005-06-14 15:54 22K [   ] Peter.script.depend.csh 2004-03-05 12:14 1.1K [TXT] Plans.for.OSA3.1.txt 2004-01-07 13:33 4.7K [   ] RIDdoc.ps 2000-04-28 10:38 803K [   ] RIDdoc1.0.ps 2000-07-05 15:05 932K [TXT] RP2.0.html 2000-11-01 13:24 18K [   ] SB.FTP.JEMX_Aug2004.pdf 2004-08-16 08:47 92K [   ] SB.FeLineAnalysis_cu..> 2005-07-25 15:54 213K [   ] SB.FeLineAnalysis_ga..> 2005-07-25 15:54 23K [   ] SB.FeLineAnalysis_re..> 2005-07-25 15:53 15K [TXT] SB.Get_IPF.exp 2004-08-13 13:05 5.2K [TXT] SB.HVsettings1.txt 2008-05-22 12:22 560 [TXT] SB.JEM-X2reactivatio..> 2008-05-22 11:58 4.6K [   ] SB.JEMX1_relgain.ps 2004-12-14 09:51 20K [   ] SB.JEMX2_relaxplots.pdf 2004-04-13 11:06 52K [   ] SB.JEMX_PCs_at_ISDC.pdf 2004-01-30 15:09 111K [   ] SB.JEMX_gain_req.pdf 2005-10-17 18:08 24K [TXT] SB.calibAging.email1..> 2008-05-22 11:58 279 [TXT] SB.ecalAnomaly.email..> 2008-05-22 11:58 4.1K [TXT] SB.greyFilter.email1..> 2008-05-22 11:59 381 [TXT] SB.ipfScript1.txt 2008-05-22 12:22 2.3K [TXT] SB.jemx2.activation.txt 2008-05-22 12:23 2.6K [DIR] SCIENCE/ 2008-05-22 12:28 - [DIR] SDASTmeetings/ 2012-06-21 16:57 - [   ] SL.averates_20_90lin..> 2004-12-14 10:07 1.7K [   ] SL.crab170.specfit.C..> 2004-07-20 11:38 12K [   ] SL.crab170specfit1.t..> 2004-07-20 11:37 5.7K [TXT] SL.fit.Crab170.spec1..> 2008-05-22 12:23 1.6K [   ] SL.j_to_xronos.tar 2003-12-08 15:13 10K [TXT] SL.leaked.fluxes.ema..> 2008-05-22 11:59 2.0K [TXT] SL.normalised.fluxes..> 2008-05-22 11:59 2.6K [TXT] SL.relativeRates.ema..> 2008-05-22 11:59 463 [TXT] SL.src.extract.xrono..> 2008-05-22 11:39 4.3K [   ] SL.vela88leakage.ps 2004-02-09 10:36 6.8K [TXT] SM.Background.email1..> 2008-05-22 11:40 840 [   ] SM.Crab_0170_ima_flu..> 2004-07-20 10:51 14K [   ] SMN.CYGx3_sum_comp_o..> 2004-07-20 14:05 13K [TXT] SMN.EXO2030+375.resu..> 2008-05-22 12:23 2.0K [   ] SMN.EXO2030_pulse_pr..> 2005-10-17 17:16 881K [   ] SMN.EXO2030_spe.ps 2005-10-17 17:17 935K [TXT] SMN.PK.SL.sysErrors...> 2004-07-20 14:09 11K [TXT] SMN.crab_fit.sysErro..> 2004-07-20 13:56 1.0K [   ] SMN.fit.crab_new_old..> 2004-07-20 11:14 58K [   ] SMN.fit.ratio_crab1.ps 2004-07-20 11:13 24K [   ] SMN.raw_CYGx3_spectr..> 2004-07-20 14:04 35K [   ] SMN.report_jmx2_spec..> 2004-05-19 17:48 32K [TXT] SMN.sysErrors.result..> 2004-07-20 13:56 1.5K [TXT] SP.OSA5.1checklist.txt 2008-05-22 12:24 1.3K [TXT] SP.OSA5.1checklist2.txt 2008-05-22 12:24 4.8K [IMG] SPCrab2FigCrab_1.jpg 2005-06-20 10:07 39K [TXT] SPcrab1Email.txt 2008-05-22 12:24 1.0K [IMG] SPcrab1Jemx_1.jpg 2005-06-14 10:02 53K [IMG] SPcrab1jemx_1_all.jpg 2005-06-14 10:03 55K [IMG] SPcrab1jemx_1_coord.jpg 2005-06-14 10:04 85K [TXT] SPcrab2Email1.txt 2008-05-22 12:24 2.4K [IMG] SPcrab2FigCrab_0.jpg 2005-06-20 10:06 38K [IMG] SPcrab2FigCrab_2.jpg 2005-06-20 10:08 39K [IMG] SPcrab2FigCrab_3.jpg 2005-06-20 10:12 38K [TXT] SPcrabFluxIROS1email..> 2008-05-22 11:40 759 [   ] Sami14.slides.eps.tar 2000-03-14 09:35 133K [TXT] ScienceResults.html 2007-06-04 17:15 11K [TXT] Scripts.htm 2002-06-03 10:53 5.0K [   ] Stability_of_MSGC.pdf 2004-03-10 09:24 2.6M [TXT] TEST.html 2012-03-23 12:35 4.9K [TXT] TechnicalDocs.html 2009-03-17 16:18 3.9K [TXT] TemplateComp.txt 2000-02-04 10:55 6.4K [TXT] analysis_anomalies.html 2004-10-19 11:23 2.3K [TXT] anomaly001_smc_swid_..> 2004-03-16 09:13 878 [   ] anomaly001_spe_jump.ps 2004-03-16 09:11 14K [   ] bkg.report.ps 2000-04-05 16:36 14M [   ] bkg_model.ps 2002-04-29 09:24 96K [TXT] chat.topic86.txt 2008-05-22 12:24 3.8K [TXT] chat_01_10_03.txt 2003-10-03 13:25 10K [TXT] chats98to00.txt.inc 2001-10-19 13:08 799 [   ] dfeesw.in.48steps.pdf 2001-01-12 09:35 17K [   ] gnu_NGC_6441_053_T25..> 2004-01-16 09:17 38K [   ] gnu_NGC_6441_053_T25..> 2004-01-16 09:18 38K [TXT] hotspot.discussion1...> 2004-07-28 10:49 3.1K [   ] instruments_axes.ps 2002-09-19 14:23 2.6M [   ] j_bkg_datastructure.eps 2000-03-14 09:31 12K [   ] j_bkg_datastuct_diag..> 2000-03-14 09:31 32K [   ] j_bkg_scal_calc_sche..> 2000-03-14 09:31 36K [   ] j_bkg_spat_select_sc..> 2000-03-14 09:31 26K [   ] j_bkg_spec_select_sc..> 2000-03-14 09:31 21K [   ] j_cor_position-5.0_t..> 2004-08-18 13:53 2.9M [TXT] jemx.configuration.html 2005-05-18 15:26 22K [TXT] jemx.h 2005-03-17 10:06 31K [   ] jemx_background_1.ps 1999-01-28 12:12 591K [   ] jemx_background_2.ps 1999-12-02 11:23 2.2M [   ] jemx_svr_3.0.ps.gz 2003-12-05 11:37 2.0M [TXT] jerome.ISDC.email1.txt 2008-05-22 12:00 1.8K [TXT] jerome.ISDC.email2.txt 2008-05-22 12:00 736 [   ] jsim_sw_manual.ps 2000-02-14 09:53 417K [   ] larsson.ps 2000-03-14 10:03 2.5M [   ] microstrip_TN_II.pdf 2004-01-16 09:31 92K [   ] monday.meeting.64.fi..> 2005-10-17 15:34 36K [   ] monday_gain_start.ps 2004-03-05 11:28 34K [TXT] monday_meetings.html 2008-06-03 10:45 27K [   ] mosaicking_mw_manual.ps 2004-03-17 14:30 98K [TXT] njw.index.html 1999-01-18 10:58 5.3K [TXT] nl.email.support.str..> 2008-05-22 12:00 2.1K [DIR] oldEmails/ 2003-08-26 10:33 - [   ] overview5.0.ps 2000-01-17 14:59 84K [TXT] param_names.html 2004-12-08 11:16 24K [TXT] peter.ISDC.email1.txt 2003-09-02 09:48 911 [TXT] peter.ISDC.email2.txt 2003-09-02 09:49 1.1K [DIR] plone/ 2006-04-27 14:41 - [TXT] rid.template.txt 2000-04-07 12:37 2.6K [   ] sdast.minutes18.ps 2001-03-26 12:49 250K [TXT] sdast_chat.html 2007-02-14 13:46 4.9K [TXT] sdast_chat.html% 1998-11-13 11:58 578 [TXT] sdast_chat_index.txt 2000-11-15 10:32 15K [TXT] sdast_forum.html 2013-08-30 17:18 37K [TXT] sdast_forum.html% 1999-04-28 13:05 6.2K [TXT] sdast_srv.html 2000-11-09 14:55 224 [TXT] shared_sw_exchange.html 2004-10-18 12:14 3.7K [   ] slides23.ps 2002-06-03 12:08 57K [TXT] srv_input.txt 2000-11-09 14:32 0 [TXT] srv_script 2000-11-09 14:54 56 [IMG] sv027029.jpg 2004-03-22 10:39 30K [IMG] sv027030.gif 2004-03-22 10:39 1.5K [IMG] sv027030.jpg 2004-03-22 10:46 30K [IMG] sv027031.gif 2004-03-22 10:39 1.5K [IMG] sv027032.gif 2004-03-22 10:39 1.5K [IMG] sv027033.gif 2004-03-22 10:39 1.6K [IMG] sv027034.gif 2004-03-22 10:46 1.5K [IMG] sv027035.gif 2004-03-22 10:46 1.5K [IMG] sv027036.gif 2004-03-22 10:46 1.5K [IMG] sv027037.gif 2004-03-22 10:46 1.6K [   ] tech_note11_shadowgr..> 2003-09-08 09:12 72K [DIR] technical/ 2011-03-17 13:12 - [DIR] templates/ 2001-08-08 10:53 - [TXT]  2012-02-06 16:01 263K
PARAMETER INTERFACE LIBRARY
copyright - Integral Science Data Center
ch. d'Ecogia 16
1290 Versoix
Switzerland
version - 1.0
date - 18-Aug-98
author - Jerzy.Borkowski@obs.unige.ch
Hardware :
  • sparc-sun-solaris
  • mips-sgi-irix
  • alpha-dec-osf
  • intel-unknown-linux
  • Some people have reported successful compilation on HP-UX machines.

    Software:

  • C compiler (gcc, cc), must support ANSI prototypes
  • F90 compiler (f90, nagf90), not necessary if you do not want to have F90 bindings.
  • system utilities like: make, gzip, tar
  • PIL library was tested with the following compilers: gcc, Sunsoft cc, SGI cc, Sunsoft f90, SGI f90, DEC f90, NAG f90. Other compilers may also be supported. Not all combinations of C and F90 compilers were tested.

    note: PILlibrary is being developed on sparc-sun-solaris architecture. This is current reference hardware and software for ISDC.

    First create empty directory and copy distribution file to it (notice to netscape users: position mouse cursor on link then press RIGHT mouse button and choose Save As option).Now do the following :
    gzip -d pil.tar.gz
    tar xvf pil.tar
    make distclean
    ./configure
    make create_install_dirs   (only necessary when using Sunsoft f90 compiler)
    make
    make demos
    if everything runs ok, PIL library and several demo executables are built.  ./configure script adapts Makefile to C and F90 compilers tastes. If there is no F90 compiler available ./configure script disables compilation of F90 source files. If ./configure script is unable to automatically find correct C and F90 compiler one can set CC, F90, CFLAGS and F90FLAGS environment variables to force ./configure script to choose specific compilers/options. For example ./configure script tends to favor gcc over other C compilers. So if you have gcc and other C compiler it will always choose gcc. If you want to use C compiler other then gcc please type :
    setenv CC name_of_your_C_compiler (typically cc)
    before running ./configure
    Library code is self-contained and does not depend on other packages. The purpose of PIL library is to enable ISDC applications access IRAF compatible parameter files. IRAF parameter file is a text file. Every line describes single parameter. Format is as follows :

    name,type,mode,default,min,max,prompt

    name - is a name of parameter

    type - type of parameter. Allowable values:

    mode - mode of parameter. Allowable value is any reasonable (it is: a/h/q/hl/ql) combination of :
    default - default value for parameter [this field is optional]. This can be: yes/no/y/n for booleans, integer/real literals (ie. 123, -34567 for integers, 1.23, 1234, -45.3e-5 for reals) for integers/reals, and string literals for strings and filenames. String literals can be: abcdef, "abcdef", 'abcdef'.
    min - minimum value allowable for parameter [this field is optional].
    max - maximum value allowable for parameter [this filed is optional]. Works only for integer, real and filename data types. Both min and max must be specified for range checking to be active. Also min cannot be larger than max.
    prompt - short description of parameter to be displayed whenever library asks for value. If none is given library will display parameters name.
    As an example :
    describes parameter named pressure of type real, mode = query + learn, with default value = 1013, no range checking and prompt "Enter atmospheric pressure in hPa"

    Empty lines and lines beginning with '#' are considered to be comment lines.

    Typically for every executable there is a corresponding parameter file. The name of parameter file is the name of executable file plus ".par" suffix. Thus executable isdc_copy will have parameter file named isdc_copy.par. Parameter files are searched for in several locations:

    1) PFILES enviromnent variable

    This variable is used to specify where the parameters are looked for. The variable uses a ";" delimiter to separate 2 types of parameter directories:

    <path1>;<path2>, (when <path1> equals <path2> you can omit <path2> and semicolon>

    where path 1 is one or more user/writeable parameter directories, and path 2 is one or more system/read-only parameter directories.The PIL allows multiple ":"-delimited directories in both portions of the PFILES variable. The default values from path 2 are used the first time task is run, or whenever the default values have been updated more recently than the user's copy of the parameters. The user's copy is created when a task terminates, and retains any learned changes to the parameters.

    2) Current working directory. It is equivalent of PFILES set to ".".

    note: contrary to FTOOLS/SAOrd/XPI PFILES environment variable can be left undefined. In this can case PIL library will look for parameter files only in current directory. FTOOLS executables return error in this situation.

    In general parameters values are read from parameter file, However they can be overridden if command line arguments are entered. Lets assume we have written simple application named ISDCCopy to copy a file. It accepts 2 parameters, namely InFile and OutFile. The corresponding parameter file could be :
     
    InFile,s,ql,sample1.fits,,,"Enter input file name"
    OutFile,s,ql,/dev/null,,,"Enter output file name"

    If we run that application without any arguments

    it will prompt us for these two parameters. Pressing 2 times <return> key will accept default values and in this case application will attempt to copy sample1.fits file to /dev/null device (not a very useful function).If we type : or it will ask only for 2nd second parameter. The value of first parameter will be set to sample34.fits. If we type: or or it will not ask for any parameters. If we type : it will ask only for the first parameter.

    note: If a call to PILOverrideQueryMode has been made and PIL_QUERY_OVERRIDE mode is in effect PIL library does not prompt user when invalid or out of range argument is encountered. Instead it returns with an error

    Unless stated otherwise all PIL API functions return status code of type int. This is either ISDC_OK which equals PIL_OK which equals 0, which means everything went perfectly or negative value (error code) meaning some error occured. List of error codes can be found in pil_error.h file. Functions given below are the "official" ones. Internally PIL library calls many more functions.

    int PILInit(int argc, char **argv);

    This function initializes PIL library. This function has to be called before any other PIL function (there are some exceptions to this rule).  It does the following :
    Based on PILModuleName (or argv[0] if PILModuleName is empty) calculates name of parameter file. Usually name of parameter file equals argv[0] + ".par" suffix but this can be overriden by calling PILSetModuleName and/or PILSetModuleVersion before calling PILInit. After successful termination parameter file is opened and read in, and global variable PILRunMode is set to one of the following values : ISDC_SERVER_MODE is set whenever there is parameter "ServerMode" and its value is "yes" or "y". In any other case PILRunMode is set to ISDC_SINGLE_MODE.

    notes: only one parameter file can be open at a time. Parameter file remains open until PILClose is called. When writing applications for ISDC one should not use PILInit directly. Instead, one should call CommonInit function (from Common library) which calls PILInit.

    int PILClose(int status);

    This function has to be called before application terminates. It closes open files, and writes all learned parameters to the disk files (only when status == ISDC_OK). Once this function is called one cannot call any other PIL functions. One can however call PILInit to reinitialize PIL library.
    Function also clears PILRunMode, PILModuleName and PILModuleVersion global variables.

    note: this function does not terminate process. It simply shuts down PIL library. When writing applications for ISDC one should not use PILClose directly. Instead, one should call CommonExit function (from Common library) which calls PILClose.

    int PILReloadParameters(void)

    This function reloads parameters from parameter file. It is called internally by PILInit. It should be called explicitly by applications running in ISDC_SERVER_MODE to rescan parameter file and reload parameters from it. Current parameter list in memory (including any modifications) is deleted. PIL library locks whole file for exclusive access when reading from parameter file.

    note: parameter file remains open until PILClose is called. Function internally DOES NOT close&reopen parameter file.

    int PILFlushParameters(void)

    This function flushes changes made to parameter list (in memory) to disk. Current contents of parameter file is overwritten. PIL library locks whole file for exclusive access when writing to parameter file.

    note: parameter file remains open until PILClose is called.

    int PILSetModuleName(char *name)

  • char *name - new module name
  • Sets name of the module which uses PIL services. Result is stored in global variable PILModuleName. Usually name of parameter file equals argv[0] + ".par" suffix but this can be overriden by calling PILSetModuleName and/or PILSetModuleVersion before calling PILInit.

    int PILSetModuleVersion(char *version)

  • char *name - new module version
  • Sets version of the module which uses PIL services. Result is stored in global variable PILModuleVersion. If NULL pointer is passed version is set to "version unspecified"

    int PILGetParFilename(char **fname)

  • char **fname - pointer to name/path of the parameter file
  • This function retrieves full path of used parameter file. Absolute path is returned only when PFILES environment variable contains absolute paths. If parameter file is taken from current dir then only filename is returned. Pointer returned points to a statically allocated buffer, applications should copy data from it using strcpy.

    int PILOverrideQueryMode(int newmode)

  • int newmode - new value for query override mode
  • This functions globally overrides query mode. When newmode passed is PIL_QUERY_OVERRIDE, prompting for new values of parameters is completely disabled. If value is bad or out of range PILGetXXX return immediately with error without asking user. No i/o in stdin/stdout is done by PIL in this mode. When newmode is PIL_QUERY_DEFAULT PIL reverts to default query mode.
     
    int PILGetBool(char *name, int *result); This function reads the value of specified parameter. The parameter has to be of type boolean. If this is not the case error code is returned.

    int PILGetInt(char *name, int *result);

    This function reads the value of specified parameter. The parameter has to be of type integer. If this is not the case error code is returned.

    int PILGetReal(char *name, double *result);

  • char *name - name of the parameter
  • double *result - pointer to double variable which will store result.
  • This function reads the value of specified parameter. The parameter has to be of type real. If this is not the case error code is returned.

    int PILGetReal4(char *name, float *result);

  • char *name - name of the parameter
  • float *result - pointer to float variable which will store result.
  • This function reads the value of specified parameter. The parameter has to be of type real. If this is not the case error code is returned.

    int PILGetString(char *name, char *result);

  • char *name - name of the parameter
  • char *result - pointer to character array which will store result. The character array should have at least PIL_LINESIZE characters to assure enough storage for the longest possible string.
  • This function reads the value of specified parameter. The parameter has to be of type string. If this is not the case error code is returned.

    int PILGetFname(char *name, char *result);

  • char *name - name of the parameter
  • char *result - pointer to character array which will store result. The character array should have at least PIL_LINESIZE characters to assure enough storage for the longest possible string.
  • This function reads the value of specified parameter. The parameter has to be of type filename. If this is not the case error code is returned.

    note: if type of parameter specifies it, access mode checks are done on file. So if access mode specifies write mode, and file is read-only then PILGetFname will not accept this filename and will prompt user to enter name of writable file.

    int PILPutBool(char *name, int b);

    This function sets the value of specified parameter. without any prompts. The parameter has to be of type boolean. If this is not the case error code is returned.

    int PILPutInt(char *name, int i);

    This function sets the value of specified parameter. without any prompts. The parameter has to be of type integer. If this is not the case error code is returned. The same happens when value passed is out of range.

    int PILPutReal(char *name, double d);

    This function sets the value of specified parameter. without any prompts. The parameter has to be of type real. If this is not the case error code is returned. The same happens when value passed is out of range.

    int PILPutString(char *name, char *s);

    This function sets the value of specified parameter. without any prompts. The parameter has to be of type string. If this is not the case error code is returned.

    int PILPutFname(char *name, char *s);

    This function sets the value of specified parameter. without any prompts. The parameter has to be of type ilename. If this is not the case error code is returned. The same happens when value passed is out of range. Applications can use PIL services in one of 2 different modes. The first one ISDC_SINGLE_MODE is the simplest one. In this mode application simply includes pil.h header file, calls PILInit, plays with parameters by calling PILGetXxx/PILPutXxx functions and finally shuts down PIL library by calling PILClose. The skeleton code is given below.
    /* this is skeleton code for PIL aware applications */
    #include <stdio.h>
    #include <pil.h>
    int main(int argc, char **argv)
    { int r;
    r = PILInit(argc, argv);
    if (r < 0)
      { printf("PILInit failed : %s\n", PIL_err_handler(r));
        return(10);
      }
    r = pilGetBool("boolname1", &intptr);
    r = pilGetReal("realname34", &doubleptr);
        /* .... application code follows .... */
    PILClose(PIL_OK);
    exit(0);
    }

    The second mode, called ISDC_SERVER_MODE allows for multiple rereads of parameter file. Using this method application can exchange data with other processes via parameter file (provided other processes use locks to assure exclusive access during read/write operation). One example of code is as follows :

    #include <stdio.h>
    #include <pil.h>
    int main(int argc, char **argv)
    {
    PILInit(argc, argv);
    if (ISDC_SERVER_MODE != PILRunMode) exit(-1);  /* error - not in server mode */
    for (;;)
     { PILReloadParameters();
       PILGetInt("IntParName", &intvar);
       /* place for loop code here ... */
       PILPutReal4("Real4Name", 4.567);
       PILFlushParameters();
       if (exit_condition) break;
     }
    PILClose(status);
    return(PIL_OK);
    }
    After initial call to PILInit application jumps into main loop. In each iteration it rereads parameters from file (there is no need to call PILReloadParameters during first iteration), Based on new values of just read-in parameters (which might be modified by another process) application may decide to exit from loop or continue. If it decides to continue then after executing application specific loop code it calls PILFlushParameters to signal other process that it is done with current iteration. Algorithm described above is very simple, and it real applications can be much more complicated.

    As mentioned earlier, applications written for ISDC should not use PILInit/PILClose directly. Instead they should use CommonInit/CommonExit functions from ISDC's Common Library.

    note: most applications will not support ISDC_SERVER_MODE so one can delete those fragments of skeleton code which deal with this mode.

    Unless stated otherwise all PIL API functions return status code of type INTEGER. This is either ISDC_OK which equals PIL_OK which equals 0, which means everything went perfectly or negative value (error code) meaning some error occured. List of error codes can be found in pil_f90_api.f90 file. Functions given below are the "official" ones. Internally PIL library calls many more functions. These functions are mostly one to one equivalents of C/C++ functions and have generally the same number and arguments type. In fact F90 routines call their C counterparts. The only noticeable difference is handling of argc and argv.
     
    FUNCTION PILINIT()
    INTEGER :: PILINIT

    This function initializes PIL library. This function has to be called before any other PIL function (there are some exceptions to this rule).  It does the following :
    First it calculates name of parameter file. Usually name of parameter file equals GETARG(0)+ ".par" suffix but this can be overriden by calling PILSETMODULENAME and/or PILSETMODULEVERSION before calling PILINIT. After successful termination parameter file is opened and read in, and global variable PILRunMode is set to one of the following values :

          ISDC_SINGLE_MODE
          ISDC_SERVER_MODE

    ISDC_SERVER_MODE is set whenever there is parameter "ServerMode" and its value is "yes" or "y". In any other case PILRunMode is set to ISDC_SINGLE_MODE. This variable cannot be accessed directly from F90 code, and is accessible only from C

    notes: only one parameter file can be open at a time. Parameter file remains open until PILCLOSE is called. When writing applications for ISDC one should not use PILINIT directly. Instead, one should call COMMONINIT function (from Common library) which calls PILINIT.
     

    FUNCTION PILCLOSE(STATUS)
    INTEGER*4 :: STATUS
    INTEGER :: PILCLOSE
  • STATUS - PIL_OK/ISDC_OK/0 means normal return, any other value means abnormal termination. In this case changes to parameters made during runtime are NOT written to parameter files.
  • This function has to be called before application terminates. It closes open files, and writes all learned parameters to the disk files (only when status == ISDC_OK). Once this function is called one cannot call any other PIL functions. One can however call PILINIT to reinitialize PIL library.
    Function also clears PILRunMode, PILModuleName and PILModuleVersion global variables. Those global variables are directly accessible from F90 code.

    note: this function does not terminate process. It simply shuts down PIL library. When writing applications for ISDC one should not use PILCLOSE directly. Instead, one should call COMMONEXIT function (from Common library) which calls PILCLOSE.

    FUNCTION PILRELOADPARAMETERS()
    INTEGER :: PILRELOADPARAMETERS

    This function reloads parameters from parameter file. It is called internally by PILINIT. It should be called explicitly by applications running in ISDC_SERVER_MODE to rescan parameter file and reload parameters from it. Current parameter list in memory (including any modifications) is deleted. PIL library locks whole file for exclusive access when reading from parameter file.

    note: parameter file remains open until PILCLOSE is called. Function internally DOES NOT close&reopen parameter file.

    FUNCTION PILFLUSHPARAMETERS()
    INTEGER :: PILFLUSHPARAMETERS

    This function flushes changes made to parameter list (in memory) to disk. Current contents of parameter file is overwritten. PIL library locks whole file for exclusive access when writing to parameter file.

    note: parameter file remains open until PILCLOSE is called.

    FUNCTION PILSETMODULENAME(NAME)
    CHARACTER*(*) :: NAME
    INTEGER :: PILSETMODULENAME

  • NAME - new module name
  • Sets name of the module which uses PIL services. Result is stored in global variable PILModuleName. Usually name of parameter file equals argv[0] + ".par" suffix but this can be overriden by calling PILSETMODULENAME and/or PILSETMODULEVERSION before calling PILINIT.

    FUNCTION PILSETMODULEVERSION(VERSION)
    CHARACTER*(*) :: VERSION
    INTEGER :: PILSETMODULEVERSION

  • VERSION - new module version (string)
  • Sets version of the module which uses PIL services. Result is stored in global variable PILModuleVersion. If NULL pointer is passed version is set to "version unspecified"

    FUNCTION PILGETPARFILENAME(FNAME)
    CHARACTER*(*) :: FNAME
    INTEGER :: PILGETPARFILENAME

  • FNAME - name/path of the parameter file in use
  • This function retrieves full path of used parameter file. Absolute path is returned only when PFILES environment variable contains absolute paths. If parameter file is taken from current dir then only filename is returned.

    note: FNAME buffer should be at least PIL_LINESIZE characters long.

    FUNCTION PILOVERRIDEQUERYMODE(NEWMODE)
    INTEGER*4 :: NEWMODE
    INTEGER :: PILOVERRIDEQUERYMODE

  • NEWMODE - new value for query override mode
  • This functions globally overrides query mode. When newmode passed is PIL_QUERY_OVERRIDE, prompting for new values of parameters is completely disabled. If value is bad or out of range PILGETXXX return immediately with error without asking user. No i/o in stdin/stdout is done by PIL in this mode. When newmode is PIL_QUERY_DEFAULT PIL reverts to default query mode.
     
    FUNCTION PILGETBOOL(NAME, RESULT)
    CHARACTER*(*) :: NAME
    INTEGER*4 :: RESULT
    INTEGER :: PILGETBOOL
    This function reads the value of specified parameter. The parameter has to be of type boolean. If this is not the case error code is returned.
     
    FUNCTION PILGETINT(NAME, RESULT)
    CHARACTER*(*) :: NAME
    INTEGER*4 :: RESULT
    INTEGER :: PILGETINT
    This function reads the value of specified parameter. The parameter has to be of type integer. If this is not the case error code is returned.
     
    FUNCTION PILGETREAL(NAME, RESULT)
    CHARACTER*(*) :: NAME
    REAL*8 :: RESULT
    INTEGER :: PILGETREAL
    This function reads the value of specified parameter. The parameter has to be of type real. If this is not the case error code is returned.
     
    FUNCTION PILGETREAL4(NAME, RESULT)
    CHARACTER*(*) :: NAME
    REAL*4 :: RESULT
    INTEGER :: PILGETREAL4
    This function reads the value of specified parameter. The parameter has to be of type real. If this is not the case error code is returned.
     
    FUNCTION PILGETSTRING(NAME, RESULT)
    CHARACTER*(*) :: NAME
    CHARACTER*(*) :: RESULT
    INTEGER :: PILGETSTRING
    This function reads the value of specified parameter. The parameter has to be of type string. If this is not the case error code is returned.
     
    FUNCTION PILGETFNAME(NAME, RESULT)
    CHARACTER*(*) :: NAME
    CHARACTER*(*) :: RESULT
    INTEGER :: PILGETFNAME
    This function reads the value of specified parameter. The parameter has to be of type filename. If this is not the case error code is returned.

    note: if type of parameter specifies it, access mode checks are done on file. So if access mode specifies write mode, and file is read-only then PILGETFNAME will not accept this filename and will prompt user to enter name of writable file.
     

    FUNCTION PILPUTBOOL(NAME, VALUE)
    CHARACTER*(*) :: NAME
    INTEGER*4 :: VALUE
    INTEGER :: PILPUTBOOL
    This function sets the value of specified parameter. without any prompts. The parameter has to be of type boolean. If this is not the case error code is returned.
     
    FUNCTION PILPUTINT(NAME, VALUE)
    CHARACTER*(*) :: NAME
    INTEGER*4 :: VALUE
    INTEGER :: PILPUTINT
    This function sets the value of specified parameter. without any prompts. The parameter has to be of type integer. If this is not the case error code is returned. The same happens when value passed is out of range.
     
    FUNCTION PILPUTREAL(NAME, VALUE)
    CHARACTER*(*) :: NAME
    REAL*8 :: VALUE
    INTEGER :: PILPUTREAL
    This function sets the value of specified parameter. without any prompts. The parameter has to be of type real. If this is not the case error code is returned. The same happens when value passed is out of range.
     
    FUNCTION PILPUTSTRING(NAME, VALUE)
    CHARACTER*(*) :: NAME
    CHARACTER*(*) :: VALUE
    INTEGER :: PILPUTSTRING
    This function sets the value of specified parameter. without any prompts. The parameter has to be of type string. If this is not the case error code is returned.
     
    FUNCTION PILPUTFNAME(NAME, VALUE)
    CHARACTER*(*) :: NAME
    CHARACTER*(*) :: VALUE
    INTEGER :: PILPUTFNAME
    This function sets the value of specified parameter. without any prompts. The parameter has to be of type filename. If this is not the case error code is returned. The same happens when value passed is out of range.

    Applications can use PIL services in one of 2 different modes. The first one ISDC_SINGLE_MODE is the simplest one. In this mode application simply includes PIL definitions from compiled module file (USE PIL_F90_API statement), calls PILINIT, plays with parameters by calling PILGETXXX/PILPUTXXX functions and finally shuts down PIL library by calling PILCLOSE. The skeleton code is given below.

    PROGRAM SKELETON
    USE PIL_F90_API
    integer :: r
    r = PILINIT()
    if (ISDC_OK /= r) STOP
    r = PILGETBOOL("boolname1", INTVAR)
    r = PILGETREAL("realname3", REALVAR)
    ! now execute application code ...
    r = PILEXIT(ISDC_OK)
    END

    The second mode, called ISDC_SERVER_MODE allows for multiple rereads of parameter file. Using this method application can exchange data with other processes via parameter file (provided other processes use locks to assure exclusive access during read/write operation). One example of code is as follows :
     
     

    PROGRAM SKELETON2
    USE PIL_F90_API
    integer :: r
    r = PILINIT()
    if (ISDC_OK /= r) STOP
    DO
      r = PILRELOADPARAMETERS()
      r = PILGETBOOL("boolname1", INTVAR)
      r = PILGETREAL("realname3", REALVAR)
      IF (BREAKCONDITION) BREAK
    ! now execute loop code ...
      r = PILPUTINT("intname45", INTVAR)
      r = PILFLUSHPARAMETERS()
      IF  (BREAKCONDITION) BREAK
    ENDDO
    r = PILEXIT(ISDC_OK)
    END
    After initial call to PILINIT application jumps into main loop. In each iteration it rereads parameters from file (there is no need to call PILRELOADPARAMETERS during first iteration), Based on new values of just read-in parameters (which might be modified by another process) application may decide to exit from loop or continue. If it decides to continue then after executing application specific loop code it calls PILFLUSHPARAMETERS to signal other process that it is done with current iteration. Algorithm described above is very simple, and it real applications can be much more complicated.

    As mentioned earlier, applications written for ISDC should not use PILINIT/PILCLOSE directly. Instead they should use COMMONINIT/COMMONEXIT functions from ISDC's Common Library.

    note: most applications will not support ISDC_SERVER_MODE so one can delete those fragments of skeleton code which deal with this mode.

    Please feel free to send comments, questions and bug reports to Jerzy.Borkowski@obs.unige.ch.
    ***********************