SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_var_watern.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE GET_VAR_WATER_n(HPROGRAM,KI,HWATER,PQS,PZ0,PZ0H)
00003 !     ###########################################################
00004 !
00005 !!****  *GET_VAR_WATER_n* - routine to get variables defined only over water
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      P. Le Moigne *Meteo France*     
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    02/2006
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.    DECLARATIONS
00034 !              ------------
00035 !
00036 USE MODI_GET_LUOUT
00037 USE MODD_SURF_PAR,       ONLY   : XUNDEF
00038 !
00039 !
00040 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00041 USE PARKIND1  ,ONLY : JPRB
00042 !
00043 IMPLICIT NONE
00044 !
00045 !*       0.1   Declarations of arguments
00046 !              -------------------------
00047 !
00048  CHARACTER(LEN=6),     INTENT(IN)     :: HPROGRAM
00049  CHARACTER(LEN=6),     INTENT(IN)     :: HWATER
00050 INTEGER,              INTENT(IN)     :: KI      ! Number of points
00051 REAL, DIMENSION(KI),  INTENT(OUT)    :: PQS     ! surface humidity
00052 REAL, DIMENSION(KI),  INTENT(OUT)    :: PZ0     ! surface roughness length
00053 REAL, DIMENSION(KI),  INTENT(OUT)    :: PZ0H    ! surface roughness length for heat
00054 !
00055 !
00056 !*       0.2   Declarations of local variables
00057 !              -------------------------------
00058 !
00059 INTEGER :: ILUOUT
00060 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00061 !
00062 IF (LHOOK) CALL DR_HOOK('GET_VAR_WATER_N',0,ZHOOK_HANDLE)
00063 IF (HWATER=='FLAKE') THEN
00064    CALL GET_VAR_FLAKE_n
00065 ELSE
00066    CALL GET_VAR_WATFLX_n
00067 END IF
00068 !
00069 IF (LHOOK) CALL DR_HOOK('GET_VAR_WATER_N',1,ZHOOK_HANDLE)
00070 CONTAINS
00071 !
00072 !------------------------------------------------------------------------------
00073 !------------------------------------------------------------------------------
00074 !
00075 SUBROUTINE GET_VAR_WATFLX_n
00076 !
00077 USE MODD_DIAG_WATFLUX_n, ONLY   : XZ0, XZ0H, XQS, LSURF_VARS, LCOEF
00078 !
00079 !-------------------------------------------------------------------------------
00080 
00081 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00082 
00083 IF (LHOOK) CALL DR_HOOK('GET_VAR_WATFLX_N',0,ZHOOK_HANDLE)
00084  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00085 !-------------------------------------------------------------------------------
00086 !
00087 IF (LSURF_VARS) THEN 
00088         PQS      = XQS      
00089 ELSE 
00090         PQS      = XUNDEF      
00091 ENDIF           
00092 IF (LCOEF) THEN 
00093         PZ0      = XZ0
00094         PZ0H     = XZ0H
00095 ELSE 
00096         PZ0      = XUNDEF
00097         PZ0H     = XUNDEF
00098 ENDIF           
00099 IF (LHOOK) CALL DR_HOOK('GET_VAR_WATFLX_N',1,ZHOOK_HANDLE)
00100 !
00101 END SUBROUTINE GET_VAR_WATFLX_n
00102 !
00103 !-------------------------------------------------------------------------------
00104 !
00105 SUBROUTINE GET_VAR_FLAKE_n
00106 !
00107 USE MODD_DIAG_FLAKE_n, ONLY   : XZ0, XZ0H, XQS, LSURF_VARS, LCOEF
00108 !
00109 !-------------------------------------------------------------------------------
00110 
00111 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00112 
00113 IF (LHOOK) CALL DR_HOOK('GET_VAR_FLAKE_N',0,ZHOOK_HANDLE)
00114  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00115 !-------------------------------------------------------------------------------
00116 !
00117 IF (LSURF_VARS) THEN 
00118         PQS      = XQS      
00119 ELSE 
00120         PQS      = XUNDEF      
00121 ENDIF           
00122 IF (LCOEF) THEN 
00123         PZ0      = XZ0
00124         PZ0H     = XZ0H
00125 ELSE 
00126         PZ0      = XUNDEF
00127         PZ0H     = XUNDEF
00128 ENDIF           
00129 IF (LHOOK) CALL DR_HOOK('GET_VAR_FLAKE_N',1,ZHOOK_HANDLE)
00130 !
00131 END SUBROUTINE GET_VAR_FLAKE_n
00132 !
00133 !==============================================================================
00134 !
00135 END SUBROUTINE GET_VAR_WATER_n