SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/init_townn.F90
Go to the documentation of this file.
00001 !     #############################################################
00002       SUBROUTINE INIT_TOWN_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_TOWN_n* - chooses initialization routine for towns
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 : CTOWN
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_TEB_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 INTEGER,                          INTENT(IN)  :: KI        ! number of points
00067 INTEGER,                          INTENT(IN)  :: KSV       ! number of scalars
00068 INTEGER,                          INTENT(IN)  :: KSW       ! number of short-wave spectral bands
00069  CHARACTER(LEN=6), DIMENSION(KSV), INTENT(IN)  :: HSV       ! name of all scalar variables
00070 REAL,             DIMENSION(KI),  INTENT(IN)  :: PCO2      ! CO2 concentration (kg/m3)
00071 REAL,             DIMENSION(KI),  INTENT(IN)  :: PRHOA     ! air density
00072 REAL,             DIMENSION(KI),  INTENT(IN)  :: PZENITH   ! solar zenithal angle
00073 REAL,             DIMENSION(KI),  INTENT(IN)  :: PAZIM     ! solar azimuthal angle (rad from N, clock)
00074 REAL,             DIMENSION(KSW), INTENT(IN)  :: PSW_BANDS ! middle wavelength of each band
00075 REAL,             DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB  ! direct albedo for each band
00076 REAL,             DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each band
00077 REAL,             DIMENSION(KI),  INTENT(OUT) :: PEMIS     ! emissivity
00078 REAL,             DIMENSION(KI),  INTENT(OUT) :: PTSRAD    ! radiative temperature
00079 INTEGER,                          INTENT(IN)  :: KYEAR     ! current year (UTC)
00080 INTEGER,                          INTENT(IN)  :: KMONTH    ! current month (UTC)
00081 INTEGER,                          INTENT(IN)  :: KDAY      ! current day (UTC)
00082 REAL,                             INTENT(IN)  :: PTIME     ! current time since
00083                                                           !  midnight (UTC, s)
00084 !
00085  CHARACTER(LEN=28),                INTENT(IN)  :: HATMFILE    ! atmospheric file name
00086  CHARACTER(LEN=6),                 INTENT(IN)  :: HATMFILETYPE! atmospheric file type
00087  CHARACTER(LEN=2),                 INTENT(IN)  :: HTEST       ! must be equal to 'OK'
00088 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00089 !
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_TOWN_N',0,ZHOOK_HANDLE)
00101 IF (CTOWN=='NONE  ') THEN
00102   PDIR_ALB=0.
00103   PSCA_ALB=0.
00104   PEMIS   =1.
00105   PTSRAD  =XTT
00106 ELSE IF (CTOWN=='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 (CTOWN=='TEB   ') THEN
00111   CALL INIT_TEB_n(HPROGRAM,HINIT,                               &
00112                     KI,KSV,KSW,HSV,PCO2,PRHOA,                    &
00113                     PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB,    &
00114                     PEMIS,PTSRAD,                                 &
00115                     KYEAR,KMONTH,KDAY,PTIME,HATMFILE,HATMFILETYPE,&
00116                     'OK'                                          )  
00117 END IF
00118 IF (LHOOK) CALL DR_HOOK('INIT_TOWN_N',1,ZHOOK_HANDLE)
00119 !
00120 !-------------------------------------------------------------------------------
00121 END SUBROUTINE INIT_TOWN_n