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