SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_INLAND_WATER_n(HPROGRAM, & 00003 PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS, & 00004 PZ0,PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, & 00005 PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, & 00006 PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, & 00007 PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, & 00008 PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX ) 00009 ! ############################################################################### 00010 ! 00011 !!**** *DIAG_INLAND_WATER_n * - Chooses the surface schemes for lakes diagnostics 00012 !! 00013 !! PURPOSE 00014 !! ------- 00015 ! 00016 !!** METHOD 00017 !! ------ 00018 !! 00019 !! REFERENCE 00020 !! --------- 00021 !! 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! V. Masson 00026 !! 00027 !! MODIFICATIONS 00028 !! ------------- 00029 !! Original 01/2004 00030 !! Modified 08/2009 : cumulated diag & t2m min/max 00031 !!------------------------------------------------------------------ 00032 ! 00033 00034 ! 00035 USE MODD_SURF_PAR, ONLY : XUNDEF 00036 USE MODD_SURF_ATM_n, ONLY : CWATER 00037 00038 USE MODI_DIAG_WATFLUX_n 00039 USE MODI_DIAG_FLAKE_n 00040 USE MODI_DIAG_IDEAL_n 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 latent 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 ! outgoing short wave radiation (W/m2) 00072 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBD ! incoming short wave radiation by spectral band(W/m2) 00073 REAL, DIMENSION(:,:), INTENT(OUT) :: PSWBU ! outgoing short wave radiation by spectral band(W/m2) 00074 REAL, DIMENSION(:), INTENT(OUT) :: PLWD ! incoming long wave radiation (W/m2) 00075 REAL, DIMENSION(:), INTENT(OUT) :: PLWU ! outgoing long wave radiation (W/m2) 00076 REAL, DIMENSION(:), INTENT(OUT) :: PFMU ! zonal friction 00077 REAL, DIMENSION(:), INTENT(OUT) :: PFMV ! meridian friction 00078 REAL, DIMENSION(:), INTENT(OUT) :: PRNC ! Net radiation (J/m2) 00079 REAL, DIMENSION(:), INTENT(OUT) :: PHC ! Sensible heat flux (J/m2) 00080 REAL, DIMENSION(:), INTENT(OUT) :: PLEC ! Total latent heat flux (J/m2) 00081 REAL, DIMENSION(:), INTENT(OUT) :: PLEIC ! Sublimation latent heat flux (J/m2) 00082 REAL, DIMENSION(:), INTENT(OUT) :: PGFLUXC ! Storage flux (J/m2) 00083 REAL, DIMENSION(:), INTENT(OUT) :: PSWDC ! incoming short wave radiation (J/m2) 00084 REAL, DIMENSION(:), INTENT(OUT) :: PSWUC ! outgoing short wave radiation (J/m2) 00085 REAL, DIMENSION(:), INTENT(OUT) :: PLWDC ! incoming long wave radiation (J/m2) 00086 REAL, DIMENSION(:), INTENT(OUT) :: PLWUC ! outgoing long wave radiation (J/m2) 00087 REAL, DIMENSION(:), INTENT(OUT) :: PFMUC ! zonal friction 00088 REAL, DIMENSION(:), INTENT(OUT) :: PFMVC ! meridian friction 00089 REAL, DIMENSION(:), INTENT(OUT) :: PT2M_MIN ! Minimum temperature at 2m (K) 00090 REAL, DIMENSION(:), INTENT(OUT) :: PT2M_MAX ! Maximum temperature at 2m (K) 00091 REAL, DIMENSION(:), INTENT(OUT) :: PHU2M_MIN! Minimum relative humidity at 2m (-) 00092 REAL, DIMENSION(:), INTENT(OUT) :: PHU2M_MAX! Maximum relative humidity at 2m (-) 00093 REAL, DIMENSION(:), INTENT(OUT) :: PWIND10M ! wind at 10m (m/s) 00094 REAL, DIMENSION(:), INTENT(OUT) :: PWIND10M_MAX! Maximum wind at 10m (m/s) 00095 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00096 ! 00097 ! 00098 !* 0.2 declarations of local variables 00099 ! 00100 !------------------------------------------------------------------------------------- 00101 ! 00102 IF (LHOOK) CALL DR_HOOK('DIAG_INLAND_WATER_N',0,ZHOOK_HANDLE) 00103 IF (CWATER=='WATFLX') THEN 00104 CALL DIAG_WATFLUX_n(HPROGRAM, & 00105 PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, PQS,& 00106 PZ0, PZ0H, PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M,& 00107 PSWD, PSWU, PLWD, PLWU, PSWBD, PSWBU, PFMU, PFMV, & 00108 PRNC, PHC, PLEC, PGFLUXC, PSWDC, PSWUC, PLWDC, & 00109 PLWUC, PFMUC, PFMVC, PT2M_MIN, PT2M_MAX, PLEIC, & 00110 PHU2M_MIN, PHU2M_MAX, PWIND10M, PWIND10M_MAX ) 00111 ELSE IF (CWATER=='FLAKE ') THEN 00112 CALL DIAG_FLAKE_n(HPROGRAM, & 00113 PRN, PH, PLE, PLEI, PGFLUX, PRI, PCD, PCH, PCE, & 00114 PQS, PZ0, PZ0H, & 00115 PT2M, PTS, PQ2M, PHU2M, PZON10M, PMER10M, & 00116 PSWD, PSWU, PLWD, PLWU, PSWBD, PSWBU, PFMU, PFMV ) 00117 ! 00118 ! new diag not yet inplemeted in flake 00119 ! 00120 PRNC = XUNDEF 00121 PHC = XUNDEF 00122 PLEC = XUNDEF 00123 PLEIC = XUNDEF 00124 PGFLUXC = XUNDEF 00125 PSWDC = XUNDEF 00126 PSWUC = XUNDEF 00127 PLWDC = XUNDEF 00128 PLWUC = XUNDEF 00129 PFMUC = XUNDEF 00130 PFMVC = XUNDEF 00131 PT2M_MIN = XUNDEF 00132 PT2M_MAX = XUNDEF 00133 PHU2M_MIN= XUNDEF 00134 PHU2M_MAX= XUNDEF 00135 PWIND10M = XUNDEF 00136 PWIND10M_MAX = XUNDEF 00137 ! 00138 ELSE IF (CWATER=='FLUX ') THEN 00139 CALL DIAG_IDEAL_n(HPROGRAM, PQS, PZ0, PZ0H, PH, PLE, PRN, PGFLUX) 00140 PLEI = XUNDEF 00141 PRI = XUNDEF 00142 PCD = XUNDEF 00143 PCH = XUNDEF 00144 PCE = XUNDEF 00145 PTS = XUNDEF 00146 PT2M = XUNDEF 00147 PQ2M = XUNDEF 00148 PHU2M = XUNDEF 00149 PZON10M = XUNDEF 00150 PMER10M = XUNDEF 00151 PSWD = XUNDEF 00152 PSWU = XUNDEF 00153 PSWBD = XUNDEF 00154 PSWBU = XUNDEF 00155 PLWD = XUNDEF 00156 PLWU = XUNDEF 00157 PFMU = XUNDEF 00158 PFMV = XUNDEF 00159 PRNC = XUNDEF 00160 PHC = XUNDEF 00161 PLEC = XUNDEF 00162 PLEIC = XUNDEF 00163 PGFLUXC = XUNDEF 00164 PSWDC = XUNDEF 00165 PSWUC = XUNDEF 00166 PLWDC = XUNDEF 00167 PLWUC = XUNDEF 00168 PFMUC = XUNDEF 00169 PFMVC = XUNDEF 00170 PT2M_MIN = XUNDEF 00171 PT2M_MAX = XUNDEF 00172 PHU2M_MIN= XUNDEF 00173 PHU2M_MAX= XUNDEF 00174 PWIND10M = XUNDEF 00175 PWIND10M_MAX = XUNDEF 00176 ELSE IF (CWATER=='NONE ') THEN 00177 PRN = XUNDEF 00178 PH = XUNDEF 00179 PLE = XUNDEF 00180 PLEI = XUNDEF 00181 PGFLUX = XUNDEF 00182 PRI = XUNDEF 00183 PCD = XUNDEF 00184 PCH = XUNDEF 00185 PCE = XUNDEF 00186 PQS = XUNDEF 00187 PZ0 = XUNDEF 00188 PZ0H = XUNDEF 00189 PTS = XUNDEF 00190 PT2M = XUNDEF 00191 PQ2M = XUNDEF 00192 PHU2M = XUNDEF 00193 PZON10M = XUNDEF 00194 PMER10M = XUNDEF 00195 PSWD = XUNDEF 00196 PSWU = XUNDEF 00197 PSWBD = XUNDEF 00198 PSWBU = XUNDEF 00199 PLWD = XUNDEF 00200 PLWU = XUNDEF 00201 PFMU = XUNDEF 00202 PFMV = XUNDEF 00203 PRNC = XUNDEF 00204 PHC = XUNDEF 00205 PLEC = XUNDEF 00206 PLEIC = XUNDEF 00207 PGFLUXC = XUNDEF 00208 PSWDC = XUNDEF 00209 PSWUC = XUNDEF 00210 PLWDC = XUNDEF 00211 PLWUC = XUNDEF 00212 PFMUC = XUNDEF 00213 PFMVC = XUNDEF 00214 PT2M_MIN = XUNDEF 00215 PT2M_MAX = XUNDEF 00216 PHU2M_MIN= XUNDEF 00217 PHU2M_MAX= XUNDEF 00218 PWIND10M = XUNDEF 00219 PWIND10M_MAX = XUNDEF 00220 END IF 00221 IF (LHOOK) CALL DR_HOOK('DIAG_INLAND_WATER_N',1,ZHOOK_HANDLE) 00222 ! 00223 !------------------------------------------------------------------------------------- 00224 ! 00225 END SUBROUTINE DIAG_INLAND_WATER_n