SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
hor_interpol_none.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE hor_interpol_none (DTCO, U, &
7  kluout,pfieldin,pfieldout)
8 ! #################################################################################
9 !
10 !!**** *HOR_INTERPOL_NONE * - Only extrapolation
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! S.Malardel
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 03/2005
29 !!------------------------------------------------------------------
30 !
31 !
32 !
33 !
34 !
36 USE modd_surf_atm_n, ONLY : surf_atm_t
37 !
38 USE modd_prep, ONLY : xlat_out, xlon_out, cmask
39 !
40 USE modd_grid_buffer, ONLY : nni
41 USE modd_surf_par, ONLY : xundef
42 !
44 !
45 !
46 USE yomhook ,ONLY : lhook, dr_hook
47 USE parkind1 ,ONLY : jprb
48 !
49 USE modi_get_surf_mask_n
50 !
51 IMPLICIT NONE
52 !
53 !* 0.1 declarations of arguments
54 !
55 !
56 TYPE(data_cover_t), INTENT(INOUT) :: dtco
57 TYPE(surf_atm_t), INTENT(INOUT) :: u
58 !
59 INTEGER, INTENT(IN) :: kluout ! logical unit of output listing
60 REAL, POINTER, DIMENSION(:,:) :: pfieldin ! field to interpolate horizontally
61 REAL, DIMENSION(:,:), INTENT(OUT) :: pfieldout ! interpolated field
62 !
63 !* 0.2 declarations of local variables
64 !
65 INTEGER, DIMENSION(:), ALLOCATABLE :: imaskout ! output mask
66 INTEGER :: ino ! output number of points
67 REAL(KIND=JPRB) :: zhook_handle
68 !
69 !------------------------------------------------------------------------------
70 !
71 !* 1. Initialisation of the output mask
72 !
73 IF (lhook) CALL dr_hook('HOR_INTERPOL_NONE',0,zhook_handle)
74 ino = SIZE(xlat_out)
75 ALLOCATE(imaskout(ino))
76  CALL get_surf_mask_n(dtco, u, &
77  cmask,ino,imaskout,nni,kluout)
78 !
79 !* 2. Mask the input field with the output mask
80 !!mask du tableau de taille FULL en fonction du type de surface
81  CALL pack_same_rank(imaskout,pfieldin,pfieldout)
82 !
83 !* 6. Deallocations
84 !
85 DEALLOCATE(imaskout)
86 IF (lhook) CALL dr_hook('HOR_INTERPOL_NONE',1,zhook_handle)
87 
88 !-------------------------------------------------------------------------------------
89 END SUBROUTINE hor_interpol_none
subroutine get_surf_mask_n(DTCO, U, HTYPE, KDIM, KMASK, KLU, KLUOUT)
subroutine hor_interpol_none(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)