C ===========================================================
	PROGRAM EXTSEC15d4   
C....................................................OCT 2023
C Add produce tk(ns) 	 
C..........................	                         !AUG 2022
C
C..................................................!DEC2013
C
C..................................................Jan.2013
C
C..................................................Dec. 2012
C
C
C.................................................Sep. 2012 
C Extract prec. data from monthly files (prec. and current months) 
C
C.................................................Jan. 2011 ! 
C														   !
C                                      June 2010       !
C                                                                March 2010
C	(CDAY,IF2,IM3)
C Send output results to d:\web\idce\styr.br files...............23.12.2009
C
c   EXTRACT HOURLY "FOF2 & M3000" fromSEC FILES /daily
c
      DIMENSION IF2(31,24),IM3(31,24),IH2(31,24),	 !
     *glat(80),glon(80),cglat(80),cglon(80),     	 !FEB2015
     *IM(0:12)                                    !
      CHARACTER*128 outfile1,outfile2,ctext,outfile3	  !MAR2020
     +,infile1,infile2,infile3    
            CHARACTER*120 m_data
C#      CHARACTER*41 basef         !!!! Ljuba!DEC2013
C#      CHARACTER*19 inf1,inf2,inf3         !!!! Ljuba!DEC2013  ++++++++++++++++++          
 	CHARACTER*10 CCM												!MAR2020
C-	+,aa,title														!MAR2020
	CHARACTER*16 indate !FEB2015 Tamara !!!!!!!!!!!!!!!
C		CHARACTER(10) DD
C      CHARACTER(10) TT
C      CHARACTER(5) ZZ
	CHARACTER*30 STNAME 						   !
	CHARACTER*15 STITLE(80),TITLES                 !FEB2015
	CHARACTER*4 YEAR,YEAR_pre				   !FEB2015
	CHARACTER*6 YYMMDD,Y0M0D0,Y1M1D1
	CHARACTER*9	IONO
	LOGICAL NEWMN                                        ! 
 	CHARACTER*2 ST,AMN,DY1,DY2,DDD,CDAY(0:31),DD1,DD2,YY		 !
     *,FULF(80),FULM(80),DY22,STS(80),AMN_pre,ADY_pre  	 !FEB2015
     *,AMN1,AYR1,AMN0,AYR0,AYR_nex,AMN_nex,ADY_nex                                     !
	+,AMN_cur,CYR,CMN,CDY
C-      CHARACTER*1 yn
	DATA IM/31,31,28,31,30,31,30,31,31,30,31,30,31/    !
	DATA STS/
     + 'as','at','bc','br','cb','cn','cq','cs','cw','jb'	  ! Mar 2020 jb > cr
     +,'db','dw','eg','eb','ga','bb','gu','ha','he','ho'  ! May 2018 bb > gr
     +,'jj','jm','jr','kk','lm','ml','mo','mq','mw','nd'
     +,'ni','ok','pe','pq','rm','ro','vt','sq','tv','tr'
     +,'wk','wp','wz','gm','so','ff','kh','nc','mm','tk'   !APR 2020
     +,'bp','ch','sa','ei','gg','if','tu','ns','kg','mg'	   !Mar 2020 sa >ps
     +,'sd','rv','tz','pa','fz','au','al','yg','bl','sv'	   !May 2018 fz >yk
     +,'mh','ic','di','gr','sj','sp','cj','er','ll','ad'/		  !Jan 2021+++++++++
