SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_teb_greenroof_ascllv.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_TEB_GREENROOF_ASCLLV(HPROGRAM,HSURF,KLUOUT,PFIELD)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_TEB_GREENROOF_ASCLLV* - prepares ISBA field from prescribed values
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    Based on "prep_teb_garden_ASCLLV"
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!      
00018 !!
00019 !!    AUTHOR
00020 !!    ------
00021 !!    A. Lemonsu & C. de Munck 
00022 !!
00023 !!    MODIFICATIONS
00024 !!    -------------
00025 !!      Original    07/2011
00026 !!------------------------------------------------------------------
00027 !
00028 !
00029 USE MODD_PREP,              ONLY : CINTERP_TYPE
00030 USE MODD_PGD_GRID,          ONLY : NL,LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR
00031 USE MODD_PGDWORK,           ONLY : CATYPE
00032 USE MODD_DATA_COVER_PAR,    ONLY : NVEGTYPE
00033 USE MODD_SURF_PAR,          ONLY : XUNDEF
00034 USE MODD_PREP_TEB_GREENROOF,ONLY : CTYPE_HUG     , CTYPE_TG     , &
00035                                    CFILE_HUG_SURF, CFILE_TG_SURF, &
00036                                    CFILE_HUG_ROOT, CFILE_TG_ROOT, &
00037                                    CFILE_HUG_DEEP, CFILE_TG_DEEP  
00038 USE MODI_PGD_FIELD
00039 USE MODI_GET_LATLONMASK_n
00040 !
00041 !
00042 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00043 USE PARKIND1  ,ONLY : JPRB
00044 !
00045 USE MODI_GET_TYPE_DIM_n
00046 !
00047 IMPLICIT NONE
00048 !
00049 !*      0.1    declarations of arguments
00050 !
00051  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00052  CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
00053 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00054 REAL, POINTER, DIMENSION(:,:,:) :: PFIELD    ! field to interpolate horizontally
00055 !
00056 !*      0.2    declarations of local variables
00057 !
00058 INTEGER :: JV ! loop counter
00059 INTEGER :: JLAYER
00060 INTEGER :: IL
00061 !
00062 REAL, ALLOCATABLE, DIMENSION(:,:)     :: ZFIELD
00063 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00064 !
00065 !-------------------------------------------------------------------------------------
00066 !
00067 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_ASCLLV',0,ZHOOK_HANDLE)
00068 CATYPE = 'ARI'
00069 !
00070 !*      1.    get full dimension of grid
00071 !
00072  CALL GET_TYPE_DIM_n('FULL  ',NL)
00073 !
00074 !*      2.    get nature dimension
00075 !
00076  CALL GET_TYPE_DIM_n('TOWN  ',IL)
00077 !
00078 ALLOCATE(ZFIELD(IL,2))
00079 !
00080 !*      3.    get grid informations known over full grid
00081 !
00082  CALL GET_LATLONMASK_n(LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR)
00083 !
00084 !
00085 SELECT CASE(HSURF)
00086 !
00087 !
00088 !*      4.    Profile of soil relative humidity
00089 !
00090   CASE('WG     ')
00091 
00092     CALL PGD_FIELD(HPROGRAM,'HUG_SURF: relative humidity','TWN',CFILE_HUG_SURF,   &
00093                         CTYPE_HUG,XUNDEF,ZFIELD(:,1))  
00094     CALL PGD_FIELD(HPROGRAM,'HUG_ROOT: relative humidity','TWN',CFILE_HUG_ROOT,   &
00095                         CTYPE_HUG,XUNDEF,ZFIELD(:,2))  
00096     CALL PGD_FIELD(HPROGRAM,'HUG_DEEP: relative humidity','TWN',CFILE_HUG_DEEP,   &
00097                         CTYPE_HUG,XUNDEF,ZFIELD(:,3))  
00098 
00099     ALLOCATE(PFIELD(IL,3,NVEGTYPE))
00100     DO JV=1,NVEGTYPE
00101       PFIELD(:,1,JV) = ZFIELD(:,1)
00102       PFIELD(:,2,JV) = ZFIELD(:,2)
00103       PFIELD(:,3,JV) = ZFIELD(:,3)
00104     END DO
00105 
00106 !*      5.    Profile of temperatures
00107 
00108   CASE('TG     ')
00109 
00110     CALL PGD_FIELD(HPROGRAM,'TG_SURF: temperature','TWN',CFILE_TG_SURF,   &
00111                         CTYPE_TG,XUNDEF,ZFIELD(:,1))  
00112     CALL PGD_FIELD(HPROGRAM,'TG_ROOT: temperature','TWN',CFILE_TG_ROOT,   &
00113                         CTYPE_TG,XUNDEF,ZFIELD(:,2))  
00114     CALL PGD_FIELD(HPROGRAM,'TG_DEEP: temperature','TWN',CFILE_TG_DEEP,   &
00115                         CTYPE_TG,XUNDEF,ZFIELD(:,3))  
00116 
00117     ALLOCATE(PFIELD(IL,3,NVEGTYPE))
00118     DO JV=1,NVEGTYPE
00119       PFIELD(:,1,JV) = ZFIELD(:,1)
00120       PFIELD(:,2,JV) = ZFIELD(:,2)
00121       PFIELD(:,3,JV) = ZFIELD(:,3)
00122     END DO
00123 
00124 END SELECT
00125 !
00126 !*      6.     Interpolation method
00127 !              --------------------
00128 !
00129 CINTERP_TYPE='NONE  '
00130 DEALLOCATE(ZFIELD)
00131 IF (LHOOK) CALL DR_HOOK('PREP_TEB_GREENROOF_ASCLLV',1,ZHOOK_HANDLE)
00132 !
00133 !-------------------------------------------------------------------------------------
00134 END SUBROUTINE PREP_TEB_GREENROOF_ASCLLV