;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; ; Read the cowave.resu file and store data into arguments ; ; Patrick Robert, CETP, February 2007 ; ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; PRO scmwf_read_cowave moved to end of file to facilitate auto-compile ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; ; Modules permettant la lecture des fichiers au format cowave.resu ; Le fichier est lu avec le file code 1. ; ; Patrick Robert, CETP, Septembre 2000, revu Mai 2001 ; revu Aout 2002 ; revu Feb 2007 ; ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRO r_head_cowave, unit,fultit,projet,experi,sid,isat,fnat,nbp, $ fdet,nlis,fc,f1ulf,f2ulf,nbpan,nbseq, bitr,fe,fs, $ srasc,sdec ; ====================================================================== ; procedure r_head_cowave: lecture du header d'un fic. cowave.resu ; ; P. Robert, CETP, Septembre 2000, revu Janvier/Mars 2001 ; ====================================================================== PRINT, 'Reading header of cowave.resu' PRINT, ' ' ; lecture de l'entete du fichier cowave.resu ; ------------------------------------------ bid =' ' tstart=' ' tend =' ' ttrait=' ' fultit=' ' projet=' ' experi=' ' sid =' ' fnat =' ' dfrom =' ' ddcal =' ' inpar =' ' bitr =' ' texte =' ' iselpa=INTARR(5) idset=0 nbp=2L nlis=0L ; test sur la 1ere ligne du fichier READF, unit, FORMAT='(a)', tstart IF(tstart NE 'START OF FILE HEADER') THEN BEGIN PRINT,'***/ FIRST LINE OF FILE' PRINT,'***/ ',tstart STOP,'R_HEAD_COWAVE:ERR-FILE IS NOT A COWAVE.RESU FILE /***' ; PRINT, ' ' ; PRINT, '1st line of File=' ; PRINT, tstart ; PRINT, 'File is not a cowave.resu file' ; PRINT, 'Program aborted, no .ps provided' ; STOP, 'premature ending' ENDIF ; saut des commentaires WHILE (bid NE 'END COMMENTS') DO READF, unit, bid ; lecture des parametres d'entete READF, unit, ttrait READF, unit, bid READF, unit, idset READF, unit, bid READF, unit, FORMAT='(a)', fultit READF, unit, bid READF, unit, FORMAT='(a)', projet READF, unit, bid READF, unit, FORMAT='(a)', experi READF, unit, bid READF, unit, FORMAT='(a)', sid READF, unit, bid READF, unit, isat READF, unit, bid READF, unit, FORMAT='(a)', fnat READF, unit, bid READF, unit, FORMAT='(a)', dfrom READF, unit, bid READF, unit, FORMAT='(a)', ddcal READF, unit, bid READF, unit, FORMAT='(a)', inpar READF, unit, bid READF, unit, nbp READF, unit, bid READF, unit, fdet READF, unit, bid READF, unit, nlis READF, unit, bid READF, unit, fc READF, unit, bid READF, unit, f1ulf, f2ulf READF, unit, bid READF, unit, iselpa READF, unit, bid READF, unit, nbpan READF, unit, bid READF, unit, nbseq READF, unit, bid READF, unit, FORMAT='(a)', bitr READF, unit, bid READF, unit, fe READF, unit, bid READF, unit, fs READF, unit, bid READF, unit, srasc, sdec READF, unit, tend PRINT, tstart PRINT, 'Data Set #: ',idset PRINT, 'Full Title: ',fultit PRINT, 'Project : ',projet PRINT, 'Experiment: ',experi PRINT, 'S/C ID : ',sid PRINT, 'S/C # : ',isat PRINT, 'Field Nat.: ',fnat PRINT, 'Data from : ',dfrom PRINT, 'nbp :',nbp PRINT, 'Frequencies: ', fc,f1ulf,f2ulf PRINT, 'nbpan : ',nbpan PRINT, 'nbseq : ',nbseq PRINT, 'Bitrate : ',bitr PRINT, 'Samp. f.: ',fe PRINT, 'Spin f.: ',fs PRINT, 'sra,sdec: ',srasc,sdec PRINT, tend RETURN END ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRO r_seq_cowave, unit,nbpan,Jul,iday,imon,iyear,ih1,im1,is1,ims1, $ imm1, datiso1, $ iano, nbp,titpan,dtpan,ncpan,nbppan,dataulf,nbpt ; ====================================================================== ; procedure r_seq_cowave : lecture d'une sequence de cowave.resu ; dataulf(nbpan,3,nbpt) ; ; P. Robert, CETP, Septembre 2000, revu Janvier/Mars 2001 ; revu sepr 2002 pour seq incomplete ; ====================================================================== ; mise a zero de tous les parametres titpan= REPLICATE(' ',nbpan) dtpan= REPLICATE(0. ,nbpan) ncpan= REPLICATE(0 ,nbpan) nbppan= REPLICATE(0L ,nbpan) ; *** on suppose que tous les pannels ont 3 courbes de nbp points dataulf= REPLICATE(0.,nbpan,3,nbp) bid =' ' tstart=' ' ttrait=' ' texte =' ' datiso1=' ' nbpt=0L ; lecture d'une sequence ; ====================== IF(EOF(unit)) THEN BEGIN PRINT, 'EOF of cowave.resu has already been encontered' RETURN ENDIF READF, unit, ttrait PRINT, ttrait IF(ttrait EQ 'END OF FILE') THEN BEGIN PRINT, 'EOF REACHED on cowave.resu file' PRINT, 'No more sequency, data set to zero' RETURN ENDIF READF, unit, tstart READF, unit, bid READF, unit, Jul,iday,imon,iyear READF, unit, bid READF, unit, FORMAT='(3i3,2i4,2x,a)', ih1,im1,is1,ims1,imm1,datiso1 READF, unit, bid READF, unit, iano PRINT, tstart PRINT, 'date:', Jul,iday,imon,iyear,iano PRINT, 'Time:', ih1,im1,is1,ims1, imm1 ; boucle sur les pannels ; ---------------------- FOR ipan= 0,nbpan-1 DO BEGIN READF, unit, ttrait READF, unit, tstart READF, unit, bid READF, unit, istep READF, unit, bid READF, unit, FORMAT='(a)', texte READF, unit, bid READF, unit, dt READF, unit, bid READF, unit, nc READF, unit, bid READF, unit, nbpt titpan(ipan)=texte dtpan(ipan)=dt ncpan(ipan)=nc nbppan(ipan)=nbpt PRINT, tstart PRINT, titpan(ipan) ; PRINT, 'dt,ncp,nbp=',dtpan(ipan),ncpan(ipan),nbppan(ipan) ; *** on a suppose que toutes les courbes de chaque pannel avait nbp pts IF(nbpt NE nbp) THEN BEGIN PRINT,'***/ NBPT(=',nbpt,') NE NBP (=',nbp,')' STOP,'R_SEQ_COWAVE :ERR-NBPT NE NBP /***' ; PRINT, 'nbpt NE nbp', nbpt,nbp ; STOP ENDIF ; *** on a suppose que tous les pannels avait 3 courbes IF(ncpan(ipan) NE 3) THEN BEGIN PRINT,'***/ IPAN=',ipan PRINT,'***/ NCPAN(IPAN)=',ncpan(ipan),' SHOULD BE 3' STOP,'R_SEQ_COWAVE :ERR-NCPAN(IPAN) SHOULD BE 3 /***' ; PRINT, 'ipan=',ipan ; PRINT, 'ncpan(ipan)=',ncpan(ipan) ; PRINT, 'ncpan(ipan) must be =3' ; PRINT, 'Visualisation aborted, no .ps provided' ; STOP, ncpan(ipan) ENDIF data0= FLTARR(3,nbppan(ipan)) READF, unit, bid READF, unit, data0 READF, unit, bid ; PRINT, bid dataulf(ipan,*,*)= data0 ; fin de boucle sur les pannels ENDFOR RETURN END ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRO r_eof_cowave,unit ; ====================================================================== ; procedure r_eof_cowave : lecture de l'eof du fichier cowave.resu ; ; P. Robert, CETP, Septembre 2000, revu Janvier/Mars 2001 ; ====================================================================== ; lecture de l'eof et cloture du fichier de donnees IF(EOF(unit)) THEN BEGIN PRINT, 'EOF of cowave.resu has already been encontered' PRINT, 'closing LUN ',unit FREE_LUN, unit RETURN ENDIF texte= ' ' READF, unit, FORMAT='(a)', texte PRINT, '----------------------------------------------------------'+ $ '--------------' PRINT, 'reading eof of cowave.resu formatted file' PRINT, texte PRINT, 'closing LUN ',unit FREE_LUN, unit RETURN END ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PRO scmwf_read_cowave, times, Bx,By,Bz, Nbwin,SCname,SCnum,Nbp, $ Fsamp,Fspin,Fdet,Fcut, Fmin,Fmax, Step,mode, $ title,subtitle,anomaly PRINT, ' ' PRINT, 'Reading cowave.resu, please wait...' GET_LUN, unit OPENR, unit, 'cowave.resu' r_head_cowave, unit,fultit,projet,experi,SCname,SCnum,fnat,Nbp, $ Fdet,nlis,Fcut,Fmin,Fmax,nbpan,Nbwin, $ bitr,Fsamp,Fspin,srasc,sdec ; title=fultit ; for each window, we get time and B field times=DBLARR(NBwin,Nbp) Bx= FLTARR(NBwin,Nbp) By= FLTARR(NBwin,Nbp) Bz= FLTARR(NBwin,Nbp) print, 'Fsamp=',Fsamp FOR iseq=1,Nbwin DO BEGIN r_seq_cowave, unit,nbpan,Jul,iday,imon,iyear,ih1,im1,is1,ims1,imic1, $ datiso1,iano,$ nbp,titpan,dtpan,ncpan,nbppan,dataulf,nbpt subtitle=titpan Tzero= isodatim_to_Julsec(datiso1, secofday) print, format='(a,f25.13)',' T0=',Tzero times(iseq-1,*)= Tzero +double(Findgen(nbp))/double(Fsamp) Bx(iseq-1,*)= dataulf(0,0,*) By(iseq-1,*)= dataulf(0,1,*) Bz(iseq-1,*)= dataulf(0,2,*) ENDFOR ; reading string EOF for normal termination r_eof_cowave, unit FREE_LUN, unit PRINT, FORMAT='(a)','Done...' END ;