SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/prep_seaflux_netcdf.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PREP_SEAFLUX_NETCDF(HPROGRAM,HSURF,HFILE,KLUOUT,PFIELD)
00003 !     #################################################################################
00004 !
00005 !!****  *PREP_SEAFLUX_NETCDF* - prepares SEAFLUX fields from oceanic analyses in NETCDF
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     C. Lebeaupin Brossier
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    01/2008
00024 !!------------------------------------------------------------------
00025 !
00026 USE MODE_READ_NETCDF_MERCATOR
00027 !
00028 !USE MODD_TYPE_DATE_SURF
00029 !
00030 USE MODD_PREP,       ONLY : CINGRID_TYPE
00031 USE MODD_GRID_LATLONREGUL,  ONLY : NILENGTH
00032 !
00033 !
00034 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00035 USE PARKIND1  ,ONLY : JPRB
00036 !
00037 IMPLICIT NONE
00038 !
00039 !*      0.1    declarations of arguments
00040 !
00041  CHARACTER(LEN=6),   INTENT(IN)  :: HPROGRAM  ! program calling surf. schemes
00042  CHARACTER(LEN=7),   INTENT(IN)  :: HSURF     ! type of field
00043  CHARACTER(LEN=28),  INTENT(IN)  :: HFILE     ! name of file
00044 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00045 REAL,DIMENSION(:,:), POINTER    :: PFIELD    ! field to interpolate horizontally
00046 !
00047 !*      0.2    declarations of local variables
00048 !
00049 !TYPE (DATE_TIME)                :: TZTIME_GRIB    ! current date and time
00050 !CHARACTER(LEN=6)              :: YINMODEL ! model from which GRIB file originates
00051 REAL, DIMENSION(:),       POINTER :: ZFIELD   ! field read
00052  CHARACTER(LEN=28) :: YNCVAR
00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00054 !
00055 !-------------------------------------------------------------------------------------
00056 !
00057 !*      1.     Grid type
00058 !              ---------
00059 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',0,ZHOOK_HANDLE)
00060 CINGRID_TYPE='LATLON '
00061 !
00062 !*      2.     Reading of field
00063 !              ----------------
00064 !-----------------
00065 SELECT CASE(HSURF)
00066 !-----------------
00067 !
00068 !* 2.1 Orography
00069 !      ---------
00070 !
00071   CASE('ZS     ')
00072     YNCVAR='topo'
00073     CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
00074     CALL READ_NETCDF_ZS_SEA(HFILE,YNCVAR,ZFIELD)
00075     ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
00076     PFIELD(:,1) = ZFIELD(:)
00077     DEALLOCATE(ZFIELD)
00078 !
00079 !
00080 !* 2.2 Temperature profiles
00081 !      --------------------
00082 !
00083   CASE('SST    ')
00084     YNCVAR='temperature'
00085     CALL PREP_NETCDF_GRID(HFILE,YNCVAR)
00086     CALL READ_NETCDF_SST(HFILE,YNCVAR,ZFIELD)
00087     ALLOCATE(PFIELD(MAX(1,NILENGTH),1))
00088     PFIELD(:,1) = ZFIELD(:)
00089     DEALLOCATE(ZFIELD)
00090 !
00091 END SELECT
00092 IF (LHOOK) CALL DR_HOOK('PREP_SEAFLUX_NETCDF',1,ZHOOK_HANDLE)
00093 !-------------------------------------------------------------------------------------
00094 END SUBROUTINE PREP_SEAFLUX_NETCDF