SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_slope_effect.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 ! ######################
7 ! ######################
8 !
9 !!**** *MODD_SLOPE_EFFECT - declaration of parameters relative to
10 !! computations of slopes and aspect effects on direct shortwave
11 !radiations
12 !!
13 !! PURPOSE
14 !! -------
15 !
16 !!
17 !!** IMPLICIT ARGUMENTS
18 !! ------------------
19 !! None
20 !!
21 !! REFERENCE
22 !! ---------
23 !!
24 !! AUTHOR
25 !! ------
26 !! V. Vionnet *Meteo France*
27 !!
28 !! MODIFICATIONS
29 !! -------------
30 !! Original 15/04/11
31 !!! 03/14 : M Lafaysse, modifs for optimization and parallelization
32 !* 0. DECLARATIONS
33 ! ------------
34 !
35 !
36 IMPLICIT NONE
37 
38 
39 INTEGER :: NNX ! number of points in X direction for large domain (all processors) + 1 line left, right, up, down
40 INTEGER :: NNY ! number of points in Y direction for large domain (all processors) + 1 line left, right, up, down
41 
42 INTEGER :: NIX=0 ! number of points in X direction for complete domain (all processors)
43 INTEGER :: NIY=0 ! number of points in Y direction for complete domain (all processors)
44 
45 INTEGER,SAVE :: NNXLOC ! number of points in X direction for large domain (this processor) + 1 line left, right, up, down
46 INTEGER,SAVE :: NNYLOC ! number of points in Y direction for large domain (this processor) + 1 line left, right, up, down
47 INTEGER,SAVE :: NIXLOC ! number of points in X direction for complete domain (this processor)
48 INTEGER,SAVE :: NIYLOC ! number of points in Y direction for complete domain (this processor)
49 
50 !$OMP THREADPRIVATE(NNXLOC)
51 !$OMP THREADPRIVATE(NNYLOC)
52 !$OMP THREADPRIVATE(NIXLOC)
53 !$OMP THREADPRIVATE(NIYLOC)
54 
55 INTEGER,SAVE::NINDX1_X,NINDX2_X,NINDX1_Y,NINDX2_Y
56 !$OMP THREADPRIVATE(NINDX1_X)
57 !$OMP THREADPRIVATE(NINDX1_Y)
58 !$OMP THREADPRIVATE(NINDX2_X)
59 !$OMP THREADPRIVATE(NINDX2_Y)
60 
61 LOGICAL :: LREVERTGRID
62 
63 REAL, DIMENSION(:,:),ALLOCATABLE :: XZSL ! orography in a 2D array
64 REAL, DIMENSION(:,:),ALLOCATABLE :: XZS_XY ! orography at southwest corner of the mesh
65 REAL, DIMENSION(:),ALLOCATABLE :: XXHAT ! X coordinate
66 REAL, DIMENSION(:),ALLOCATABLE :: XYHAT ! Y coordinate
67 
68 REAL, DIMENSION(:),ALLOCATABLE :: XXHAT_THREAD ! X coordinate
69 REAL, DIMENSION(:),ALLOCATABLE :: XYHAT_THREAD ! Y coordinate
70 !$OMP THREADPRIVATE(XXHAT_THREAD)
71 !$OMP THREADPRIVATE(XYHAT_THREAD)
72 
73 REAL, DIMENSION(:,:,:),ALLOCATABLE :: XSLOPAZI ! azimuthal slope angle
74 REAL, DIMENSION(:,:,:),ALLOCATABLE :: XSLOPANG ! vertical slope angle
75 REAL, DIMENSION(:,:,:),ALLOCATABLE :: XSURF_TRIANGLE ! surface of triangles
76 
77 !idem for local processor
78 REAL,DIMENSION(:,:),ALLOCATABLE::XZS_THREAD,XZS_XY_THREAD
79 !$OMP THREADPRIVATE(XZS_THREAD)
80 !$OMP THREADPRIVATE(XZS_XY_THREAD)
81 REAL,DIMENSION(:,:,:),ALLOCATABLE::XSLOPANG_THREAD,XSLOPAZI_THREAD,XSURF_TRIANGLE_THREAD
82 !$OMP THREADPRIVATE(XSLOPANG_THREAD)
83 !$OMP THREADPRIVATE(XSLOPAZI_THREAD)
84 !$OMP THREADPRIVATE(XSURF_TRIANGLE_THREAD)
85 
86 END MODULE modd_slope_effect