SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/hor_interpol_none.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE HOR_INTERPOL_NONE(KLUOUT,PFIELDIN,PFIELDOUT)
00003 !     #################################################################################
00004 !
00005 !!****  *HOR_INTERPOL_NONE * - Only extrapolation
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 !
00028 USE MODD_PREP,       ONLY : XLAT_OUT, XLON_OUT, CMASK
00029 !
00030 USE MODD_GRID_BUFFER,  ONLY : NNI
00031 USE MODD_SURF_PAR,   ONLY : XUNDEF
00032 !
00033 USE MODI_PACK_SAME_RANK
00034 !
00035 !
00036 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00037 USE PARKIND1  ,ONLY : JPRB
00038 !
00039 USE MODI_GET_SURF_MASK_n
00040 !
00041 IMPLICIT NONE
00042 !
00043 !*      0.1    declarations of arguments
00044 !
00045 INTEGER,            INTENT(IN)  :: KLUOUT    ! logical unit of output listing
00046 REAL, POINTER, DIMENSION(:,:)   :: PFIELDIN  ! field to interpolate horizontally
00047 REAL, DIMENSION(:,:), INTENT(OUT) :: PFIELDOUT ! interpolated field
00048 !
00049 !*      0.2    declarations of local variables
00050 !
00051 INTEGER, DIMENSION(:), ALLOCATABLE :: IMASKOUT ! output mask
00052 INTEGER                         :: INO      ! output number of points
00053 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00054 !
00055 !------------------------------------------------------------------------------
00056 !
00057 !*      1.    Initialisation of the output mask
00058 !
00059 IF (LHOOK) CALL DR_HOOK('HOR_INTERPOL_NONE',0,ZHOOK_HANDLE)
00060 INO = SIZE(XLAT_OUT)
00061 ALLOCATE(IMASKOUT(INO))
00062  CALL GET_SURF_MASK_n(CMASK,INO,IMASKOUT,NNI,KLUOUT)
00063 !
00064 !*      2.    Mask the input field with the output mask
00065 !!mask du tableau de taille FULL en fonction du type de surface
00066  CALL PACK_SAME_RANK(IMASKOUT,PFIELDIN,PFIELDOUT)
00067 !
00068 !*      6.    Deallocations
00069 !
00070 DEALLOCATE(IMASKOUT)
00071 IF (LHOOK) CALL DR_HOOK('HOR_INTERPOL_NONE',1,ZHOOK_HANDLE)
00072 
00073 !-------------------------------------------------------------------------------------
00074 END SUBROUTINE HOR_INTERPOL_NONE