!--------( PCHKDV : plot GS Mag. Diurnal Var. for check )-------- implicit none integer :: lwkdir, lrtrim real,parameter :: ras = (2.54/300.) ! assume 300dpi, ras (cm) = 1 raster size character(80) :: wdr, flog, fgst, fnam character(40) :: str; character(28) :: label character(20) :: sdtm integer :: ldr, kend, jymd, iymd, kst, irow, IER integer :: jhms, jh, jm, js, jn, jp, mc, mcr, kor, i real :: base, vm, fm, x, yo, y, vmin, vmax call premsg('PCHKDV : plot GS Mag. Diurnal Var. for check') call opnpin() ldr = lwkdir(50,wdr) + 1 flog = wdr; fgst = wdr; fnam = wdr call gparma('Enter LOG filename ==> ', 81-ldr, flog(ldr:80)) call gparma('Enter GS Mag. data filename ==> ', 81-ldr, fgst(ldr:80)) open(1,file=fgst,status='old') call gparma('Enter Output PS filename ==> ', 81-ldr, fnam(ldr:80)) call clspin() if (fnam(ldr:ldr) == ' ') fnam(1:1) = char(0) if (fnam(80:80) /= ' ') call abendm('too long filename') write(6,'(a)') '----------------------------------------' write(6,'(a)') 'PCHKDV : plot GS Mag. Diurnal Var. for check' write(6,'(a,a)') ' GSmag data filename : ', fgst(1:lrtrim(fgst)) write(6,'(a,a)') ' Output PS filename : ', fnam(1:lrtrim(fnam)) call psopn(fnam, 'A4L') kend = 0; jymd = 0; base = 0.; kst = 0; IER = 0 call plots(2.0, 1.5) call lstyle('T', 0.4, 0., 0, -999) irow = 5 do do read(1,'(a)',iostat=IER) str if (IER < 0) then; kend = 1; exit; endif if (str(1:1) == '/') then if ((str(1:5) == '/base') .or. (str(1:5) == '/Base')) then read(str(7:40),*) base if (base > 2000000.) then base = base / 100. else if (base > 200000.) then base = base / 10. endif else if ((str(1:5) == '/date') .or. (str(1:5) == '/Date')) then read(str(7:40),*) jymd exit endif else read(str,*) jhms, vm jm = jhms / 100; js = jhms - jm*100; jh = jm / 100; jm = jm - jh*100 jn = jh*3600 + jm*60 + js if (vm > 2000000.) then vm = vm / 100. else if (vm > 200000.) then vm = vm / 10. endif vm = vm - base; mc = ifix(vm / 25.); fm = vm - mc*25. if (fm < 0) then mc = mc - 1; fm = fm + 25. endif if (kst == 0) then irow = irow - 1 if (irow < 0) then call ptext(fgst, 80, 0., -1., 0) call plote() call plots(2.0, 1.5) call lstyle('T', 0.4, 0., 0, -999) irow = 4 endif iymd = jymd; x = ras * float(jn/30); yo = ras * float(irow*420) ! < Horizontal space > ! [use full range of A4L sheet] ! 2880 rasters : 243.84 mm [25.4 *(2880/300)] ! 2 raster per 1 minute : (2*60*24)=2880 rasters per 1 day ! < Vertical space > ! [max 5 days data in 1 sheet] ! 420 rasters per 1 row data : 35.56 mm [25.4 * (420/300)] ! graph scale : 10 rasters / nT , range : 25 nT (+10% overrange) ! graph size with 10% overrange : 275 rasters (= 2.32833 cm) call plot(x, yo+2.35, 3) y = yo + ras*fm*10.; mcr = mc; kor = 0 if (fm > 13.75) kor = 1 call plot(x, y, 2) vmin = vm; vmax = vm; kst = 1 else if (jn < jp) call premsg('time going back') if ((jn-jp) > 180) then y = yo + 2.35 call plot(x, y, 2) endif x = ras * float(jn/30) call plot(x, y, 2) if ((fm < 2.5) .and. (kor == 1) .and. (mc == (mcr+1))) then y = yo + ras*(fm+25.)*10. else y = yo + ras*fm*10.; mcr = mc; kor = 0 if (fm > 13.75) kor = 1 endif call plot(x, y, 2) if (vm > vmax) vmax = vm if (vm < vmin) vmin = vm endif jp = jn endif enddo if (kst /= 0) then call plot(x, yo+2.35, 2) write(label,'(i8,a2,2f8.1)') iymd, ' ', vmin, vmax call ptext(label, 28, 0., yo+2.35, 0) call plot(0., yo-0.05, 3) call plot(ras*2880., yo-0.01, 2) do i=0,24 x = ras*float(i*120) y = yo - 0.13 if (mod(i,6) == 0) y = yo - 0.25 call plot(x, y, 3) call plot(x, yo-0.05, 2) enddo kst = 0 endif if (kend == 1) exit enddo call ptext(fgst, 80, 0., -1., 0) call plote() call pscls() if (flog(ldr:ldr) /= ' ') then open(99,file=flog,access='append') write(99,'(//a)') 'PCHKDV : plot GS Mag. Diurnal Var. for check' write(99,'(a,a)') ' GSmag data filename : ', fgst(1:lrtrim(fgst)) write(99,'(a,a)') ' Output PS filename : ', fnam(1:lrtrim(fnam)) call strdtm(sdtm) write(99,'(a,a,a)') '=============== ', sdtm, '===============' close(99) endif stop end