|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ############################################################# 00002 SUBROUTINE INIT_INLAND_WATER_n(HPROGRAM,HINIT, & 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_INLAND_WATER_n* - routine to initialize inland water 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 01/2003 00038 !------------------------------------------------------------------------------- 00039 ! 00040 !* 0. DECLARATIONS 00041 ! ------------ 00042 ! 00043 USE MODD_SURF_ATM_n, ONLY : CWATER 00044 USE MODD_CSTS, ONLY : XTT 00045 ! 00046 ! 00047 ! 00048 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00049 USE PARKIND1 ,ONLY : JPRB 00050 ! 00051 USE MODI_INIT_FLAKE_n 00052 ! 00053 USE MODI_INIT_IDEAL_FLUX 00054 ! 00055 USE MODI_INIT_WATFLUX_n 00056 ! 00057 IMPLICIT NONE 00058 ! 00059 !* 0.1 Declarations of arguments 00060 ! ------------------------- 00061 ! 00062 ! 00063 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00064 CHARACTER(LEN=3), INTENT(IN) :: HINIT ! choice of fields to initialize 00065 INTEGER, INTENT(IN) :: KI ! number of points 00066 INTEGER, INTENT(IN) :: KSV ! number of scalars 00067 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands 00068 CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN) :: HSV ! name of all scalar variables 00069 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration (kg/m3) 00070 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density 00071 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! solar zenithal angle 00072 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! solar azimuthal angle (rad from N, clock) 00073 REAL, DIMENSION(KSW), INTENT(IN) :: PSW_BANDS ! middle wavelength of each band 00074 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB ! direct albedo for each band 00075 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB ! diffuse albedo for each band 00076 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity 00077 REAL, DIMENSION(KI), INTENT(OUT) :: PTSRAD ! radiative temperature 00078 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC) 00079 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC) 00080 INTEGER, INTENT(IN) :: KDAY ! current day (UTC) 00081 REAL, INTENT(IN) :: PTIME ! current time since 00082 ! midnight (UTC, s) 00083 ! 00084 CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! atmospheric file name 00085 CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! atmospheric file type 00086 CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK' 00087 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00088 ! 00089 !* 0.2 Declarations of local variables 00090 ! ------------------------------- 00091 ! 00092 !------------------------------------------------------------------------------- 00093 ! 00094 !* 2. Selection of surface scheme 00095 ! --------------------------- 00096 ! 00097 IF (LHOOK) CALL DR_HOOK('INIT_INLAND_WATER_N',0,ZHOOK_HANDLE) 00098 IF (CWATER=='NONE ') THEN 00099 PDIR_ALB=0. 00100 PSCA_ALB=0. 00101 PEMIS =1. 00102 PTSRAD =XTT 00103 ELSE IF (CWATER=='FLUX ') THEN 00104 CALL INIT_IDEAL_FLUX(HPROGRAM,HINIT,KI,KSV,KSW,HSV,PCO2,PRHOA, & 00105 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00106 PEMIS,PTSRAD,'OK' ) 00107 ELSE IF (CWATER=='WATFLX') THEN 00108 CALL INIT_WATFLUX_n(HPROGRAM,HINIT,KI,KSV,KSW,HSV,PCO2,PRHOA, & 00109 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00110 PEMIS,PTSRAD, & 00111 KYEAR,KMONTH,KDAY,PTIME,HATMFILE,HATMFILETYPE,& 00112 'OK' ) 00113 ELSE IF (CWATER=='FLAKE ') THEN 00114 CALL INIT_FLAKE_n(HPROGRAM,HINIT,KI,KSV,KSW,HSV,PCO2,PRHOA, & 00115 PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB, & 00116 PEMIS,PTSRAD, & 00117 KYEAR,KMONTH,KDAY,PTIME,HATMFILE,HATMFILETYPE,& 00118 'OK') 00119 END IF 00120 IF (LHOOK) CALL DR_HOOK('INIT_INLAND_WATER_N',1,ZHOOK_HANDLE) 00121 ! 00122 ! 00123 !------------------------------------------------------------------------------- 00124 ! 00125 END SUBROUTINE INIT_INLAND_WATER_n
1.8.0