SURFEX v7.3
General documentation of Surfex
|
00001 ! ############################################################# 00002 SUBROUTINE INIT_NATURE_n (HPROGRAM,HINIT,OLAND_USE, & 00003 KI,KSV,KSW, & 00004 HSV,PCO2,PRHOA, & 00005 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00006 PEMIS,PTSRAD, & 00007 KYEAR, KMONTH,KDAY, PTIME, & 00008 HATMFILE,HATMFILETYPE, & 00009 HTEST ) 00010 ! ############################################################# 00011 ! 00012 !!**** *INIT_NATURE_n* - routine to choose initialization of vegetation scheme 00013 !! 00014 !! PURPOSE 00015 !! ------- 00016 !! 00017 !!** METHOD 00018 !! ------ 00019 !! 00020 !! EXTERNAL 00021 !! -------- 00022 !! 00023 !! 00024 !! IMPLICIT ARGUMENTS 00025 !! ------------------ 00026 !! 00027 !! REFERENCE 00028 !! --------- 00029 !! 00030 !! 00031 !! AUTHOR 00032 !! ------ 00033 !! V. Masson *Meteo France* 00034 !! 00035 !! MODIFICATIONS 00036 !! ------------- 00037 !! Original 27/09/96 00038 !! V.Masson 18/08/97 call to fmread directly with dates and strings 00039 !! V.Masson 15/03/99 new PGD treatment with COVER types 00040 ! F.Solmon 06/00 adaptation for patch approach 00041 !------------------------------------------------------------------------------- 00042 ! 00043 !* 0. DECLARATIONS 00044 ! ------------ 00045 ! 00046 USE MODD_SURF_ATM_n, ONLY : CNATURE 00047 USE MODD_CSTS, ONLY : XTT 00048 ! 00049 ! 00050 ! 00051 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00052 USE PARKIND1 ,ONLY : JPRB 00053 ! 00054 USE MODI_INIT_IDEAL_FLUX 00055 ! 00056 USE MODI_INIT_ISBA_n 00057 ! 00058 IMPLICIT NONE 00059 ! 00060 !* 0.1 Declarations of arguments 00061 ! ------------------------- 00062 ! 00063 ! 00064 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00065 CHARACTER(LEN=3), INTENT(IN) :: HINIT ! choice of fields to initialize 00066 LOGICAL, INTENT(IN) :: OLAND_USE ! 00067 INTEGER, INTENT(IN) :: KI ! number of points 00068 INTEGER, INTENT(IN) :: KSV ! number of scalars 00069 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands 00070 CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: HSV ! name of all scalar variables 00071 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration (kg/m3) 00072 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density 00073 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! solar zenithal angle 00074 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! solar azimuthal angle (rad from N, clock) 00075 REAL, DIMENSION(KSW), INTENT(IN) :: PSW_BANDS ! middle wavelength of each band 00076 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB ! direct albedo for each band 00077 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB ! diffuse albedo for each band 00078 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity 00079 REAL, DIMENSION(KI), INTENT(OUT) :: PTSRAD ! radiative temperature 00080 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC) 00081 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC) 00082 INTEGER, INTENT(IN) :: KDAY ! current day (UTC) 00083 REAL, INTENT(IN) :: PTIME ! current time since 00084 ! midnight (UTC, s) 00085 ! 00086 CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! atmospheric file name 00087 CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! atmospheric file type 00088 CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK' 00089 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00090 ! 00091 ! 00092 !* 0.2 Declarations of local variables 00093 ! ------------------------------- 00094 ! 00095 !------------------------------------------------------------------------------- 00096 ! 00097 !* 2. Selection of surface scheme 00098 ! --------------------------- 00099 ! 00100 IF (LHOOK) CALL DR_HOOK('INIT_NATURE_N',0,ZHOOK_HANDLE) 00101 IF (CNATURE=='NONE ') THEN 00102 PDIR_ALB=0. 00103 PSCA_ALB=0. 00104 PEMIS =1. 00105 PTSRAD =XTT 00106 ELSE IF (CNATURE=='FLUX ') THEN 00107 CALL INIT_IDEAL_FLUX(HPROGRAM,HINIT,KI,KSV,KSW,HSV,PCO2,PRHOA, & 00108 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00109 PEMIS,PTSRAD,'OK' ) 00110 ELSE IF (CNATURE=='ISBA ' .OR. CNATURE=='TSZ0') THEN 00111 CALL INIT_ISBA_n(HPROGRAM,HINIT,OLAND_USE,KI,KSV,KSW,HSV,PCO2,PRHOA, & 00112 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00113 PEMIS,PTSRAD, & 00114 KYEAR,KMONTH,KDAY,PTIME,HATMFILE,HATMFILETYPE,& 00115 'OK' ) 00116 END IF 00117 IF (LHOOK) CALL DR_HOOK('INIT_NATURE_N',1,ZHOOK_HANDLE) 00118 ! 00119 !------------------------------------------------------------------------------- 00120 ! 00121 END SUBROUTINE INIT_NATURE_n