!-------------------------------------- LICENCE BEGIN ------------------------------------
!Environment Canada - Atmospheric Science and Technology License/Disclaimer,
! version 3; Last Modified: May 7, 2008.
!This is free but copyrighted software; you can use/redistribute/modify it under the terms
!of the Environment Canada - Atmospheric Science and Technology License/Disclaimer
!version 3 or (at your option) any later version that should be found at:
!http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html
!
!This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
!without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!See the above mentioned License/Disclaimer for more details.
!You should have received a copy of the License/Disclaimer along with this software;
!if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec),
!CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca
!-------------------------------------- LICENCE END --------------------------------------
!
SUBROUTINE FILBRPPOST 3,6
#if defined (DOC)
**s/r filbrppost
*
************************************************************************
*
* PURPOSE: FILL UP POSTALT FILE FOR 3D-VAR
*
*
* ARGUMENTS:
* NONE
*
*
* AUTHOR: P. KOCLAS/CMC
*
* Revision:
* C. Charette *ARMA/AES - Feb 96.
* - Changed FNOM to avoid potential problem
* with empty files
* . P. Koclas *CMC/AES - Apr 96.
* -JPFILES parameter now in cvcord COMMON
* . P. Koclas *CMC/AES - Jan 97.
* -ADDED NAMELIST AND COMMON: NAMBPOST COMBPOST
* -CHANGE TO CALL SEQUENCE TO CMAABRP
* . P. Koclas *CMC/AES - Jun 97.
* -REMOVAL OF CALLS TO EXDB EXFIN
* . P. Koclas *CMC/AES - Nov 97.
* -SINGLE CALL TO CMAABRP
* . B. Brasnett *CMC/AES - Oct 98
* -ADD LISTING OF REJECTED DATA
* . S. Pellerin *ARMA/SMC
* -Logical unit cleanup
* A. Beaulne *CMDA/SMC - July 2006
* -Modifications for AIRS: add more variables to file
* Bin He *ARMA/MRB - Feb.2010
* - MPI Parallelization .
*
*
************************************************************************
#endif
*
USE procs_topo
,ONLY : myid
IMPLICIT NONE
#include "comlun.cdk"
#include "cvcord.cdk"
#include "comdimo.cdk"
#include "comoabdy.cdk"
#include "comvfiles.cdk"
#include "combpost.cdk"
#include "partov.cdk"
#include "comtov.cdk"
#include "comct0.cdk"
#include "comoba.cdk"
*
INTEGER IER,INRECS,IBRP1
INTEGER INBLKS,IOBTOT,IDATA
INTEGER FCLOS,FNOM,MRFCLS,MRFOPN,MRFOPC,NUMBLKS
*
INTEGER JVAL,NVALS,J,JJ,JD,KRTID
*
LOGICAL LLAPPEND
*
EXTERNAL FCLOS,FNOM,MRFCLS,MRFOPN,MRFOPC,NUMBLKS
*
CHARACTER(LEN=90) :: BURPIN,BURPOUT
*
* ------NOTE----------
* currently supported families of data 'UA' 'AI' 'SF' 'HU' 'TO'
*
*
************************************************************************
* OPEN FILES WHOSE NAMES ARE CONTAINED IN ARRAY CBURP.
* OPEN AND APPEND DATA TO "POST" FILES.
************************************************************************
*
* 0. Restore Global Arrays of ROBDATA and MOBDATA.
* --------------------------------------------
CALL restoreCMA
IF(myid /= 0) RETURN
*
C
C DEFAULTS
C ------------------
NELCMA=4
CSAV(1)='OMA'
CSAV(2)='OMP'
CSAV(3)='OER'
CSAV(4)='VAR'
C
CALL READNML
('NAMBPOST',IER)
C
NSAV(1)=NCMOMA
NSAV(2)=NCMOMF
NSAV(3)=NCMOER
NSAV(4)=NCMVAR
c
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'OMA') NSAV(J)=NCMOMA
END DO
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'OMP') NSAV(J)=NCMOMF
END DO
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'OER') NSAV(J)=NCMOER
END DO
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'FGE') NSAV(J)=NCMFGE
END DO
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'VAR') NSAV(J)=NCMVAR
END DO
DO J=1,NELCMA
IF ( CSAV(J) .EQ. 'FLG') NSAV(J)=NCMFLG
END DO
NDATA=0
NOBTOT=1
C
WRITE(NULOUT,'(1X,"SUBROUTINE FILBRPPOST")')
WRITE(NULOUT,'(1X,"-----------------",/)')
WRITE(NULOUT,'(1X,"***********************************")')
WRITE(NULOUT,'(1X," ELEMENTS SELECTED FOR POST_FILE :",/)')
WRITE(NULOUT,'(1X,"***********************************")')
DO JD=1,NELCMA
WRITE(NULOUT,'(15X,A3,/)') CSAV(JD)
END DO
IER =MRFOPC('MSGLVL','FATAL')
*
NVALS=NFILES
LLAPPEND=.FALSE.
NOBTOT=0
NDATA=0
DO J =1,NKOUNT
NVTYP=J
CBURP(J) = CFILNAM(J)
ibrp1 = 0
IER =FNOM(IBRP1,CBURP(J),'RND+OLD',0)
INBLKS= -1
IF ( IER .NE. 0 ) THEN
WRITE(NULOUT,*) ' '
WRITE(NULOUT,*)
S '========================================================='
WRITE(NULOUT,*)' NO DATA IN POSTALT FILE ',CBURP(J)
WRITE(NULOUT,*)
S '========================================================='
WRITE(NULOUT,*) ' '
ELSE
INBLKS =NUMBLKS(IBRP1)
IF ( INBLKS .GT. 0) THEN
CFAM(J)=CFAMTYP(J)
INRECS=MRFOPN(IBRP1,'APPEND')
WRITE(NULOUT,*) ' '
WRITE(NULOUT,*)
S '========================================================='
WRITE(NULOUT,*) ' ',INRECS,
S ' ',CFAM(J),' OBSERVATIONS IN BURP FILE ',CBURP(J)
WRITE(NULOUT,*)
S '========================================================='
WRITE(NULOUT,*) ' '
*
* -----------------
* FILL UP POST FILE
* -----------------
*==========================================================================
CALL CMAABRP
(CFAM(J),LLAPPEND,IBRP1,INRECS,NSAV,NELCMA)
*==========================================================================
*
IER=MRFCLS(IBRP1)
ENDIF
LLAPPEND = .TRUE.
*
ENDIF
*
* CLOSE FILE
* -------------
IER= FCLOS(IBRP1)
END DO
*
* IN BGCHECK MODE, FILL AIRS POSTFILE WITH ADDITIONNAL VARIABLES
* --------------------------------------------------------------
IF ( NCONF .EQ. 101 ) THEN
DO KRTID = 1, NSENSORS
IF ( PLATFORM(KRTID) .EQ. 9 .AND.
& SATELLITE(KRTID) .EQ. 2 .AND.
& INSTRUMENT(KRTID) .EQ. 11 ) THEN
IF ( NKOUNT == 1 ) THEN
write(nulout,*) 'INPUT FILE TO AIRSABRP = ', CBURP(NKOUNT)
CALL AIRSABRP
(CBURP(NKOUNT))
ELSE
WRITE(NULOUT,*) 'ERROR! THERE SEEM TO BE MORE THAN ONE AIRS FILE ???'
END IF
END IF
IF ( PLATFORM(KRTID) .EQ. 10 .AND.
& SATELLITE(KRTID) .EQ. 2 .AND.
& INSTRUMENT(KRTID) .EQ. 16 ) THEN
IF ( NKOUNT == 1 ) THEN
write(nulout,*) 'INPUT FILE TO IASIABRP = ', CBURP(NKOUNT)
CALL IASIABRP
(CBURP(NKOUNT))
ELSE
WRITE(NULOUT,*) 'ERROR! THERE SEEM TO BE MORE THAN ONE IASI FILE ???'
END IF
END IF
END DO
END IF
*
RETURN
END