SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE GET_FLUX_n(HPROGRAM,KI,PRN,PH,PLE,PLEI,PGFLUX,PT2M,PQ2M, & 00003 PHU2M,PZON10M,PMER10M,PSURFLWNET,PSURFSWNET ) 00004 ! ######################################## 00005 ! 00006 !!**** *GET_FLUX_n* - routine to get some surface fields 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! 00018 !! IMPLICIT ARGUMENTS 00019 !! ------------------ 00020 !! 00021 !! REFERENCE 00022 !! --------- 00023 !! 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! V. Masson *Meteo France* 00028 !! 00029 !! MODIFICATIONS 00030 !! ------------- 00031 !! Original 01/2004 00032 !------------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATIONS 00035 ! ------------ 00036 ! 00037 USE MODI_GET_LUOUT 00038 USE MODD_SURF_PAR, ONLY : XUNDEF 00039 ! 00040 USE MODD_DIAG_SURF_ATM_n, ONLY : XAVG_RN, XAVG_H, XAVG_LE, XAVG_GFLUX, & 00041 XAVG_T2M, XAVG_Q2M, XAVG_HU2M, & 00042 XAVG_ZON10M, XAVG_MER10M, & 00043 LSURF_BUDGET, N2M, XAVG_LEI, & 00044 XAVG_LWD, XAVG_LWU, XAVG_SWD, XAVG_SWU 00045 ! 00046 ! 00047 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00048 USE PARKIND1 ,ONLY : JPRB 00049 ! 00050 IMPLICIT NONE 00051 ! 00052 !* 0.1 Declarations of arguments 00053 ! ------------------------- 00054 ! 00055 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM 00056 INTEGER, INTENT(IN) :: KI ! Number of points 00057 REAL, DIMENSION(KI), INTENT(OUT) :: PRN ! Net radiation at surface (W/m2) 00058 REAL, DIMENSION(KI), INTENT(OUT) :: PH ! Sensible heat flux (W/m2) 00059 REAL, DIMENSION(KI), INTENT(OUT) :: PLE ! Total Latent heat flux (W/m2) 00060 REAL, DIMENSION(KI), INTENT(OUT) :: PLEI ! Solid Latent heat flux (W/m2) 00061 REAL, DIMENSION(KI), INTENT(OUT) :: PGFLUX ! Net soil-vegetation flux (W/m2) 00062 REAL, DIMENSION(KI), INTENT(OUT) :: PT2M ! Air temperature at 2 meters (K) 00063 REAL, DIMENSION(KI), INTENT(OUT) :: PQ2M ! Air humidity at 2 meters (kg/kg) 00064 REAL, DIMENSION(KI), INTENT(OUT) :: PHU2M ! Air relative humidity at 2 meters (-) 00065 REAL, DIMENSION(KI), INTENT(OUT) :: PZON10M ! zonal Wind at 10 meters (m/s) 00066 REAL, DIMENSION(KI), INTENT(OUT) :: PMER10M ! meridian Wind at 10 meters (m/s) 00067 ! 00068 REAL, DIMENSION(KI), INTENT(OUT) :: PSURFLWNET ! LW net at the surface 00069 REAL, DIMENSION(KI), INTENT(OUT) :: PSURFSWNET ! SW net at the surface 00070 ! 00071 ! 00072 !* 0.2 Declarations of local variables 00073 ! ------------------------------- 00074 ! 00075 INTEGER :: ILUOUT 00076 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00077 ! 00078 !------------------------------------------------------------------------------- 00079 IF (LHOOK) CALL DR_HOOK('GET_FLUX_N',0,ZHOOK_HANDLE) 00080 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00081 !------------------------------------------------------------------------------- 00082 ! 00083 IF (LSURF_BUDGET) THEN 00084 PRN = XAVG_RN 00085 PH = XAVG_H 00086 PLE = XAVG_LE 00087 PLEI = XAVG_LEI 00088 PGFLUX = XAVG_GFLUX 00089 PSURFLWNET=XAVG_LWD-XAVG_LWU 00090 PSURFSWNET=XAVG_SWD-XAVG_SWU 00091 ELSE 00092 PRN = XUNDEF 00093 PH = XUNDEF 00094 PLE = XUNDEF 00095 PLEI = XUNDEF 00096 PGFLUX = XUNDEF 00097 PSURFLWNET=XUNDEF 00098 PSURFSWNET=XUNDEF 00099 ENDIF 00100 ! 00101 IF (N2M>0) THEN 00102 PT2M = XAVG_T2M 00103 PQ2M = XAVG_Q2M 00104 PHU2M = XAVG_HU2M 00105 PZON10M = XAVG_ZON10M 00106 PMER10M = XAVG_MER10M 00107 ELSE 00108 PT2M = XUNDEF 00109 PQ2M = XUNDEF 00110 PHU2M = XUNDEF 00111 PZON10M = XUNDEF 00112 PMER10M = XUNDEF 00113 ENDIF 00114 IF (LHOOK) CALL DR_HOOK('GET_FLUX_N',1,ZHOOK_HANDLE) 00115 !============================================================================== 00116 ! 00117 END SUBROUTINE GET_FLUX_n