	subroutine subxml1c
C............................................................Mar. 2014
C Only for Dourbes .xml file
C............................................................June 2013
C Use this subroutine instead of PROGRAM convXML.for
C
C!                                                           Jan 2013
C!    Extract foF2, hmF2, M3000 from sao.xml file
C!    Include subroutines: dayyesr, sublet2
C
C  TLG......................................................April 2010
C
c "CONVNO" EXTRACT foF2 & M3000F2 & hmF2 FROM DAILY-HOURLY FILE, NO
C 
	DIMENSION im(12)
	INTEGER*2 jyr,jmn,jdy,jjut
	+,jdy_pre,jmn_pre                           !C! new parameters
	CHARACTER*128 infile,outfile,TITLE1,TITLE2,m_file,f_file,
     *h_file
 	CHARACTER*4 YEAR,YEAR_pre
	CHARACTER*2 AYR,AMN,AMN_pre,ST,DY1,DY2,DDD
     +,TT,AUT,
     *CYR,CMN,CDY
	+,STS_NAME
	*,dd1,dd2,DY22
      CHARACTER*1 fm						 
	CHARACTER*12 ursi00,ursi03,ursi92  ! foF2, M3000F2, hmF2
	*,xconst,yconst
	 CHARACTER*6 yy6
	CHARACTER*5 DAT(0:366,25),FOF2,YREM,YREF,YREH
	CHARACTER*3 DOY
       CHARACTER*128 m_data
       CHARACTER*30 STNAME
	COMMON /BL1/ST,YEAR,AYR,AMN,DY1,DY2,DD1,DD2,ID1,ID2,JF,JH,JT,DY22
 	+,STNAME

	DATA  IM/31,28,31,30,31,30,31,31,30,31,30,31/
CREM	DATA ADY/32*'00'/

	NUM_STS='049'
	ursi00='URSI ID="00"'
	ursi03='URSI ID="03"'
	ursi92='URSI ID="92"'
C	DAT(0:366,24)
	do n=0,366
	do k=1,25
	dat(n,k)=' 00  '
	enddo
	enddo
C First foF2 reading:
	xconst=ursi00

	DO i=1,25
	dat(0,i)=' 00  '
	ENDDO
crem	st='MH'

C Next line: get YEAR,AMN,dy2,YEAR_pre,AMN_pre,dy1 from file "date"

c       datefile='/var/www/izmiran/ionosphere/weather/graf/date' ! Ljuba
   50	FORMAT(A4,1x,A2,1x,A2,1x,A4,1x,A2,1x,A2,A10)			   ! Ljuba
c       OPEN(13,FILE=datefile,STATUS='OLD')					   ! Ljuba
c       read (13,50)YEAR,AMN,dy2,YEAR_pre,AMN_pre,dy1			   ! Ljuba
c       close(unit=13)											   ! Ljuba
	ist=1
      YEAR_pre=YEAR	   !ADD
	AMN_pre='01'		!temp +
C ==========================================================

C Next line: specify YEAR from current date:
       AYR=YEAR(3:4)
C Next line: specify MONTH from current date:
	read(ayr,*) ryr
	jyr=int(ryr)
	read(amn,*) rmn
	jmn=int(rmn)
	if(int(ryr/4.)*4.eq.jyr) THEN 
 	im(2)=29
	                          ELSE
	IM(2)=28
	ENDIF
C!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C!
C! Add check content of <datefile> for preceding month & day:
	 read(dy1,*) rdy1     !C! day in new month
	jdy=int(rdy1)		  !C! day in new month
	ndoy1=0				  !C! day in new month
	 read(dy2,*) rdy2     !C! day in new month
c--	jdy=int(rdy2)		  !C! day in new month
	ndoy1=ndoy(jyr,jmn,jdy)
	jdy_pre=0			   !C! prec. day 
	jmn_pre=0			   !C! month for prec. day
	ndoy0=ndoy1-1		   !C! prec. day of year
c//	call dayyear(jyr,jmn_pre,jdy_pre,ndoy0) !C! produce mon & day for preceding day
	jmn_pre=jmn  ! TEMP
	jdy_pre=jdy ! TEMP
	call blet2(jmn_pre,AMN_pre)    !C! produce CHARACTER AMN_pre     
	call blet2(jdy_pre,dy1)    !C! produce CHARACTER <dy1>
