SURFEX v7.3
General documentation of Surfex
|
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