SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_flake_ascllv.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_FLAKE_ASCLLV(HPROGRAM,HSURF,KLUOUT,PFIELD)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_FLAKE_ASCLLV* - prepares FLAKE field from prescribed values
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     P. Le Moigne 
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    03/2007
00024 !!------------------------------------------------------------------
00025 !
00026 !
00027 USE MODD_PREP,           ONLY : CINTERP_TYPE
00028 USE MODD_PGD_GRID,       ONLY : NL,LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR
00029 USE MODD_PGDWORK,        ONLY : CATYPE
00030 USE MODD_SURF_PAR,       ONLY : XUNDEF
00031 USE MODD_PREP_FLAKE,     ONLY : CTYPE, CFILE_FLAKE
00032 USE MODI_PGD_FIELD
00033 USE MODI_GET_LATLONMASK_n
00034 !
00035 !
00036 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00037 USE PARKIND1  ,ONLY : JPRB
00038 !
00039 USE MODI_GET_TYPE_DIM_n
00040 !
00041 IMPLICIT NONE
00042 !
00043 !*      0.1    declarations of arguments
00044 !
00045  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00046  CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
00047 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00048 REAL, POINTER, DIMENSION(:,:)   :: PFIELD    ! field to interpolate horizontally
00049 !
00050 !*      0.2    declarations of local variables
00051 !
00052 INTEGER :: IL
00053 !
00054 REAL, ALLOCATABLE, DIMENSION(:)     :: ZFIELD
00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00056 !
00057 !-------------------------------------------------------------------------------------
00058 !
00059 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_ASCLLV',0,ZHOOK_HANDLE)
00060 CATYPE = 'ARI'
00061 !
00062 !*      1.    get full dimension of grid
00063 !
00064  CALL GET_TYPE_DIM_n('FULL  ',NL)
00065 !
00066 !*      2.    get water dimension
00067 !
00068  CALL GET_TYPE_DIM_n('WATER ',IL)
00069 !
00070 ALLOCATE(ZFIELD(IL))
00071 !
00072 !*      3.    get grid informations known over full grid
00073 !
00074  CALL GET_LATLONMASK_n(LLATLONMASK,CGRID,XGRID_PAR,NGRID_PAR)
00075 !
00076 !
00077 SELECT CASE(HSURF)
00078 !
00079 !
00080 !*      5.    surface temperature
00081 
00082   CASE('TS     ')
00083 
00084     CALL PGD_FIELD(HPROGRAM,'TS_WATER: temperature','WAT',CFILE_FLAKE,   &
00085                         CTYPE,XUNDEF,ZFIELD(:))  
00086 
00087     ALLOCATE(PFIELD(IL,1))
00088     PFIELD(:,1) = ZFIELD(:)
00089 
00090 END SELECT
00091 !
00092 !*      6.     Interpolation method
00093 !              --------------------
00094 !
00095 CINTERP_TYPE='NONE  '
00096 DEALLOCATE(ZFIELD)
00097 IF (LHOOK) CALL DR_HOOK('PREP_FLAKE_ASCLLV',1,ZHOOK_HANDLE)
00098 !
00099 !-------------------------------------------------------------------------------------
00100 END SUBROUTINE PREP_FLAKE_ASCLLV