C End of Check for preceding day	     
C! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      WRITE(*,*)YEAR,AMN,dy2,YEAR_pre,AMN_pre,dy1   ! this line is moved here C!
C Ljuba
C=============================================================== 
C НАчало цикла стирания последних 3-х строк у файлов GM111m.br, IR11m.br  YK11m.br NO10m.br
c 	DATA STS_OUT/'GM','IR','NO','YK'/ = GM111m.br IR11m.br  YK11m.br  NO10m.br
C ==============================================================
c     
	STS_NAME='db'
c-      write(*,*) ' STS_NAME= ', STS_NAME, STS_OUT(i), i
	write(*,*) ' STS_NAME=',' DB'
c
  333 FORMAT(a128)
      count=0
c      m_file='/var/www/izmiran/ionosphere/weather/graf/2014/db14m.br' !Ljuba
      m_file='c:/web/graf/2014/db14m.br' 								!Tamara
c      m_file(42:45)=YEAR        										 !Ljuba
c      m_file(47:48)=STS_NAME  										 !Ljuba
c      m_file(49:50)=AYR  												 !Ljuba
      m_file(13:16)=YEAR        										 !Tamara
      m_file(18:19)=STS_NAME  										 !Tamara
      m_file(20:21)=AYR  												 !Tamara
      OPEN(33,FILE=m_file)
   55 READ(33, 333, END=44) m_data 
	CYR=m_data(1:2)
	CMN=m_data(3:4)
	CDY=m_data(5:6)
	yrem=m_data(9:13)
	if ((cyr.eq.ayr).and.(cmn.eq.amn_pre).and.(cdy.eq.dy1)) then  
	goto 44
	                  else
         count=count+1
      GOTO 55
      CONTINUE
                  	endif
   44 m_strings = count
      REWIND (33)
      count=0
      do while (count.lt.m_strings)
         READ(33, 333, END=444) m_data 
         count=count+1
      enddo
  444 print*,'YES!'
      ENDFILE 33
      close(UNIT=33)
CCC
      count=0
c      f_file='/var/www/izmiran/ionosphere/weather/graf/2010/NO10f.br'	  !Ljuba
c      f_file(42:45)=YEAR  											  !Ljuba
c      f_file(47:48)=STS_NAME 											  !Ljuba
c      f_file(49:50)=AYR  												  !Ljuba
      f_file='c:/web/graf/2014/db14f.br'	  !Tamara
      f_file(13:16)=YEAR  											  !Tamara
      f_file(18:19)=STS_NAME 											  !Tamara
      f_file(20:21)=AYR  												  !Tamara

      OPEN(88,FILE=f_file)
  255 READ(88, 333, END=244) m_data 
	CYR=m_data(1:2)
	CMN=m_data(3:4)
	CDY=m_data(5:6)
	yref=m_data(9:13)
	if ((cyr.eq.ayr).and.(cmn.eq.amn_pre).and.(cdy.eq.dy1)) then	
	goto 244
	                  else
         count=count+1
      GOTO 255
      CONTINUE
                  	endif
  244 f_strings = count
      REWIND (88)
      count=0
      do while (count.lt.f_strings)
         READ(88, 333, END=248) m_data 
         count=count+1
      enddo
  248 print*,'YES!'
      ENDFILE 88
      close(UNIT=88)
C TLG ADD!
CCC
      count=0
c      f_file='/var/www/izmiran/ionosphere/weather/graf/2014/db14h.br'   !Ljuba
c      h_file(42:45)=YEAR 												   !Ljuba
c      h_file(47:48)=STS_NAME  										   !Ljuba
c      h_file(49:50)=AYR  												   !Ljuba
      h_file='c:/web/graf/2014/db14h.br'								  !Tamara
      h_file(13:16)=YEAR  											  !Tamara
      h_file(18:19)=STS_NAME 											  !Tamara
      h_file(20:21)=AYR  												  !Tamara

      OPEN(55,FILE=h_file)
  355 READ(55, 333, END=344) m_data 
	CYR=m_data(1:2)
	CMN=m_data(3:4)
	CDY=m_data(5:6)
	yreh=m_data(9:13)
	if ((cyr.eq.ayr).and.(cmn.eq.amn_pre).and.(cdy.eq.dy1)) then  
	goto 344
	                  else
         count=count+1
      GOTO 355
      CONTINUE
                  	endif
  344 h_strings = count
      REWIND (55)
      count=0
      do while (count.lt.h_strings)
         READ(55, 333, END=348) m_data 
         count=count+1
      enddo
  348 print*,'YES!'
      ENDFILE 55
      close(UNIT=55)
