SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/average2_cti.F90
Go to the documentation of this file.
00001 !     #######################
00002       SUBROUTINE AVERAGE2_CTI
00003 !     #######################
00004 !
00005 !!**** *AVERAGE2_CTI* computes the topo index stats
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 !!    B. Decharme         Meteo-France
00026 !!
00027 !!    MODIFICATION
00028 !!    ------------
00029 !!
00030 !!    Original    06/2009
00031 !!
00032 !----------------------------------------------------------------------------
00033 !
00034 !*    0.     DECLARATION
00035 !            -----------
00036 !
00037 USE MODD_PGDWORK,       ONLY : NSIZE, XSUMVAL, XSUMVAL2, XSUMVAL3, &
00038                                  XMEAN_WORK, XSTD_WORK, XSKEW_WORK, &
00039                                  XMIN_WORK, XMAX_WORK 
00040 !
00041 !
00042 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00043 USE PARKIND1  ,ONLY : JPRB
00044 !
00045 IMPLICIT NONE
00046 !
00047 !*    0.1    Declaration of arguments
00048 !            ------------------------
00049 !
00050 !*    0.2    Declaration of other local variables
00051 !            ------------------------------------
00052 !
00053 REAL, DIMENSION(SIZE(NSIZE)) :: ZSIZE
00054 !
00055 integer :: I
00056 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00057 !----------------------------------------------------------------------------
00058 !
00059 IF (LHOOK) CALL DR_HOOK('AVERAGE2_CTI',0,ZHOOK_HANDLE)
00060 ZSIZE(:)=REAL(NSIZE(:))
00061 !
00062 WHERE (NSIZE(:)>=36)
00063 !
00064 !----------------------------------------------------------------------------
00065 !
00066 !*    1.     Mean CTI
00067 !            --------------
00068 !
00069   XMEAN_WORK(:)=XSUMVAL(:)/ZSIZE(:)
00070 !
00071 !-------------------------------------------------------------------------------
00072 !
00073 !*    2.     Standard deviation
00074 !            ------------------
00075 !
00076   WHERE (XMAX_WORK(:)-XMIN_WORK(:)>=1.0) 
00077     XSTD_WORK(:)=SQRT( MAX(0.,XSUMVAL2(:)/NSIZE(:) - XMEAN_WORK(:)*XMEAN_WORK(:)) )
00078   ELSEWHERE
00079     XSTD_WORK(:)=0.0
00080   END WHERE
00081 !
00082 !-------------------------------------------------------------------------------
00083 !
00084 !*    3.     Skewness
00085 !            --------
00086 !
00087   WHERE(XSTD_WORK(:)>0.0)
00088 !          
00089         XSKEW_WORK(:)=XSUMVAL3(:)-ZSIZE(:)*XMEAN_WORK(:)*XMEAN_WORK(:)*XMEAN_WORK(:) &
00090                        -3.0*ZSIZE(:)*XMEAN_WORK(:)*XSTD_WORK(:)*XSTD_WORK(:)  
00091 !
00092         XSKEW_WORK(:)=XSKEW_WORK(:)/(ZSIZE(:)*XSTD_WORK(:)*XSTD_WORK(:)*XSTD_WORK(:))
00093 !
00094   END WHERE
00095 !
00096 !----------------------------------------------------------------------------
00097 !
00098 END WHERE
00099 IF (LHOOK) CALL DR_HOOK('AVERAGE2_CTI',1,ZHOOK_HANDLE)
00100 !
00101 !-------------------------------------------------------------------------------
00102 !
00103 END SUBROUTINE AVERAGE2_CTI