SUBROUTINE SUPOST 2,1
#if defined (DOC)
*
***s/r SUPOST - initialize the post-processing of the model state
* .
*
*Author : P. Gauthier *ARMA/AES Sept. 20, 1993
*Revision: C. Charette *ARMA/AES Jan 96
* . -Initialize RPN standard file parameters
* C. Charette *ARMA/AES Jan 96
* . -Documented the compulsary and diagnostic variables
* available for each mode of execution of the 3dvar
* Y. Yang Apri. 2004
* Added parameters for species. To be read in from the namelist.
* .
*
*Arguments
* - NONE -
#endif
C
IMPLICIT NONE
#include "pardim.cdk"
#include "comdim.cdk"
#include "comlun.cdk"
#include "compost.cdk"
C
INTEGER JLEV, IERR,jvar,ihu,itt,ivt,imin,igz,ip0
WRITE(NULOUT,FMT=9000)
9000 FORMAT(//,1X,6("***********")
S ,/,6X,'SUPOST: initialization of postprocessing'
S ,1X,6("***********"))
C
C* 1. Set default values
C
100 CONTINUE
DO JLEV = 1, NFLEV
NPPLEV(JLEV) = 0
END DO
C
*----------------------------------------------------------------
* CVCORD = 'PRESS'
* COMPULSARY VARIALBES:'UU','VV','GZ','ES'
* DIAGNOSTIC VARIABLES:'PP','CC','QR','QQ','DD','ZB','ZU'
*----------------------------------------------------------------
* CVCORD = 'ETAGE' .AND. CHUM = 'LQ'
* COMPULSARY VARIALBES:'UU','VV','TT','HU','P0','LQ'
* DIAGNOSTIC VARIABLES:'GZ','ES','VT','QR','DD','QQ','PP','CC',
* 'TB','TU','ZB','ZU' 'PB','PU'
*
*-----------------------------------------------------------------
* CVCORD = 'ETAGE' .AND. CHUM = 'ES'
* COMPULSARY VARIALBES:'UU','VV','TT','HU','P0','ES'
* DIAGNOSTIC VARIABLES:'GZ','VT','QR','DD','QQ','PP','CC',
* 'TB','TU','ZB','ZU' 'PB','PU'
*
*-----------------------------------------------------------------
* CVCORD = 'PRESS' DEFAULT VALUES
do jlev = 1,JPNFLEV
NPPLEV(jlev) = 0
enddo
NPPCVAR=13
CPPCVAR(1) = 'UU'
CPPCVAR(2) = 'VV'
CPPCVAR(3) = 'TT'
CPPCVAR(4) = 'LQ'
CPPCVAR(5) = 'P0'
CPPCVAR(6) = 'TG'
CPPCVAR(7) = 'HU'
CPPCVAR(8) = 'GZ'
CPPCVAR(9) = 'ES'
CPPCVAR(10)= 'QR'
CPPCVAR(11)= 'DD'
CPPCVAR(12)= 'VT'
CPPCVAR(13)= 'QQ'
CPPCVAR(14)= 'PP'
CPPCVAR(15)= 'CC'
CPPCVAR(16)= 'TB'
CPPCVAR(17)= 'TU'
CPPCVAR(18)= 'ZB'
CPPCVAR(19)= 'ZU'
CPPCVAR(20)= 'PB'
NPPLEV(1) = -1
C
lanlhu2es = .false.
lswphes = .false.
rlimit_es = 30.0
C
C Those related to species
C
NPPCHEM = 0
CPPCHEM = ''
C
C* 2. Read the parameters from NAMPOST
C
200 CONTINUE
C
CALL READNML
('NAMPOST',IERR)
C
CVARPOST = 'A'
CGRTYP = 'G'
NIP2 = 0
NDEET = 0
NPAS = 0
NIG1 = 0
NIG2 = 0
NIG3 = 0
NIG4 = 0
NIDATYP = 1
NPAK = -30
NSTAMP = 0101010101
C
C* 3. Define the levels at which postprocessing is to occur
C
300 CONTINUE
C
c reordering cppcvar for dependent variables in varout.ftn
c
ip0 = 0
ihu = 0
itt = 0
ivt = 0
lttout = .false.
lhuout = .false.
lolqout= .false.
lgzout = .false.
c
do jvar = 1,nppcvar
if(cppcvar(jvar).eq.'P0') then
ip0 = jvar
endif
if(cppcvar(jvar).eq.'TT') then
itt = jvar
lttout = .true.
endif
if(cppcvar(jvar).eq.'GZ') then
igz = jvar
lgzout = .true.
endif
if(cppcvar(jvar).eq.'HU') then
ihu = jvar
lhuout = .true.
endif
if(cppcvar(jvar).eq.'VT') then
ivt = jvar
lvtout = .true.
endif
if(cppcvar(jvar).eq.'LQ') then
lolqout = .true.
endif
enddo
c
if((lgzout.or.lvtout).and.ihu.eq.0) then
c Make sure that HU is part of the list
ihu = nppcvar+1
cppcvar(ihu) = 'HU'
nppcvar = ihu
endif
c
if(ihu.ne.0) then
c Make sure that TT is part of the list
imin = min(itt,ihu)
if (imin.eq.0) then
c TT is not requested: put it in the list before HU
cppcvar(ihu) = 'TT'
cppcvar(nppcvar+1) = 'HU'
nppcvar = nppcvar + 1
else
C TT is requested: make sure that TT is before HU in the list
cppcvar(max(itt,ihu)) = 'HU'
cppcvar(imin) = 'TT'
endif
endif
c
if(ip0 .gt. 1) then
do jvar = ip0, 2,-1
cppcvar(jvar) = cppcvar(jvar -1)
enddo
cppcvar(1) = 'P0'
endif
c
IF(NPPLEV(1).EQ.-1) THEN
DO JLEV = 1, NFLEV
NPPLEV(JLEV) = 1
END DO
END IF
C
C
C* 4. Print the values
C
400 CONTINUE
C
DO JLEV = 1, NPPCVAR
WRITE(NULOUT,FMT='(4X,"VAR NO.",I3,":",2X,"CPPCVAR= ",A5)')
S JLEV,CPPCVAR(JLEV)
ENDDO
WRITE(NULOUT,FMT='(4X,"LANLHU2ES=",L5,":",2X,"LSWPHES= ",L5
S ,2X,"RLIMIT_ES= ",G12.6)')
S LANLHU2ES,LSWPHES,RLIMIT_ES
RETURN
END