SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_TEB_n(HPROGRAM, & 00003 PRN, PH, PLE, PGFLUX, PRI, PCD, PCH, PCE, PQS, & 00004 PZ0, PZ0H, PT2M, PQ2M, PHU2M, PZON10M, PMER10M, & 00005 PSWD, PSWU, PLWD, PLWU, PSWBD, PSWBU, PFMU, PFMV ) 00006 ! ############################################################################### 00007 ! 00008 !!**** *DIAG_TEB_n * - diagnostics for TEB 00009 !! 00010 !! PURPOSE 00011 !! ------- 00012 ! 00013 !!** METHOD 00014 !! ------ 00015 !! 00016 !! REFERENCE 00017 !! --------- 00018 !! 00019 !! 00020 !! AUTHOR 00021 !! ------ 00022 !! V. Masson 00023 !! 00024 !! MODIFICATIONS 00025 !! ------------- 00026 !! Original 01/2004 00027 !!------------------------------------------------------------------ 00028 ! 00029 ! 00030 USE MODD_SURF_PAR, ONLY : XUNDEF 00031 USE MODD_TEB_n, ONLY : TTIME 00032 USE MODD_DIAG_TEB_n, ONLY : N2M, LSURF_BUDGET, LCOEF, LSURF_VARS, & 00033 XRN, XH, XLE, XGFLUX, XRI, XCD, XCH, XCE, XQS, & 00034 XZ0, XZ0H, XT2M, XQ2M, XHU2M, XZON10M, XMER10M, & 00035 XSWD, XSWU, XSWBD, XSWBU, XLWD, XLWU, XFMU, XFMV 00036 ! 00037 ! 00038 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00039 USE PARKIND1 ,ONLY : JPRB 00040 ! 00041 IMPLICIT NONE 00042 ! 00043 !* 0.1 declarations of arguments 00044 ! 00045 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00046 ! 00047 REAL, DIMENSION(:), INTENT(OUT) :: PRN ! Net radiation (W/m2) 00048 REAL, DIMENSION(:), INTENT(OUT) :: PH ! Sensible heat flux (W/m2) 00049 REAL, DIMENSION(:), INTENT(OUT) :: PLE ! Latent heat flux (W/m2) 00050 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUX ! Storage flux (W/m2) 00051 REAL, DIMENSION(:), INTENT(OUT) :: PRI ! Richardson number (-) 00052 REAL, DIMENSION(:), INTENT(OUT) :: PCD ! drag coefficient (W/s2) 00053 REAL, DIMENSION(:), INTENT(OUT) :: PCH ! transf. coef heat (W/s) 00054 REAL, DIMENSION(:), INTENT(OUT) :: PCE ! transf. coef vapor (W/s/K) 00055 REAL, DIMENSION(:), INTENT(OUT) :: PZ0 ! rough. length wind (m) 00056 REAL, DIMENSION(:), INTENT(OUT) :: PQS 00057 REAL, DIMENSION(:), INTENT(OUT) :: PZ0H ! rough. length heat (m) 00058 REAL, DIMENSION(:), INTENT(OUT) :: PT2M ! temperature at 2m (K) 00059 REAL, DIMENSION(:), INTENT(OUT) :: PQ2M ! humidity at 2m (kg/kg) 00060 REAL, DIMENSION(:), INTENT(OUT) :: PHU2M ! relative humidity at 2m (-) 00061 REAL, DIMENSION(:), INTENT(OUT) :: PZON10M ! zonal wind at 10m (m/s) 00062 REAL, DIMENSION(:), INTENT(OUT) :: PMER10M ! meridian wind at 10m(m/s) 00063 REAL, DIMENSION(:), INTENT(OUT) :: PSWD ! incoming short-wave radiation (W/m2) 00064 REAL, DIMENSION(:), INTENT(OUT) :: PSWU ! upward short-wave radiation (W/m2) 00065 REAL, DIMENSION(:), INTENT(OUT) :: PLWD ! incoming long-wave radiation (W/m2) 00066 REAL, DIMENSION(:), INTENT(OUT) :: PLWU ! upward long-wave radiation (W/m2) 00067 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBD ! incoming short-wave radiation by spectral band (W/m2) 00068 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBU ! upward short-wave radiation by spectral band (W/m2) 00069 REAL, DIMENSION(:), INTENT(OUT) :: PFMU ! zonal momentum flux (m2/s2) 00070 REAL, DIMENSION(:), INTENT(OUT) :: PFMV ! meridian momentum flux (m2/s2) 00071 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00072 ! 00073 ! 00074 !* 0.2 declarations of local variables 00075 ! 00076 !------------------------------------------------------------------------------------- 00077 ! 00078 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_N',0,ZHOOK_HANDLE) 00079 IF (LSURF_BUDGET) THEN 00080 PRN = XRN 00081 PH = XH 00082 PLE = XLE 00083 PGFLUX = XGFLUX 00084 PSWD = XSWD 00085 PSWU = XSWU 00086 PLWD = XLWD 00087 PLWU = XLWU 00088 PSWBD = XSWBD 00089 PSWBU = XSWBU 00090 PFMU = XFMU 00091 PFMV = XFMV 00092 END IF 00093 ! 00094 IF (N2M>=1) THEN 00095 PRI = XRI 00096 PT2M = XT2M 00097 PQ2M = XQ2M 00098 PHU2M = XHU2M 00099 PZON10M = XZON10M 00100 PMER10M = XMER10M 00101 END IF 00102 ! 00103 IF (LCOEF) THEN 00104 PCD = XCD 00105 PCH = XCH 00106 PCE = XCE 00107 PZ0 = XZ0 00108 PZ0H = XZ0H 00109 END IF 00110 ! 00111 IF (LSURF_VARS) THEN 00112 PQS = XQS 00113 ENDIF 00114 ! 00115 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_N',1,ZHOOK_HANDLE) 00116 ! 00117 !------------------------------------------------------------------------------------- 00118 ! 00119 END SUBROUTINE DIAG_TEB_n