SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/diag_surf_budget_isba.F90
Go to the documentation of this file.
00001 !     #########
00002        SUBROUTINE DIAG_SURF_BUDGET_ISBA (PDIR_SW, PSCA_SW, PDIR_ALB, PSCA_ALB, &
00003                                           PLW, PRN,                              &
00004                                           PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU   )  
00005 !     ###############################################################################
00006 !
00007 !!****  *DIAG_SURF_BUDGET_ISBA * - Computes diagnostics over ISBA
00008 !!
00009 !!    PURPOSE
00010 !!    -------
00011 !
00012 !!**  METHOD
00013 !!    ------
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!      
00018 !!
00019 !!    AUTHOR
00020 !!    ------
00021 !!     P. Le Moigne 
00022 !!
00023 !!    MODIFICATIONS
00024 !!    -------------
00025 !!      Original    04/2006
00026 !!      Modified    08/2008 (B. Decharme) LWU diag
00027 !!------------------------------------------------------------------
00028 !
00029 USE MODD_CSTS,           ONLY : XSTEFAN
00030 !
00031 ! 
00032 !
00033 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00034 USE PARKIND1  ,ONLY : JPRB
00035 !
00036 IMPLICIT NONE
00037 !
00038 !*      0.1    declarations of arguments
00039 !
00040 REAL, DIMENSION(:,:),INTENT(IN)  :: PDIR_SW   ! direct  solar radiation (on horizontal surf.)
00041 !                                             !                                       (W/m2)
00042 REAL, DIMENSION(:,:),INTENT(IN)  :: PSCA_SW   ! diffuse solar radiation (on horizontal surf.)
00043 !                                             !                                       (W/m2)
00044 REAL, DIMENSION(:), INTENT(IN)   :: PLW       ! longwave radiation (on horizontal surf.)
00045 REAL, DIMENSION(:,:),INTENT(IN)  :: PDIR_ALB  ! direct albedo for each spectral band  (-)
00046 REAL, DIMENSION(:,:),INTENT(IN)  :: PSCA_ALB  ! diffuse albedo for each spectral band (-)
00047 REAL, DIMENSION(:), INTENT(IN)   :: PRN       ! Surface net radiation
00048 !
00049 REAL, DIMENSION(:,:), INTENT(OUT):: PSWBD     ! incoming short wave radiation by spectral band (W/m2)
00050 REAL, DIMENSION(:,:), INTENT(OUT):: PSWBU     ! upward  short wave radiation by spectral band (W/m2)
00051 REAL, DIMENSION(:), INTENT(OUT)  :: PSWD      ! total incoming short wave radiation (W/m2)
00052 REAL, DIMENSION(:), INTENT(OUT)  :: PSWU      ! total upward short wave radiation (W/m2)
00053 REAL, DIMENSION(:), INTENT(OUT)  :: PLWD      ! Downward long wave radiation (W/m2)
00054 REAL, DIMENSION(:), INTENT(OUT)  :: PLWU      ! upward long wave radiation (W/m2)  
00055 !
00056 !
00057 !*      0.2    declarations of local variables
00058 !
00059 INTEGER                          :: ISWB      ! number of SW bands
00060 INTEGER                          :: JSWB      ! loop counter on number of SW bands
00061 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00062 !-------------------------------------------------------------------------------------
00063 !
00064 !
00065 IF (LHOOK) CALL DR_HOOK('DIAG_SURF_BUDGET_ISBA',0,ZHOOK_HANDLE)
00066 ISWB = SIZE(PDIR_SW,2)
00067 ! 
00068 !* total incoming and outgoing SW
00069 !
00070 DO JSWB=1,ISWB
00071   PSWBD(:,JSWB) = PDIR_SW(:,JSWB)                    + PSCA_SW(:,JSWB)
00072   PSWBU(:,JSWB) = PDIR_SW(:,JSWB) * PDIR_ALB(:,JSWB) + PSCA_SW(:,JSWB) * PSCA_ALB(:,JSWB) 
00073 ENDDO
00074 !
00075 PSWD(:) = 0.
00076 PSWU(:) = 0.
00077 DO JSWB=1,ISWB
00078    PSWD(:)=PSWD(:)+PSWBD(:,JSWB)
00079    PSWU(:)=PSWU(:)+PSWBU(:,JSWB)
00080 ENDDO
00081 !
00082 !*incoming outgoing LW
00083 !
00084 !Wrong old diag : LWU=EMIS*STEFAN*Ts**4 + (1.-EMIS)*LW
00085 !Due to e_budget.f90 linearization, LWU can not be calculated using actual Ts
00086 !
00087 PLWD(:)=PLW(:)
00088 PLWU(:)=PSWD(:)-PSWU(:)+PLWD(:)-PRN(:)
00089 IF (LHOOK) CALL DR_HOOK('DIAG_SURF_BUDGET_ISBA',1,ZHOOK_HANDLE)
00090 !
00091 !-------------------------------------------------------------------------------------
00092 !
00093 END SUBROUTINE DIAG_SURF_BUDGET_ISBA