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