c-      enddo              !<<<<<<<<<<<<<<<<<<
C=============================================================== 
C Конец цикла стирания последних 3-х строк у файлов GM11m.br, IR11m.br  YK11m.br NO11m.br jj11m.br
C ==============================================================
c
C=============================================================== 
C Начало цикла обработки файлов GM11m.br, IR11m.br  YK11m.br NO10m.br jj11m.br
C ==============================================================
c
c
c
C        Double letters cycle + letters 'f', 'm', 'h':
      fm='f'
	iflag=0
C ==========================================================

C Next line : specify DAY1 and DAY2 from current dates:
C	       WRITE(*,*)' ENTER START-DY1,END-DY2:'
C	       READ(*,*) DY1,DY2
C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
c	dy1='09'
c	dy2='12'
C !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	read(dy1,*) rdy1
	read(dy2,*) rdy2
 	idy1=int(rdy1)
	idy2=int(rdy2)
	idd=idy1
C
	      STS_NAME='db'

c+	 Next lines = specify path and name of Output file:
c=
c      outfile='/var/www/izmiran/ionosphere/weather/graf/2012/NO12f.br' !Ljuba
c      outfile(42:45)=YEAR  											 !Ljuba
c      outfile(47:48)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ljuba
c      outfile(49:50)=AYR  												 !Ljuba
      outfile='c:/web/graf/2012/no12f.br'                             !Tamara
      outfile(13:16)=YEAR  											 !Tamara
      outfile(18:19)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Tamara
      outfile(20:21)=AYR  											 !Tamara
C ==========================================================
101	  continue
c	  outfile(51:51)=fm                                              !Ljuba
	outfile(22:22)=fm												!Tamara
C ==========================================================

	OPEN(12,FILE=OUTFILE,ACCESS='APPEND')

C ==========================================================
   1	do 77 j=idy1,idy2               ! cycle day-by-day
	jdy=j
	jj=j-idy1+1
	call blet2(jdy,DDD)
c-	ADY(jj)=ddd
C
C Calculate day-of-year:
   17	FORMAT(1X,A3)
	lday=ndoy(jyr,jmn,jdy) ! function to define day-of-year
	call blet3(lday,DOY)
	write(*,17) doy

1111	DO 1110 jut=1,24             ! Daily cycle
	title1=' '
	ut=float(jut-1)
	jjut=jut-1
	call blet2(jjut,AUT)

C  
c
c-      STS_NAME=STS_IN(COUNTER)
	STS_NAME='DB'
c      print*,'STS_IN(COUNTER)=', STS_IN(COUNTER)

c      infile='/var/www/izmiran/ionosphere/weather/graf/NO/'  !Ljuba
c      infile(42:43)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ljuba
c      infile(45:46)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Ljuba
c      infile(47:49)=NUM_STS(COUNTER) 						   !Ljuba
c      infile(50:)='_2011035040000.SAO' 					   !Ljuba
      infile='c:/web/graf/NO/'                               !Tamara
      infile(13:14)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Tamara
      infile(16:17)=STS_NAME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Tamara
c-      infile(18:20)=NUM_STS(COUNTER)+ 						   !Tamara
      infile(18:20)=NUM_STS 						   !Tamara
      infile(21:)='_2011035040000_SAO.XML' 				   !Tamara 2013
c	if(ist.eq.5) infile(21:)='_2011035040500_SAO.XML' 		!Tamara 2013	DB=Dourbes NEW 16.06.2013

c	infile(51:54)=YEAR								  !Ljuba
c	infile(55:57)=DOY								  !Ljuba
c	infile(58:59)=AUT                                 !Ljuba
	infile(22:25)=YEAR								  !Tamara
	infile(26:28)=DOY								  !Tamara
	infile(29:30)=AUT                                 !Tamara

