!-------------------------------------- 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 RESUME(KHANDL,CDTYP,KBUFIN) 3 #if defined (DOC) * ************************************************************************ * ***s/r - TO READ "RESUME REPORT" FROM CMC DERIVATE FILES * AND SET CONSTANTS DEPENDING ON DATA TYPE. * *ARGUMENTS: * * i- KHANDL : "HANDLE" OF BURP REPORT * . CDTYP : DATA TYPE (I.E: UA=UPPER AIR ...) * . KBUFIN : BUFFER CONTAINING BURP REPORT * * o- NONE * * AUTHOR: P. KOCLAS(CMC/CMDA TEL. 4665) * *Revision: * . P. Koclas *CMC/CMDA February 94 * . -documentation * . P. Koclas *CMC/CMDA February 95 * -allow new types of data and vertical coordinates * . C. Charette- *ARMA/DRM September 95 * -allow bogus type of data (BO) * . P. Koclas *CMC/CMSV January 97 * -SSMI data and vertical coordinate * . S. Pellerin *ARMA/AES Sept 97 * - Introduction of type OZ * . C. Charette *ARMA/AES Sept 98 * - Change value of vconv de 0.01 to 1.0 * Pressure values will be stored in Pascal in the CMA * . P. Koclas *CMC/CMSV October 98 * . -force derialt type for airep family when analysis * is on model levels * C. Charette ARMA/AES NOV 1998 * - Change value of conversion factor vconv for pressure coordinate * from 0.01 to 1.0. Consequently units of pressure will be * in Pascal in the CMA. Updates for option cvcord = 'PRESS' * . P. Koclas *CMC/CMDA June 99 * . -modify format for y2k * . J. Halle *CMC/CMDA December 2000 * . -TOVS level 1B data * . JM Belanger *CMDA/SMC* june 2001 * . -32 bits conversion. * . C Charette *ARMA/SMC Oct 2001 * . - Added >>BGCKALT * . N. Wagneur *MSC/CMC June 2001 * - Adapt to GOES family ('GO') * . J. St-James *CMDA/SMC July 2003 * - Add profiler family ('PR') * . JM Belanger *CMDA/SMC* Nov 2003 * . -Add QUIKSCAT * . J.M. Aparicio *ARMA/MSC* October 2006 * . - Adapt for GPSRO * . S. Macpherson *ARMA/MRD Sep 2009 * - Added ground-based GPS family ('GP') * ************************************************************************ #endif * IMPLICIT NONE #include "comlun.cdk"
#include "cbtypes.cdk"
#include "cvcord.cdk"
#include "partov.cdk"
#include "comtov.cdk"
* INTEGER KBUFIN(*) INTEGER KHANDL CHARACTER *2 CDTYP INTEGER IER,IG,IR INTEGER ITIME,IFLGS,IDBURP,ILAT,ILON,IDX,IDY, & IALT,IDELAY,IDATE,IRS,IRUNN,INBLK,ISUP,INSUP,IXAUX,INXAUX * INTEGER IGALTIN, IRALTIN, IGSFCIN, IRSFCIN INTEGER IGPREVI, IRPREVI, IGANALY, IRANALY INTEGER IGALTOA, IRALTOA, IGSFCOA, IRSFCOA INTEGER IOBSDAT INTEGER IBITTYP,IBITRUN * PARAMETER(IGALTIN=02, IRALTIN=03, IGALTOA=06, IRALTOA=07) PARAMETER(IGPREVI=18, IRPREVI=19, IGANALY=14, IRANALY=15) PARAMETER(IGSFCIN=04, IRSFCIN=05, IGSFCOA=08, IRSFCOA=09) PARAMETER(IOBSDAT=00) PARAMETER(IBITRUN=6 , IBITTYP=6 ) * INTEGER MRFGET,MRBHDR EXTERNAL MRFGET,MRBHDR * CHARACTER *9 CLSTNID * ************************************************************************ * READ THE "RESUME REPORT" * * ... temporary addition... * IN THE CASE WHERE NONE IS PRESENT IT IS ASSUMED THAT THE * DATA WAS GENERATED BY "PROGRAM GENPROF" OF CMC. (P.KOCLAS A.GUY) ************************************************************************ * NVCORDTYP = -1 INSUP=0 INXAUX=0 IER = MRFGET(KHANDL,KBUFIN) IER = MRBHDR(KBUFIN,ITIME,IFLGS,CLSTNID,IDBURP,ILAT,ILON,IDX,IDY, 1 IALT,IDELAY,IDATE,IRS,IRUNN,INBLK,ISUP,INSUP,IXAUX,INXAUX) IF ( CLSTNID(1:2) .NE. '>>' ) THEN IF ( IFLGS .EQ. 2**19) THEN CLSTNID='>>ANALYSE' ELSE IF (IFLGS .EQ. 2**20) THEN CLSTNID='>>PREVISI' ELSE IF ( BTEST(IFLGS,10) ) then CLSTNID='>>DONNEES' ELSE WRITE(NULOUT,*) ' TYPE OF DATA IN BURP FILE IS UNKNOWN' ENDIF ENDIF * WRITE(NULOUT,*) ' ' WRITE(NULOUT,*) ' RESUME REPORT ' WRITE(NULOUT,*) '*********************************************' WRITE(NULOUT,*) ' STNID DATE TIME RUNN ' WRITE(NULOUT,*) '*********************************************' WRITE(NULOUT,FMT='(2X,A9,3(3X,I8))' ) CLSTNID,IDATE,ITIME,IRUNN WRITE(NULOUT,*) ' ' * ************************************************************************ * FIND THE APPROPRIATE BKTYP VIA RUNN FOUND VIA THE "RESUME REPORT" * OR THE FIRST REPORT FOUND IN THE BURP FILE ************************************************************************ * WRITE(NULOUT,*) ' ' WRITE(NULOUT,*) ' ========================================' WRITE(NULOUT,*) ' DESIRED DATA TYPE =',CDTYP * IF( .NOT. BTEST(IRUNN,IBITRUN)) THEN IF ( CLSTNID .EQ. '>>DERIALT' ) THEN IG=IGALTIN ELSE IF ( CLSTNID .EQ. '>>POSTALT') THEN IG=IGALTOA ELSE IF ( CLSTNID .EQ. '>>BGCKALT') THEN IG=IGALTOA ELSE IF ( CLSTNID .EQ. '>>ANALYSE') THEN IG=IGANALY ELSE IF ( CLSTNID .EQ. '>>PREVISI') THEN IG=IGPREVI ELSE IF ( CLSTNID .EQ. '>>DONNEES') THEN IG=IOBSDAT ENDIF * NBKTYPA = IBSET(IG,IBITTYP) NBKTYPS = IG WRITE(NULOUT,*) ' DATA ORIGINATES FROM GLOBAL RUN' ELSE IF ( CLSTNID .EQ. '>>DERIALT') THEN IR=IRALTIN ELSE IF ( CLSTNID .EQ. '>>POSTALT') THEN IR=IRALTOA ELSE IF ( CLSTNID .EQ. '>>BGCKALT') THEN IR=IRALTOA ELSE IF ( CLSTNID .EQ. '>>ANALYSE') THEN IR=IRANALY ELSE IF ( CLSTNID .EQ. '>>PREVISI') THEN IR=IRPREVI ELSE IF ( CLSTNID .EQ. '>>DONNEES') THEN IR=IOBSDAT ENDIF * NBKTYPA = IBSET(IR,IBITTYP) NBKTYPS = IR NBKSTP=1 WRITE(NULOUT,*) ' DATA ORIGINATES FROM REGIONAL RUN' ENDIF WRITE(NULOUT,*) ' BKTYP ARE: ' WRITE(NULOUT,*) ' SURFACE BLOCKS ' , NBKTYPS WRITE(NULOUT,*) ' ALTITUDE BLOCKS ', NBKTYPA * WRITE(NULOUT,*) ' ' WRITE(NULOUT,*) ' ------------------------------------ ' NBKTYPSSMI= 86 WRITE(NULOUT,*) ' SSMI DATA BLOCKS ', NBKTYPSSMI WRITE(NULOUT,*) ' ------------------------------------ ' c NBKTYPGPSRO= 66 c WRITE(NULOUT,*) ' GPS RO DATA BLOCKS ', NBKTYPGPSRO WRITE(NULOUT,*) ' ------------------------------------ ' * ************************************************************************ * SET THE POSSIBLE VERTICAL COORDINATES FOR EACH FAMILY OF DATA ************************************************************************ * * * UPPER AIR ( TEMP PILOT AND SURFACE ..) *-------------------------------------------- * IF ( CDTYP .EQ. 'UA' ) THEN NVCORD=007004 NVCORDTYP=2 VCONV=1.0D0 * * PROFILER *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'PR' ) THEN NVCORD=007006 NVCORDTYP=1 VCONV=1.0D0 * * HUMSAT *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'HU' ) THEN NVCORD=007004 NVCORDTYP=2 VCONV=1.0D0 * * SATEMS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'ST' ) THEN NVCORD=007004 NVCORDTYP=2 VCONV=1.0D0 * * SATWIND *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'SW' ) THEN NVCORD=007004 NVCORDTYP=2 VCONV=1.0D0 * * * AIREP ASDAR *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'AI' ) THEN NVCORD=007004 NVCORDTYP=2 VCONV=1.0D0 * * * SYNOPS DRIFTERS DRIBUS SHIPS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'SF' ) THEN NVCORD=007004 NVCORD=007001 NVCORDTYP=1 VCONV=1.0D0 * * SCATTEROMETER WINDS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'SC' ) THEN NVCORD=007001 NVCORDTYP=1 VCONV=1.0D0 * * TOVS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'TO' ) THEN IF ( LEVEL1B ) THEN NVCORD=002150 ELSE NVCORD=005042 ENDIF VCONV=1.0D0 * * GOES *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'GO' ) THEN NVCORD=005042 VCONV=1.0D0 * * GPS RO *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'RO' ) THEN NVCORD=007007 NVCORDTYP=1 VCONV=1.0D0 * * GPS GB *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'GP' ) THEN NVCORD=007001 NVCORDTYP=1 VCONV=1.0D0 * * TOTAL OZONE FROM TOVS INFO BLOCK *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'OZ' ) THEN NVCORD=005042 VCONV=1.0D0 * * SSMI *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'MI' ) THEN NVCORD=13208 VCONV=0.0D0 * * ACARS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'AC' ) THEN NVCORD=007004 VCONV=1.0D0 NVCORDTYP=2 * * BOGUS *-------------------------------------------- * ELSE IF ( CDTYP .EQ. 'BO' ) THEN NVCORD=007004 VCONV=1.0D0 NVCORDTYP=2 ELSE WRITE(NULOUT,*) ' DATA TYPE = ',CDTYP,' UNKNOWN' RETURN ENDIF WRITE(NULOUT,*) ' ========================================' WRITE(NULOUT,*) ' ' * ************************************************************************ * SET BKNAT FOR "BLOCS MARQUEURS" ************************************************************************ * * MULTI *------------------------ * B'0111' NBKNAMU = 7 * * UNI *------------------------ * B'0011' NBKNAUN = 3 * RETURN END