SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_seaflux_buffer.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_SEAFLUX_BUFFER(HPROGRAM,HSURF,KLUOUT,PFIELD)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_SEAFLUX_BUFFER* - prepares SEAFLUX fields from 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    01/2004
00024 !!------------------------------------------------------------------
00025 !
00026 
00027 !
00028 USE MODE_READ_BUFFER
00029 !
00030 USE MODD_TYPE_DATE_SURF
00031 !
00032 USE MODI_PREP_BUFFER_GRID
00033 !
00034 USE MODD_PREP,       ONLY : CINTERP_TYPE
00035 USE MODD_GRID_BUFFER,  ONLY : NNI
00036 !
00037 !
00038 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00039 USE PARKIND1  ,ONLY : JPRB
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,DIMENSION(:,:), POINTER    :: PFIELD    ! field to prepare
00049 !
00050 !*      0.2    declarations of local variables
00051 !
00052 TYPE (DATE_TIME)                :: TZTIME_BUF    ! current date and time
00053  CHARACTER(LEN=6)              :: YINMODEL ! model from which BUFFER data originate
00054 REAL, DIMENSION(:),       POINTER :: ZFIELD   ! field read
00055 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00056 !
00057 !-------------------------------------------------------------------------------------
00058 !
00059 !*      1.     Reading of grid
00060 !              ---------------
00061 !
00062 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_BUFFER',0,ZHOOK_HANDLE)
00063  CALL PREP_BUFFER_GRID(KLUOUT,YINMODEL,TZTIME_BUF)
00064 
00065 !
00066 !*      2.     Reading of field
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('SST    ')
00089     SELECT CASE (YINMODEL)
00090       CASE ('ALADIN')
00091         CALL READ_BUFFER_SST(KLUOUT,YINMODEL,ZFIELD)
00092         ALLOCATE(PFIELD(NNI,1))
00093         PFIELD(:,1) = ZFIELD(:)
00094         DEALLOCATE(ZFIELD)
00095     END SELECT
00096 
00097 END SELECT
00098 
00099 !
00100 !*      4.     Interpolation method
00101 !              --------------------
00102 !
00103 CINTERP_TYPE='BUFFER'
00104 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_BUFFER',1,ZHOOK_HANDLE)
00105 !
00106 !
00107 !-------------------------------------------------------------------------------------
00108 END SUBROUTINE PREP_SEAFLUX_BUFFER