SURFEX v7.3
General documentation of Surfex
|
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