C      
	DATA STITLE/									
     + 'Ascension.   ','Athens.      ','Boulder.     '	  !=== Apr 2017
     +,'Brisbane.    ','Canberra.    ','Camden.      '	  !=== Apr 2017
     +,'Chongqing.   ','Cocos_Is.    ','Casey.       '	  !=== Apr 2017
     +,'Jang_Bodo.   ','Dourbes.     ','Darwin.      '	  !=== Mar 2020
     +,'Eglin.       ','Roquetes.    ','Gakona.      '	  !=== Apr 2017
     +,'Bahia_Blanca.','Guangzhou.   '	  !=== May 2018	bb > gr
     +,'Hainan.      ','Hermanus.    ','Hobart.      '	  !=== Apr 2017
     +,'Jeju.        ','Jicamarca.   ','Juliusruh.   '	  !=== Apr 2017
     +,'Kokubunji.   ','Learmonth.   ','Manzhouli.   '	  !=== Apr 2017
     +,'Moscow.      ','MacQuarue_Is.','Mawson.      '	  !
     +,'Niue.        ','Norfolk_Is.  ','Okinawa.     '	  !=== Apr 2017
     +,'Perth.       ','Pruhonice.   ','Ramey.       '	  !=== Apr 2017
     +,'Rome.        ','San_Vito.    ','Scott_Base.  '	  !=== Apr 2017
     +,'Townsville.  ','Tromso.      ','Wakkanai.    '	  !=== Apr 2017
     +,'Wallops.     ','Warsaw.      ','Gibilmanna.  '  !Nov 2020
     +,'Sodankyla.   ','Fairford.    ','Khabarovsk.  '	  !=== Apr 2017
     +,'Nicosia.     ','Murmansk.    ','Tomsk.       '	  !APR 2020
     +,'Beijing.     ','Chilton.     ','Sao_Luis.    '	  !=== Mar 2020
     +,'Eielson.     ','Guam.        ','Idaho_NL.    '	  !=== Apr 2017
     +,'Tucuman.     ','Novosibirsk. ','Kaliningrad. '	  !=== May 2018
     +,'Magadan.     ','Salekhard.   ','Rostov.      '	  !=== Apr 2017
     +,'Tunguska.    ','Pt_Arguello. ','Fortaleza    '	  !=== May 2018
     +,'Austin.      ','Alpena.      ','Yamagawa.    ' 	  !=== Jun 2017
     +,'Belem.       ','Sverdlovsk.  ','MillstonHill.'      ! Jan. 2021
	+,'I_Cheon.     ','Dikson.      ','Grahamstown. '	   ! Aug 2020
     +,'San_Juan.    ','Sopron.      ','Cachoeira.   '
     +,'Eareckson.   ','Lualualei.   ','Ashkhabad.   '/     !Sep. 2019 
C
	COMMON /BL1/ST,YEAR,YY,AMN,DY1,DY2,DD1,DD2,ID1,ID2,JF,JH,JT,DY22,
     *STNAME
      COMMON /BL4/ FULF,FULM,NFULF,NFULM,MAXD2
	COMMON /BSTAT/ STS1,STITLE1,STP1,GLON,GLAT,CGLON,CGLAT
CREM	COMMON /BL2/ STAT,GLAT,GLON,DD,TTT,ZZ,R12

C Start:
C    
	IONO='_iono.txt'
	NEWMN=.FALSE.
C
C	CALL DATE_AND_TIME(DD,TT,ZZ)					 !FEB2015
C      TTT(1:4)=TT(1:4)								 !FEB2015
CREM       write(*,*) ' Check IPG current file!!!!  '
CREM	pause ' '
C  Use current year, month, day from file DATE:		 !FEB2015
C
  799	format(A4,2(1X,A2),1X,A4,2(1X,A2))				 !FEB2015 NEW COMMAND NUMBER = 799
  798	format(' YEAR, AMN, DD2 = ',A4,2(1X,A2),1X,A4,2(1X,A2))
	indate='d:/web/graf/date'    !!! Tamara !!!!!!!	 !FEB2015
C#	indate='/var/www/izmiran/ionosphere/weather/graf/date' !!! LIUBA !!FEB2015
	open(10,file=indate)							   !FEB2015			
	read(10,799) YEAR,AMN_cur,DD2,YEAR_pre,AMN_pre,ADY_pre  !FEB2015 NEW FORMAT NUMBER = 799
	WRITE(*,798) YEAR, AMN_cur, DD2,YEAR_pre,AMN_pre,ADY_pre !FEB2015 NEW FORMAT NUMBER = 798
	close(unit=10)
	AMN=AMN_cur
C      WRITE(*,*) 'PC Date: Year,Month,Day = ',DD,'Time = ',TTT	!FEB2015
C	  	YEAR=DD(1:4)											!FEB2015
	YY=YEAR(3:4)
	YYMMDD(1:2)=YY
	YYMMDD(3:4)=AMN
	YYMMDD(5:6)=DD2
      Y0M0D0=YYMMDD
C++
      read(YY,*) ryr					  !
	iyr=int(ryr)					  !
	z1=iyr/4.0						  !
      jz1=int(z1)*4                     ! 
      IF(jz1.EQ.iyr) THEN				  !
               IM(2)=29				  !
        ELSE							  !
                IM(2)=28				  !
	       ENDIF					  !