c      WRITE(*,*)' INFILE:',infile ! ПОТОМ УБРАТЬ КОММЕНТ!!!
C ==========================================================

    	OPEN(11,FILE=INFILE)
	read (11,*,err=2,end=10) title1
	goto 9
   10	continue
	 TT=title1(1:1)
	if (TT.eq.' ') then
	fof2=' 00  '
	goto 11
	endif
   9	continue
C Change input for SAO.XML format ===============
	fof2=' 00  '
	do k=1,30
	read (11,*,err=2,end=440) title2  ! extra lines
	enddo
  152 format(1X,A12,6X,A6)
  151 if (iflag.gt.3)	goto 11 ! end for given UT
  	read (11,152,err=2,end=11) yconst,yy6  ! extra lines TLG
	fof2=' 00  '
	if (fm.eq.'m') goto 153
	if (fm.eq.'h') goto 154
	  IF ((yconst.eq.xconst).and.(fm.eq.'f')) THEN
	iflag=1
c--	                  if (fm.eq.'f') then 
	if (yy6(2:2).eq.'.') then
	fof2(2:2)=yy6(1:1)
	fof2(3:3)=yy6(3:3)
	goto 11
c--	endif
	                 else
	if (yy6(3:3).eq.'.') then
 	fof2(1:2)=yy6(1:2)
	fof2(3:3)=yy6(4:4)
	goto 11
	endif
	                          endif
	ELSE
	goto 151
	    ENDIF           
	
 153	 IF ((yconst.eq.xconst).and.(fm.eq.'m')) THEN
	iflag=2
	fof2(1:1)=yy6(1:1)
	fof2(2:3)=yy6(3:4)
	goto 11
	          else
	goto 151
                       	endif
	
 154	IF ((yconst.eq.xconst).and.(fm.eq.'h')) then 
	iflag=3
	fof2(1:3)=yy6(1:3)
	goto 11
	                        else
	GOTO 151
	endif
CCC===================================================

C ========================================
   11	continue

  440 CLOSE (unit=11)
  107	continue
C
	fof2=' 00  ' 
1110	continue           ! End of daily cycle

  77  continue         ! end cycle day-to-day

c
c
	DO JDY=1,JJ
	call blet2(jdy,DDD)
	if(ist.eq.3) then
	dat(j+1,1)=dat(j,25)
	endif
	if (fm.eq.'m') then
	if ((j.eq.1).and.(ist.eq.3)) dat(1,1)=yrem

		write(12,181) ayr,amn,DDD,(dat(j,k),k=1,24)
 	write(*,181) ayr,amn,DDD,(dat(j,k),k=1,24)
	do k=1,25
      dat(j,k)=' 000 '
	enddo
	endif
	if (fm.eq.'f') then
	if ((j.eq.1).and.(ist.eq.3)) dat(1,1)=yref
	write(12,180) ayr,amn,ddd,(dat(j,k),k=1,24)
	write(*,180) ayr,amn,ddd,(dat(j,k),k=1,24)
	do k=1,25
	dat(j,k)=' 00  '
	enddo
	endif
	if (fm.eq.'h') then
	if ((j.eq.1).and.(ist.eq.3)) dat(1,1)=yreh
	write(12,181) ayr,amn,ddd,(dat(j,k),k=1,24)
	write(*,181) ayr,amn,ddd,(dat(j,k),k=1,24)
	do k=1,25
      dat(j,k)=' 000 '
	enddo
	endif
  180	format(3A2,2X,24(A5))
  181	format(3A2,2X,24(A5))
	ENDDO
C
c	pause ' '
	goto 2
    3	 write(*,*) 'INPUT FILE IS NOT IN YOUR DIRECTORY '
	write(*,*) infile
	goto 202
c	pause ' '
	goto 1110
   2      CLOSE (unit=12)
	if (fm.eq.'f') then
	fm='m'
	xconst=ursi03
	goto 101
	endif

	if (fm.eq.'m') then
	fm='h'
		xconst=ursi92
	goto 101
	endif

c-       END DO     
 202	CONTINUE
CREM      pause ' '
	RETURN
	END
c
c
c
C ===============================================================


C==================================================================