SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/diag_flaken.F90
Go to the documentation of this file.
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