C+
	kyr_nex=iyr
      read(AMN,*) rmn					  !
	kmn=int(rmn)
	read(DD2,*) rdy					  !
 	kdy=int(rdy)
	kdy_nex=kdy+1
	kmn_nex=kmn
	if (kdy_nex.gt.im(kmn)) then
	  kdy_nex=1
	  kmn_nex=kmn+1
	   if (kmn_nex.gt.12) then
	   kmn_nex=1
	   kyr_nex=iyr+1
	   endif
      endif
	call blet2(kyr_nex,AYR_nex)
	call blet2(kmn_nex,AMN_nex)
	call blet2(kdy_nex,ADY_nex)
	Y1M1D1(1:2)=AYR_nex
	Y1M1D1(3:4)=AMN_nex
	Y1M1D1(5:6)=ADY_nex


	DY1=ADY_pre
	DY2=DD2
	if (DD2.eq.'01') NEWMN=.TRUE.     ! 
C
	CCM=YEAR
	CCM(5:5)=' '
	CCM(6:7)=AMN
	CCM(8:8)=' '
C
C------------------------------------------------------------------------- !MAR2020
C#	OUTFILE1='/var/www/izmiran/ionosphere/weather/graf/2010/styrf.br' !Ljuba 
	OUTFILE1='d:/web/graf/2010/styrf.br'  !Tamara
C#	outfile1(42:45)=YEAR				  !Ljuba 
	outfile1(13:16)=YEAR				  !Tamara
C#	outfile1(49:50)=YY					  !Ljuba 
	outfile1(20:21)=YY					  !Tamara
	outfile2=outfile1					   
C#	outfile2(51:51)='m'					  !Ljuba 
	outfile2(22:22)='m'					  !Tamara
	 outfile3=outfile1					
C#	outfile3(51:51)='h'					 !!Ljuba
	outfile3(22:22)='h'					  !Tamara

	write(*,*) '1) outfiles:'                  !c//
	write(*,*) 'outfile1=', ST, outfile1
	write(*,*) 'outfile2=', ST, outfile2
	write(*,*) 'outfile3=', ST, outfile3
	write(*,*) '--------'


C ------------------------------------------------------------
C NEW source data files:                       
	infile1='d:/web/graf/dat1/12/styrmn.txt'   			   !Tamara !DEC2013 
C       infile1='/var/www/izmiran/ionosphere/weather/grif/dat1/12/styrmn.txt'   !Ljuba!DEC2013
C#       basef='/var/www/izmiran/ionosphere/weather/graf/' !Ljuba!DEC2013 Замена grif на graf 18.04.2014
C#       inf1='dat1/12/styrmn.txt'                         !Ljuba!DEC2013
C#       infile1=basef//inf1                               !Ljuba!DEC2013
C#	write(*,*) 'infile1=', infile1 !Ljuba!DEC2013

	infile1(18:19)=YY				         	!Tamara !DEC2013
C#	infile1(47:48)=YY                               !Ljuba !DEC2013
					
	infile1(23:24)=YY			         				   !Tamara !DEC2013
C#	infile1(52:53)=YY                                                  !Ljuba !DEC2013
					
C 	infile2='d:/web/graf/dat5/12/styrmnm.txt'      				   !Tamara !DEC2013
C      infile2='/var/www/izmiran/ionosphere/weather/grif/dat5/12/styrmnm.txt'  !Ljuba !DEC2013
   99  continue  														!FEB2015 Tamara
C#       inf2='dat5/12/styrmnm.txt'                         !Ljuba!DEC2013++++++++++++++++++++++++++++++++
C#       infile2=basef//inf2                               !Ljuba!DEC2013
 	infile2='d:/web/graf/dat5/12/styrmnm.txt'      				   !Tamara !DEC2013
	infile2(18:19)=YY				         				   !Tamara !DEC2013
C#	infile2(47:48)=YY                                                  !Ljuba !DEC2013
					
	infile2(23:24)=YY									 !Tamara !DEC2013
C#	infile2(52:53)=YY                                                  !Ljuba !DEC2013
				         				
C	infile3='d:/web/graf/dat6/12/styrmnh.txt'      				   !Tamara !DEC2013
C      infile3='/var/www/izmiran/ionosphere/weather/grif/dat6/12/styrmnh.txt'  !Ljuba !DEC2013
   98  continue  														!FEB2015 Tamara
	infile3='d:/web/graf/dat6/12/styrmnh.txt'      				   !Tamara !DEC2013
C#      inf3='dat6/12/styrmnh.txt'                         !Ljuba!DEC2013++++++++++++++++++++++++++++++
C#       infile3=basef//inf3                               !Ljuba!DEC2013

	infile3(18:19)=YY				         				   !Tamara !DEC2013
C#	infile3(47:48)=YY                                                  !Ljuba !DEC2013
				
 	infile3(23:24)=YY				         				   !Tamara !DEC2013
