SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_watflux_buffer.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_WATFLUX_BUFFER(HPROGRAM,HSURF,KLUOUT,PFIELD)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_WATFLUX_BUFFER* - prepares WATFLUX field from operational BUFFER
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     S. Malardel
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    03/2005
00024 !!------------------------------------------------------------------
00025 !
00026 !
00027 USE MODE_READ_BUFFER
00028 !
00029 USE MODD_TYPE_DATE_SURF
00030 !
00031 USE MODI_PREP_BUFFER_GRID
00032 !
00033 USE MODD_PREP,       ONLY : CINTERP_TYPE
00034 USE MODD_GRID_BUFFER,  ONLY : NNI
00035 !
00036 !
00037 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00038 USE PARKIND1  ,ONLY : JPRB
00039 !
00040 IMPLICIT NONE
00041 !
00042 !*      0.1    declarations of arguments
00043 !
00044  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00045  CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
00046 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00047 REAL,DIMENSION(:,:), POINTER    :: PFIELD    ! field to interpolate horizontally
00048 !
00049 !*      0.2    declarations of local variables
00050 !
00051 TYPE (DATE_TIME)                :: TZTIME_BUF    ! current date and time
00052  CHARACTER(LEN=6)              :: YINMODEL ! model from which BUFFER file originates
00053 REAL, DIMENSION(:), POINTER :: ZFIELD   ! field read
00054 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00055 !
00056 !-------------------------------------------------------------------------------------
00057 !
00058 !*      1.     Reading of grid
00059 !              ---------------
00060 !
00061 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX_BUFFER',0,ZHOOK_HANDLE)
00062  CALL PREP_BUFFER_GRID(KLUOUT,YINMODEL,TZTIME_BUF)
00063 
00064 !
00065 !*      2.     Reading of field
00066 !              ----------------
00067 !
00068 !--------------------
00069 SELECT CASE(HSURF)
00070 !--------------------
00071 !
00072 !* 1.  Orography
00073 !      ---------
00074 !
00075   CASE('ZS     ')
00076     SELECT CASE (YINMODEL)
00077       CASE ('ALADIN')
00078         CALL READ_BUFFER_ZS(KLUOUT,YINMODEL,ZFIELD)
00079         ALLOCATE(PFIELD(NNI,1))
00080         PFIELD(:,1) = ZFIELD(:)
00081         DEALLOCATE(ZFIELD)
00082     END SELECT
00083 
00084 !
00085 !* 3.  Temperature profiles
00086 !      --------------------
00087 !
00088   CASE('TSWATER')
00089     SELECT CASE (YINMODEL)
00090       CASE ('ALADIN')
00091         CALL READ_BUFFER_T2(KLUOUT,YINMODEL,ZFIELD)
00092         ALLOCATE(PFIELD(NNI,1))
00093         PFIELD(:,1) = ZFIELD(:)
00094         DEALLOCATE(ZFIELD)
00095     END SELECT
00096 
00097 END SELECT
00098 !
00099 !*      4.     Interpolation method
00100 !              --------------------
00101 !
00102 CINTERP_TYPE='BUFFER'
00103 IF (LHOOK) CALL DR_HOOK('PREP_WATFLUX_BUFFER',1,ZHOOK_HANDLE)
00104 !
00105 !
00106 !-------------------------------------------------------------------------------------
00107 END SUBROUTINE PREP_WATFLUX_BUFFER