!copyright (C) 2001 MSC-RPN COMM %%%RPNPHY%%%
subroutine diagnosurf (f,v,fsiz,vsiz,m,ni,nk,trnch,itask) 1,48
*
#include "impnone.cdk"
*
integer fsiz, vsiz, m, ni, nk, itask, trnch
real f(fsiz), v(vsiz)
*
*Author
* B. Bilodeau (Sept 1999)
*
*Revisions
* 001 B. Bilodeau (Nov 2000) - New comdeck phybus.cdk
*
*
*Object
* Time-series and zonal diagnostics extractions
* of surface-related variables
*
*Arguments
*
* - Input/Output -
* F permanent variables bus
* V volatile (output) bus
*
* - Input -
* FSIZ dimension of F
* VSIZ dimension of V
* M horizontal dimensions of fields
* NI number of elements processed in the horizontal
* (could be a subset of M in future versions)
* (not used for the moment)
* NK vertical dimension
* TRNCH row number
* ITASK task number
*
*
*Notes
*
*IMPLICITES
*
*
#include "indx_sfc.cdk"
#include "phy_macros_f.h"
#include "phybus.cdk"
#include "options.cdk"
*
*MODULES
*
***
integer ierget, it
real heurser
external serget
*
**
it = itask
*
CALL SERGET ('HEURE', HEURSER, 1, IERGET)
*
*
* inverse of Monin-Obukhov length
CALL SERXST
( F(ILMO+(indx_agrege-1)*NI),
$ 'IL' , TRNCH, NI, 0., 1., -1 )
CALL MZONXST( F(ILMO+(indx_agrege-1)*NI),
$ 'IL' , TRNCH, NI, HEURSER, 1., -1, IT)
*
* diagnostic specific humidity at screen level
CALL SERXST
(F(QDIAG) , 'DQ' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(QDIAG) , 'DQ' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* specific humidity at the surface
CALL SERXST
( F(QSURF+(indx_agrege-1)*NI),
$ 'QG' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST( F(QSURF+(indx_agrege-1)*NI),
$ 'QG' , TRNCH, NI, HEURSER, 1., -1, IT)
*
* glacier surface temperature
CALL SERXST
( F(TGLACIER), 'I9' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TGLACIER), 'I9' , TRNCH ,NI ,HEURSER, 1., -1, IT)
CALL SERXST
( F(TGLACIER+NI), '9I' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TGLACIER+NI), '9I' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* marine ice temperature (3 levels)
CALL SERXST
( F(TMICE) , 'I7' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TMICE) , 'I7' , TRNCH ,NI ,HEURSER, 1., -1, IT)
CALL SERXST
( F(TMICE+NI), '7I' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TMICE+NI), '7I' , TRNCH ,NI ,HEURSER, 1., -1, IT)
CALL SERXST
( F(TMICE+2*NI),'8I', TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TMICE+2*NI),'8I', TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* marine ice thickness
CALL SERXST
( F(ICEDP) , 'I8' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(ICEDP) , 'I8' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* snow thickness (soil, glacier and marine ice)
CALL SERXST
( F(SNODP+(indx_soil-1)*NI) , 'S1' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(SNODP+(indx_soil-1)*NI) , 'S1' , TRNCH ,NI ,HEURSER, 1., -1, IT)
CALL SERXST
( F(SNODP+(indx_glacier-1)*NI), 'S2' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(SNODP+(indx_glacier-1)*NI), 'S2' , TRNCH ,NI ,HEURSER, 1., -1, IT)
CALL SERXST
( F(SNODP+(indx_ice-1)*NI) , 'S4' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(SNODP+(indx_ice-1)*NI) , 'S4' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* surface albedo (soil, glacier, marine ice, water and average)
CALL SERXST
( F(ALVIS+(indx_soil-1)*NI),
$ 'XS' , TRNCH ,NI ,0.0 , 1., -1 )
CALL SERXST
( F(ALVIS+(indx_glacier-1)*NI),
$ 'XG' , TRNCH ,NI ,0.0 , 1., -1 )
CALL SERXST
( F(ALVIS+(indx_water-1)*NI),
$ 'XW' , TRNCH ,NI ,0.0 , 1., -1 )
CALL SERXST
( F(ALVIS+(indx_ice-1)*NI),
$ 'XI' , TRNCH ,NI ,0.0 , 1., -1 )
CALL SERXST
( F(ALVIS+(indx_agrege-1)*NI),
$ 'AL' , TRNCH ,NI ,0.0 , 1., -1 )
*
* soil temperature
CALL SERXST
( F(TSOIL) , 'I0' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TSOIL) , 'I0' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* soil temperature
CALL SERXST
( F(TSURF) , 'TS' , TRNCH ,NI ,0.0 , 1., -1 )
CALL MZONXST( F(TSURF) , 'TS' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* deep soil temperature
CALL SERXST
(F(TSOIL+NI) , 'TP' , TRNCH ,NI, 0.0 , 1., -1 )
CALL MZONXST(F(TSOIL+NI) , 'TP' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* radiative surface temperature
CALL SERXST
(F(TSRAD) , 'G3' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(TSRAD) , 'G3' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* diagnostic air temperature at screen level
CALL SERXST
(F(TDIAG) , 'TJ' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(TDIAG) , 'TJ' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* diagnostic U component of the wind at screen level
CALL SERXST
(F(UDIAG) , 'UD' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(UDIAG) , 'UD' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* diagnostic V component of the wind at screen level
CALL SERXST
(F(VDIAG) , 'VD' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(VDIAG) , 'VD' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* soil moisture content
CALL SERXST
(F(WSOIL) , 'WG' , TRNCH, NI, 0.0 , 1., -1 )
CALL MZONXST(F(WSOIL) , 'WG' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
* deep soil moisture content
CALL SERXST
(F(WSOIL+NI) , 'WR' , TRNCH ,NI, 0.0 , 1., -1 )
CALL MZONXST(F(WSOIL+NI) , 'WR' , TRNCH ,NI ,HEURSER, 1., -1, IT)
*
*
if (ischmsol.eq.3) then ! isba
*
*
* Outputs for time series
*
*
* liquid water stored on canopy
CALL SERXST
( F(WVEG) , 'C5' , TRNCH, NI, 0.0 , 1., -1 )
*
* mass of snow cover
CALL SERXST
( F(SNOMA) , 'C6' , TRNCH, NI, 0.0 , 1., -1 )
*
* snow albedo
CALL SERXST
( F(SNOAL) , 'C7' , TRNCH, NI, 0.0 , 1., -1 )
*
* snow density
CALL SERXST
( F(SNORO) , 'C8' , TRNCH, NI, 0.0 , 1., -1 )
*
* net radiation
CALL SERXST
( V(RNET_S) , 'C9' , TRNCH, NI, 0.0 , 1., -1 )
*
* latent heat flux over bare ground
CALL SERXST
( V(LEG) , 'D3' , TRNCH, NI, 0.0 , 1., -1 )
*
* latent heat flux over vegetation
CALL SERXST
( V(LEV) , 'D4' , TRNCH, NI, 0.0 , 1., -1 )
*
* latent heat flux over snow
CALL SERXST
( V(LES) , 'D5' , TRNCH, NI, 0.0 , 1., -1 )
*
* direct latent heat flux from vegetation leaves
CALL SERXST
( V(LER) , 'D6' , TRNCH, NI, 0.0 , 1., -1 )
*
* latent heat of evapotranspiration
CALL SERXST
( V(LETR) , 'D7' , TRNCH, NI, 0.0 , 1., -1 )
*
* runoff
CALL SERXST
( V(OVERFL) , 'E2' , TRNCH, NI, 0.0 , 1., -1 )
*
* drainage
CALL SERXST
( F(DRAIN) , 'E3' , TRNCH, NI, 0.0 , 1., -1 )
*
* fraction of the grid covered by snow
CALL SERXST
( V(PSN) , 'E5' , TRNCH, NI, 0.0 , 1., -1 )
*
* fraction of bare ground covered by snow
CALL SERXST
( V(PSNG) , 'E6' , TRNCH, NI, 0.0 , 1., -1 )
*
* fraction of vegetation covered by snow
CALL SERXST
( V(PSNV) , 'E7' , TRNCH, NI, 0.0 , 1., -1 )
*
* stomatal resistance
CALL SERXST
( V(RS) , 'E8' , TRNCH, NI, 0.0 , 1., -1 )
*
* specific humidity of the surface
CALL SERXST
( V(HUSURF) , 'E9' , TRNCH, NI, 0.0 , 1., -1 )
*
* Halstead coefficient (relative humidity of veg. canopy)
CALL SERXST
( V(HV) , 'G1' , TRNCH, NI, 0.0 , 1., -1 )
*
* soil volumetric ice content
CALL SERXST
( F(ISOIL) , 'G4' , TRNCH, NI, 0.0 , 1., -1 )
*
* liquid water in snow
CALL SERXST
( F(WSNOW) , 'G5' , TRNCH, NI, 0.0 , 1., -1 )
*
* liquid precip. rate
CALL SERXST
( V(RAINRATE) , 'G6' , TRNCH, NI, 0.0 , 1., -1 )
*
* solid precip. rate
CALL SERXST
( V(SNOWRATE) , 'G7' , TRNCH, NI, 0.0 , 1., -1 )
*
*
*
endif
*
return
end