C#       infile3(52:53)=YY                                                  !Ljuba !DEC2013

	write(*,*) '2) infiles:'                    !c//
	write(*,*) 'infile1=', infile1
	write(*,*) 'infile2=', infile2
	write(*,*) 'infile3=', infile3
	write(*,*) '--------'

				
C START CYCLE ON STATIONS
C
	DO 1500 ista=1,80					               !FEB2015
Ctemp        ista=76									   !+15mm
	st=sts(ista)
C 1999	if ((ista.eq.2).or.(ista.eq.23).or.(ista.eq.43) !at,jr,wz
C 1999	if ((ista.eq.2).or.(ista.eq.43).or.(ista.eq.45) !at,wz,so
C 1999	if ((ista.eq.43) !wz     ! AUG.2022							! SER 2022
	if (ista.eq.27) goto 180			 !mo
	if ((ista.eq.2).or.(ista.eq.43).or.(ista.eq.59).or.(ista.eq.60)
	+.or.(ista.eq.61).or.(ista.eq.62)) then !,sd, rv	!+OCT 2022
      goto 1500
	 endif
C
C read monthly files Sodankyla for prec and current months:
C=      if (ista.eq.45) then
C=	call readsod(YYMMDD)
C=	endif
C
 299 	STNAME(1:6)=YYMMDD
	TITLES=STITLE(ista)
	do k=2,15
	if (titles(k:k).eq.'.') then                    !***
	kk=k-1
	exit
	endif
	enddo
	stname(7:)=titles(1:kk)
	kkk=kk+7
	stname(kkk:)=iono
	ST=STS(ista)
C#	OUTFILE1(47:48)=ST						!Ljuba 
	OUTFILE1(18:19)=ST						!Tamara
	write(*,*) ST, outfile1 

C#	OUTFILE2(47:48)=ST						!Ljuba
	OUTFILE2(18:19)=ST						!Tamara

C#	OUTFILE3(47:48)=ST				 	    !Ljuba 
	OUTFILE3(18:19)=ST						!Tamara

	write(*,*) '3) outfiles:'               !c//
	write(*,*) 'outfile1=', ST, outfile1
	write(*,*) 'outfile2=', ST, outfile2
	write(*,*) 'outfile3=', ST, outfile3
	write(*,*) '--------'
CC
      if((ista.eq.11).or.(ista.eq.14).or.(ista.eq.19) ! db,eb,he							!July 2022
	+.or.(ista.eq.23).or.(ista.eq.63)	   !jr,tz
     +.or.(ista.eq.74).or.(ista.eq.76)) then !gr,sp      + then 
      goto 1501
	    endif
CC
C
      infile1(21:22)=ST				         	  !Tamara !DEC2013
C#	infile1(50:51)=ST                                     !Ljuba !DEC2013
					
	infile2(21:22)=ST				         	  !Tamara  !DEC2013
C#	infile2(50:51)=ST                                     !Ljuba !DEC2013
				
	infile3(21:22)=ST				         	  !Tamara !DEC2013
C#	infile3(50:51)=ST                                     !Ljuba !DEC2013	

	write(*,*) '4) intfiles:'                  !c//
	write(*,*) 'infile1=', ST, infile1
	write(*,*) 'infile2=', ST, infile2
	write(*,*) 'infile3=', ST, infile3
	write(*,*) '--------'
C
	jf=1
	jh=1
	jt=2
	if (ista.eq.1) then                      !++++================
C--      if (ista.eq.76) then	   !TEMPPPPPPPPPPPPPP
	read(dd2,*) rdy2
	id2=int(rdy2)
	nndy2=id2
C---	     endif								 !++++
C +++++++++++++++++++++++++++           !
C									  !
	read(AMN,*) rmn					  !
	imn=int(rmn)        			  !
	imn1=imn                          !
	iyr1=iyr						  !
C NEW preceding day for start of month: !
	IF (.not.NEWMN) THEN                     !1
	id1=id2-1						  !
	              ELSE				  !		  1
	imn1=imn-1		                  !
	if (imn1.eq.0) then				  ! <<	2
	imn1=12							  !
	iyr1=iyr1-1                       !
	if (iyr1.lt.0) iyr1=100+iyr1      !
c-	id1=im(imn1)				        	!
c-	id2=id1                                 !
	endif                             ! >>	2
		id1=im(imn1)				        !
	        id2=id1                         !
	                ENDIF             !		 1
	ENDIF                                    !+++++======================
	call blet2(imn1,AMN1)             !
	call blet2(iyr1,AYR1)			  !
	AMN=AMN1						  !
	YY=AYR1							  !
		CCM(3:4)=YY                          !
		CCM(6:7)=AMN                         !

C
C
C	if (ista.ge.54) then	                 !FEB2015
C	id1=id1-1  ! tk,kh,mm                    !FEB2015
c	jh=0									 !FEB2015
C	endif                                    !FEB2015

	call blet2(id1,DD1)
C -------------------------------------------------------
C Read data of prec month for the station:      
	imn0=imn-1								  
	iyr0=iyr								  
	if (imn0.eq.0) then						  
	imn0=12									  
	iyr0=iyr0-1								  
	endif									  
	 call blet2(imn0,AMN0)					  
      call blet2(iyr0,AYR0)					  

      infile1(18:19)=AYR0				            !Tamara DEC2013
C#	infile1(47:48)=AYR0                               !Ljuba DEC2013

      infile1(23:24)=AYR0				            !Tamara DEC2013
C#	infile1(52:53)=AYR0                               !Ljuba DEC2013

      infile1(25:26)=AMN0				            !Tamara
C#	infile1(54:55)=AMN0                               !Ljuba DEC2013
					
      infile2(18:19)=AYR0				            !Tamara DEC2013
C#	infile2(47:48)=AYR0                               !Ljuba DEC2013

       infile2(23:24)=AYR0				            !Tamara DEC2013
C#	infile2(52:53)=AYR0                               !Ljuba DEC2013

	infile2(25:26)=AMN0 			            !Tamara
C#	infile2(54:55)=AMN0                                 !Ljuba DEC2013
					
      infile3(18:19)=AYR0				            !Tamara DEC2013
C#	infile3(47:48)=AYR0                               !Ljuba DEC2013

      infile3(23:24)=AYR0				            !Tamara DEC2013
C#	infile3(52:53)=AYR0                               !Ljuba DEC2013

	infile3(25:26)=AMN0				         	!Tamara
C#	infile3(54:55)=AMN0                                  !Ljuba
				
	write(*,*) '5) infiles:'                     !c//
	write(*,*) 'infile1=', ST, infile1
	write(*,*) 'infile2=', ST, infile2
	write(*,*) 'infile3=', ST, infile3
	write(*,*) '--------'

	nd0=im(imn0)							   
	OPEN(15,file=INFILE1)					   
	OPEN(12,file=OUTFILE1)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(12,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
	OPEN(15,file=INFILE2)					   
	OPEN(13,file=OUTFILE2)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(13,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
	OPEN(15,file=INFILE3)					   
	OPEN(14,file=OUTFILE3)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(14,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
C Read data of current month for the station:    
C
      infile1(18:19)=AYR1				         	!Tamara	DEC2013		
      infile2(18:19)=AYR1				         	!Tamara	DEC2013		
      infile3(18:19)=AYR1				         	!Tamara	DEC2013		
      infile1(23:24)=AYR1				         	!Tamara	DEC2013		
      infile2(23:24)=AYR1				         	!Tamara	DEC2013		
      infile3(23:24)=AYR1				         	!Tamara	DEC2013		
      infile1(25:26)=AMN				         	!Tamara	DEC2013		
 	infile2(25:26)=AMN  			         	!Tamara	DEC2013		
	infile3(25:26)=AMN				         	!Tamara	DEC2013

C       infile1='/var/www/izmiran/ionosphere/weather/grif/dat1/12/styrmn.txt'   !Ljuba DEC2013

C#	infile1(47:48)=AYR1                                  !Ljuba DEC2013		
C#	infile2(47:48)=AYR1                                  !Ljuba DEC2013		
C#	infile3(47:48)=AYR1                                  !Ljuba DEC2013		
C#	infile1(52:53)=AYR1                                  !Ljuba DEC2013		
C#	infile2(52:53)=AYR1                                  !Ljuba DEC2013		
C#	infile3(52:53)=AYR1                                  !Ljuba DEC2013		

C#	infile1(54:55)=AMN                                  !Ljuba DEC2013		   
C#       infile2(54:55)=AMN                                  !Ljuba DEC2013	
C#       infile3(54:55)=AMN                                  !Ljuba DEC2013	

	write(*,*) '6) infiles:'                 !c//
	write(*,*) 'infile1=', ST, infile1
	write(*,*) 'infile2=', ST, infile2
	write(*,*) 'infile3=', ST, infile3
	write(*,*) '--------'


	jj=nd0									   ! jj days for prec month
	nd0=id1-1								   
	jj=jj+nd0								   ! jj days for two months
	if (nd0.eq.0) goto 1
	OPEN(15,file=INFILE1)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(12,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
	OPEN(15,file=INFILE2)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(13,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
	OPEN(15,file=INFILE3)					   
	do i=1,4								   
	read(15,89) ctext          ! extra lines   
	enddo									   
	do i=1,nd0								   
	read(15,89) ctext          			       
	write(14,89) ctext						   
	enddo                                      
	close(unit=15)							   
C
C AVOID COMMANDS OF READING OLD FILES *.br 
C#	GOTO 1                                       				  ! DEC2013	
   89	format(A128)												  ! DEC2013	
C DELETED COMMANDS BEFORE 1 CONTINUE                                ! DEC2013	
C-----------------------------------------------------------------
   1	continue
C ===================================	 
	kfulf=0
	kfulm=0
C	DO 77 JD=id1,id2				   ! day-to-day cycle
        jd=id1
      call blet2(jud,DDD)
	CDAY(JD)=DDD 
C
	CCM(9:10)=DDD
	ist=0
C+++
CREM      if (jd.eq.id1) then  
	STNAME(1:6)=Y0M0D0
C ngdc stations
 199	if((jd.eq.id1).and.((ista.eq.1).or.(ista.eq.2).or.(ista.eq.3) !  ! as,at,bc,br
     +.or.(ista.eq.6).or.(ista.eq.7) !! ,cb,cn,cq,cs
C     +.or.(ista.eq.10).or.(ista.eq.11.or.(ista.eq.14)).or.(ista.eq.18).or.(ista.eq.19) ! ,cw,jb !db,dw
     +.or.(ista.eq.10)
     +.or.(ista.eq.13).or.(ista.eq.15).or.(ista.eq.16).or.(ista.eq.17) ! ,eg,ga,bb,go
     +.or.(ista.eq.21) !ha,he,ho,jj
     +.or.(ista.eq.22).or.(ista.eq.24).or.(ista.eq.26) !jm,kk,lm,ml
C     +.or.(ista.eq.27).or.(ista.eq.29).or.(ista.eq.30).or.(ista.eq.31) !,mo,mw,nd,ni !06.07.2022
     +.or.(ista.eq.31).or.(ista.eq.32).or.(ista.eq.34).or.(ista.eq.35) !,ok,pe,pq,rm
     +.or.(ista.eq.36).or.(ista.eq.37).or.(ista.eq.38) !,ro,vt,sq,tv
     +.or.(ista.eq.40).or.(ista.eq.41).or.(ista.eq.42).or.(ista.eq.46) !,tr,wk,wp,ff
C     +.or.(ista.eq.47).or.(ista.eq.48).or.(ista.eq.49).or.(ista.eq.50) !,kh,nc,mm,tk
     +.or.(ista.eq.47).or.(ista.eq.48).or.(ista.eq.49)            ! 2023.10.27 -tk
     +.or.(ista.eq.51).or.(ista.eq.52).or.(ista.eq.53).or.(ista.eq.54)  !bp,ch,sa,ei
     +.or.(ista.eq.55).or.(ista.eq.56).or.(ista.eq.57).or.(ista.eq.64) !,gg,if,tu,pa
     +.or.(ista.eq.65).or.(ista.eq.66).or.(ista.eq.67).or.(ista.eq.68) !fz,au,al,yg
	+.or.(ista.eq.69).or.(ista.eq.44).or.(ista.eq.45).or.(ista.eq.71) ! bl, gm, mh, ns Jan. 2021
     +.or.(ista.eq.72).or.(ista.eq.73).or.(ista.eq.75) !Aug 2020
     +.or.(ista.eq.77).or.(ista.eq.78).or.(ista.eq.79).or.(ista.eq.80)) ! er,ll,ad 	 !Aug 2020
C	+.or.(ista.eq.23).or.(ista.eq.74)   ! jr, so, ch             
     +.or.(ista.eq.4).or.(ista.eq.5).or.(ista.eq.8)
	+.or.(ista.eq.9).or.(ista.eq.12).or.(ista.eq.20).or.(ista.eq.25)
     +.or.(ista.eq.29).or.(ista.eq.30).or.(ista.eq.33)
     +.or.(ista.eq.39)) 
     + then 
	 	close(unit=12)
 	close(unit=13)
	close(unit=14)
	call subngdc2(st)
	continue
	    endif
C++ Australian
C-	 IF((jd.eq.id1).and.((ista.eq.4).or.(ista.eq.5).or.(ista.eq.8)
C-	+.or.(ista.eq.9).or.(ista.eq.12).or.(ista.eq.20).or.(ista.eq.25)
C     +.or.(ista.eq.29).or.(ista.eq.30).or.(ista.eq.31).or.(ista.eq.33)
C-     +.or.(ista.eq.29).or.(ista.eq.30).or.(ista.eq.33)
C-     +.or.(ista.eq.39))) THEN
C-	 	close(unit=12)
C- 	close(unit=13)
C-	close(unit=14)
C-	call subausao(st,YEAR,AMN,DY1,DY2)
C-	 ENDIF
C Chilton	RAL SEC style
C-	IF((jd.eq.id1).and.(ista.eq.52)) THEN
C-	 	close(unit=12)
C- 	close(unit=13)
C-	close(unit=14)
C-	write(*,*) ' Apply SEC-RAL? y/n:'
C-	read(*,*) yn
C-	if (yn.eq.'y') then
C-	jd1=id1
C-	jd2=nndy2
C-      call subsec2b(jd1,jd2,CDAY,outfile1,outfile2,outfile3)
C-	endif
C-	endif
C++ Mos                               !06.07.2022
 180     if (ista.eq.27) then			!06.07.2022
	call subextmos					!06.07.2022
	endif							!06.07.2022
C++  EB=14
C- 170     if((ista.eq.14).and.(jd.eq.id1)) then	!!MAR2020++++++++++++++++++++++++++++++++
C-	close(unit=12)
C-	close(unit=13)
C-	close(unit=14)
C-	call subsao6c(ST,YY,AMN,DY1)
C-      call subsao6c(ST,YY,AMN,DY2)
C-		endif
C+ NS
	if ((ista.eq.58).and.(jd.eq.id1)) then
	call blet2(id1,DY1)
	call blet2(id2,DY2)
	close(unit=12)
	close(unit=13)
	close(unit=14)
	call subionka3(if2,im3,ih2)  ! NS
	endif
C++SP
C--      if((ista.eq.76).and.(jd.eq.id1)) then	!!AUG 2020++++++++++++++++++
C--	close(unit=12)
C--	close(unit=13)
C--	close(unit=14)
C-	call subxmld
C--	call subxmldmm(YEAR,AMN_cur,DD2,YEAR_pre,AMN_pre,ADY_pre)	  !AUG 2022           !+15mm
C--		endif
C+=NS
Ctemp	if (jd.eq.maxd2) then
C check full sets of foF2, M3F2 at DAY2:
  	cntf=0
	cntm=0
	do n=1,24
	if (IF2(JD,n).GT.999) IF2(JD,n)=0	  !
	if (IH2(JD,n).GT.999) IH2(JD,n)=0	  !
	if (IM3(JD,n).GT.999) IM3(JD,n)=0	  !
	if (IF2(JD,n).gt.0) cntf=cntf+1
	if (jh.eq.1) then
	if (IM3(JD,n).gt.0) cntm=cntm+1
	endif
	enddo                                                             !+APR 2020
	if (cntf.eq.24) then
	kfulf=kfulf+1
	endif
	if ((jh.eq.1).and.(cntm.eq.24)) then
	kfulm=kfulm+1
	endif
C
C Output zero data for missing stations/data
C
C	if ((ista.eq.28).or.(ista.eq.43).or.(ista.eq.44).or.(ista.eq.45) !mq,wz, mb, so, 
1501  if((ista.eq.11).or.(ista.eq.14).or.(ista.eq.19) ! db,eb,he							!July 2022
	+.or.(ista.eq.23).or.(ista.eq.63)	   !jr,wz,tz
     +.or.(ista.eq.74).or.(ista.eq.76)) then !gr,sp 
C
	do n=1,24
	 IF2(JD,n)=0	  !
	 IH2(JD,n)=0	  !
	 IM3(JD,n)=0	  !
	enddo
C
  188 FORMAT(3A2,A120)
       call blet2(id1,DY22)
	icnt=0
	i_cnt=0
	OPEN(12,file=OUTFILE1)
 151	read(12,188,end=244) CYR,CMN,CDY,m_data
	if ((CYR.eq.YY).and.(CMN.eq.AMN).and.(CDY.eq.DY22)) THEN
	goto 244
	else
	icnt=icnt+1
      goto 151
	endif
  244	i_cnt=icnt
      rewind (12)
	icnt=0
	 do while (icnt.lt.i_cnt)
	read(12,188,end=248) CYR,CMN,CDY,m_data
	icnt=icnt+1
	 enddo
  248	 print*,'YES!',st
        ENDFILE 12
	close(12)
      OPEN(12,file=OUTFILE1,access='APPEND')		 !
C
	icnt=0
	i_cnt=0
  	OPEN(13,file=OUTFILE2)
  152	read(13,188,end=245) CYR,CMN,CDY,m_data
	if ((CYR.eq.YY).and.(CMN.eq.AMN).and.(CDY.eq.DY22)) THEN
	goto 245
	else
	icnt=icnt+1
	goto 152
	endif
  245	i_cnt=icnt
      rewind (13)
		icnt=0
	 do while (icnt.lt.i_cnt)
	read(13,188,end=249) CYR,CMN,CDY,m_data
	icnt=icnt+1
	 enddo
  249	 print*,'YES!',st
        ENDFILE 13
	close(13)
      OPEN(13,file=OUTFILE2,access='APPEND')		 !
C
	icnt=0
	i_cnt=0
  	OPEN(14,file=OUTFILE3)		 !
  153	read(14,188,end=246) CYR,CMN,CDY,m_data
	if ((CYR.eq.YY).and.(CMN.eq.AMN).and.(CDY.eq.DY22)) THEN
	goto 246
		else
	icnt=icnt+1
 	goto 153
 	endif
  246	i_cnt=icnt
      rewind (14)
		icnt=0
	 do while (icnt.lt.i_cnt)
	read(14,188,end=250) CYR,CMN,CDY,m_data
	icnt=icnt+1
	 enddo
  250	 print*,'YES!',st
        ENDFILE 14
  179	close(14)
      OPEN(14,file=OUTFILE3,access='APPEND')		 !
C
	 DO 77 ndy=id1,id2
	call blet2(ndy,DY22)
c
	write(*,88) YY,AMN,DY22,(IF2(JD,k),k=1,24)
	write(12,88) YY,AMN,DY22,(IF2(JD,k),k=1,24)
c
	if (jh.eq.1) then
  	write(13,88) YY,AMN,DY22,(IM3(JD,k),k=1,24)  !
	write(*,88) YY,AMN,DY22,(IM3(JD,k),k=1,24)	!
C
 	write(14,88) YY,AMN,DY22,(IH2(JD,k),k=1,24)  !
	write(*,88) YY,AMN,DY22,(IH2(JD,k),k=1,24)	!
	endif
	    CLOSE (unit=11)
   77 continue                 ! go to the next day
       endif !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
   88	format(3A2,2X,24(I3,2X))					!
C End of daily cycle ===============
C
	goto 2
3	 write(*,*) 'INPUT FILE IS NOT IN YOUR DIRECTORY '
   2  continue
	 CLOSE (unit=12)
	 		if (jh.eq.1) then 
			CLOSE (unit=13)
	CLOSE (unit=14)							  !
	        endif
 1500	CONTINUE      ! End cycle on SEC stations
C
C Add IPG stations
C-      call subipg7
      call subipg_dx
Crem            call subipg_d(YY,AMN,DD2)
C		  call subipg_d(AYR_nex,AMN_nex,ADY_nex)
C
CNEW--        call subcbkf3
C
	pause ' '
c      RETURN
	STOP
	END
C
      subroutine blet2(ilet,alet2)
c     nn=1,2,3,4 

	CHARACTER*1 IN(0:9)
C	INTEGER*2 ilet					  !FEB2015
	DATA IN/'0','1','2','3','4','5','6','7','8','9'/
	CHARACTER*2 alet2
CLjuba	a2='00'
	alet2='00'             !
	j10=ilet/10
	j1=ilet-j10*10
    5	do i=0,9
	if (j10.eq.i) then
	alet2(1:1)=IN(i)
	endif
	enddo
   7	do i=0,9 
     	if (j1.eq.i) then
 	alet2(2:2)=IN(i)
	endif
	enddo 
	return
	end
C
      integer function ndoy(iyr,imn,idy)
C To define day-of-year
C
	       DIMENSION IM(12)
	integer*2 iyr,imn,idy
	DATA IM/31,28,31,30,31,30,31,31,30,31,30,31/
	z1=iyr/4.0
      jz1=int(z1)*4
      IF(jz1.EQ.iyr) THEN
               IM(2)=29
        ELSE
                IM(2)=28
	       ENDIF
C Day-of-year LDA1
		mosum=0
      if(imn.gt.1) then
         do 1234 i=1,imn-1
1234    mosum=mosum+im(i)
         endif
      ndoy=mosum+idy	
	END FUNCTION
C ===============================================================
