SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/average2_orography.F90
Go to the documentation of this file.
00001 !     #########################
00002       SUBROUTINE AVERAGE2_OROGRAPHY
00003 !     #########################
00004 !
00005 !!**** *AVERAGE2_OROGRAPHY* computes the cover fractions
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!    METHOD
00011 !!    ------
00012 !!   
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!    IMPLICIT ARGUMENTS
00017 !!    ------------------
00018 !!
00019 !!    REFERENCE
00020 !!    ---------
00021 !!
00022 !!    AUTHOR
00023 !!    ------
00024 !!
00025 !!    V. Masson         Meteo-France
00026 !!
00027 !!    MODIFICATION
00028 !!    ------------
00029 !!
00030 !!    Original    10/12/97
00031 !!
00032 !----------------------------------------------------------------------------
00033 !
00034 !*    0.     DECLARATION
00035 !            -----------
00036 !
00037 USE MODD_PGDWORK,       ONLY : NSIZE, XSUMVAL, XSUMVAL2, LSSQO, XSSQO, NSSO
00038 USE MODD_SURF_ATM_SSO_n, ONLY : XAVG_ZS, XSSO_STDEV, XSIL_ZS
00039 !
00040 !
00041 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00042 USE PARKIND1  ,ONLY : JPRB
00043 !
00044 IMPLICIT NONE
00045 !
00046 !*    0.1    Declaration of arguments
00047 !            ------------------------
00048 !
00049 !
00050 !*    0.2    Declaration of other local variables
00051 !            ------------------------------------
00052 !
00053 INTEGER                  :: JL
00054 REAL,    DIMENSION(NSSO) :: ZMAXX
00055 REAL,    DIMENSION(NSSO) :: ZMAXY
00056 LOGICAL, DIMENSION(NSSO) :: GSEGX
00057 LOGICAL, DIMENSION(NSSO) :: GSEGY
00058 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00059 !
00060 !----------------------------------------------------------------------------
00061 !
00062 !*    1.     Mean orography
00063 !            --------------
00064 !
00065 IF (LHOOK) CALL DR_HOOK('AVERAGE2_OROGRAPHY',0,ZHOOK_HANDLE)
00066 WHERE (NSIZE(:)/=0)
00067   XAVG_ZS(:)=XSUMVAL(:)/NSIZE(:)
00068 END WHERE
00069 !
00070 !-------------------------------------------------------------------------------
00071 !
00072 !*    2.     Standard deviation
00073 !            ------------------
00074 !
00075 WHERE (NSIZE(:)/=0)
00076   XSSO_STDEV(:)=SQRT( MAX(0.,XSUMVAL2(:)/NSIZE(:) - XAVG_ZS(:)*XAVG_ZS(:)) )
00077 END WHERE
00078 !
00079 !-------------------------------------------------------------------------------
00080 !
00081 !*    3.     Silhouette orography
00082 !            --------------------
00083 !
00084 DO JL=1,SIZE(XSIL_ZS)
00085   IF (NSIZE(JL)==0) CYCLE
00086   ZMAXX(:) = MAXVAL(XSSQO(:,:,JL),DIM=2)
00087   GSEGX(:) = ANY   (LSSQO(:,:,JL),DIM=2)
00088   ZMAXY(:) = MAXVAL(XSSQO(:,:,JL),DIM=1)
00089   GSEGY(:) = ANY   (LSSQO(:,:,JL),DIM=1)
00090   XSIL_ZS(JL) =0.5*(  SUM(ZMAXX(:),MASK=GSEGX(:)) / COUNT(GSEGX(:)) &
00091                       + SUM(ZMAXY(:),MASK=GSEGY(:)) / COUNT(GSEGY(:)) )  
00092   
00093 END DO
00094 IF (LHOOK) CALL DR_HOOK('AVERAGE2_OROGRAPHY',1,ZHOOK_HANDLE)
00095 !
00096 !-------------------------------------------------------------------------------
00097 !
00098 END SUBROUTINE AVERAGE2_OROGRAPHY