SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/sw_daycycle.F90
Go to the documentation of this file.
00001 !     #############################################################
00002 SUBROUTINE SW_DAYCYCLE(KI, PZENITH, PTOT_SW)
00003 !     #############################################################
00004 !
00005 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00006 USE PARKIND1  ,ONLY : JPRB
00007 !
00008 !http://www.apesimulator.it/help/models/solarradiation/Calculating_extra-terrestrial_solar_radiation.html
00009 !
00010 INTEGER,             INTENT(IN)  :: KI        ! number of points
00011 REAL, DIMENSION(KI), INTENT(IN)  :: PZENITH     ! Zenith angle (rad)
00012 REAL, DIMENSION(KI), INTENT(OUT) :: PTOT_SW     ! Extraterrestrial solar radiation (W m-2)
00013 !
00014 REAL      :: ZC_SOL  ! Solar constant [W/m2]
00015 REAL      :: ZD_CORR ! Correction to acutal solar distance at any specific day of the year
00016 INTEGER   :: ZJULIAN ! Julian day of the year
00017 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00018 !
00019 IF (LHOOK) CALL DR_HOOK('SW_DAYCYCLE',0,ZHOOK_HANDLE)
00020 !
00021 ZJULIAN = 197
00022 ZC_SOL  = 4.921*1E6/3600                ! W m-2
00023 ZD_CORR = 1 + 0.0334 * COS(0.01721 * ZJULIAN - 0.0552)
00024 !
00025 DO JJ=1,KI
00026   PTOT_SW(JJ) = ZC_SOL * ZD_CORR * COS(PZENITH(JJ))
00027 END DO
00028 !
00029 IF (LHOOK) CALL DR_HOOK('SW_DAYCYCLE',1,ZHOOK_HANDLE)
00030 !
00031 END SUBROUTINE SW_DAYCYCLE
00032