SURFEX v8.1
General documentation of Surfex
mode_trip_grid.F90
Go to the documentation of this file.
1 !##############################
3 !##############################
4 !
5 !
6 USE yomhook ,ONLY : lhook, dr_hook
7 USE parkind1 ,ONLY : jprb
8 !
9 !############################################################################
10 !############################################################################
11 !############################################################################
12  CONTAINS
13 !############################################################################
14 !############################################################################
15 !############################################################################
16 ! ####################################################################
17  SUBROUTINE put_trip_grid(PTRIP_GRID,PLONMIN,PLONMAX,PLATMIN, &
18  PLATMAX,PRES,KLON,KLAT,PLON,PLAT )
19 ! ####################################################################
20 !
21 !!**** *PUT_TRIP_GRID* - routine to store in PTRIP_GRID the horizontal grid
22 !!
23 !! AUTHOR
24 !! ------
25 !! B. Decharme *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 05/2005
30 !-------------------------------------------------------------------------------
31 !
32 !* 0. DECLARATIONS
33 ! ------------
34 !
35 IMPLICIT NONE
36 !
37 !
38 !* 0.1 Declarations of arguments
39 ! -------------------------
40 !
41 REAL, INTENT(IN) :: PLONMIN ! minimum longitude
42 REAL, INTENT(IN) :: PLONMAX ! maximum longitude
43 REAL, INTENT(IN) :: PLATMIN ! minimum latitude
44 REAL, INTENT(IN) :: PLATMAX ! maximum latitude
45 REAL, INTENT(IN) :: PRES ! 1° or 0.5° resolution
46 INTEGER, INTENT(IN) :: KLON ! number of points in longitude
47 INTEGER, INTENT(IN) :: KLAT ! number of points in latitude
48 REAL, DIMENSION(:), INTENT(IN) :: PLON ! longitude
49 REAL, DIMENSION(:), INTENT(IN) :: PLAT ! latitude
50 REAL, DIMENSION(:), INTENT(OUT) :: PTRIP_GRID! parameters defining this grid
51 REAL(KIND=JPRB) :: ZHOOK_HANDLE
52 !
53 !
54 !* 0.2 Declarations of local variables
55 ! -------------------------------
56 !
57 !-------------------------------------------------------------------------------
58 IF (lhook) CALL dr_hook('MODE_TRIP_GRID:PUT_TRIP_GRID',0,zhook_handle)
59 ptrip_grid(1) = plonmin
60 ptrip_grid(2) = plonmax
61 ptrip_grid(3) = platmin
62 ptrip_grid(4) = platmax
63 ptrip_grid(5) = pres
64 ptrip_grid(6) = float(klon)
65 ptrip_grid(7) = float(klat)
66 ptrip_grid(8:7+klon) = plon
67 ptrip_grid(8+klon:7+klon+klat) = plat
68 IF (lhook) CALL dr_hook('MODE_TRIP_GRID:PUT_TRIP_GRID',1,zhook_handle)
69 !-------------------------------------------------------------------------------
70 END SUBROUTINE put_trip_grid
71 !############################################################################
72 !############################################################################
73 !############################################################################
74 ! ####################################################################
75  SUBROUTINE get_trip_grid(PTRIP_GRID,PLONMIN,PLONMAX,PLATMIN, &
76  PLATMAX,PRES,KLON,KLAT,PLON,PLAT )
77 ! ####################################################################
78 !
79 !!**** *GET_TRIP_GRID* - routine to get from PTRIP_GRID the horizontal grid
80 !!
81 !! AUTHOR
82 !! ------
83 !! B. Decharme *Meteo France*
84 !!
85 !! MODIFICATIONS
86 !! -------------
87 !! Original 05/2005
88 !-------------------------------------------------------------------------------
89 !
90 !* 0. DECLARATIONS
91 ! ------------
92 !
93 IMPLICIT NONE
94 !
95 !
96 !* 0.1 Declarations of arguments
97 ! -------------------------
98 !
99 REAL, DIMENSION(:), INTENT(IN) :: PTRIP_GRID! parameters defining this grid
100 REAL, INTENT(OUT), OPTIONAL :: PLONMIN ! minimum longitude
101 REAL, INTENT(OUT), OPTIONAL :: PLONMAX ! maximum longitude
102 REAL, INTENT(OUT), OPTIONAL :: PLATMIN ! minimum latitude
103 REAL, INTENT(OUT), OPTIONAL :: PLATMAX ! maximum latitude
104 REAL, INTENT(OUT), OPTIONAL :: PRES ! 1° or 0.5° resolution
105 INTEGER, INTENT(OUT), OPTIONAL :: KLON ! number of points in longitude
106 INTEGER, INTENT(OUT), OPTIONAL :: KLAT ! number of points in latitude
107 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLON ! longitude
108 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PLAT ! latitude
109 !
110 !
111 !* 0.2 Declarations of local variables
112 ! -------------------------------
113 !
114 INTEGER :: ILON, ILAT
115 INTEGER :: IL
116 REAL(KIND=JPRB) :: ZHOOK_HANDLE
117 !-------------------------------------------------------------------------------
118 IF (lhook) CALL dr_hook('MODE_TRIP_GRID:GET_TRIP_GRID',0,zhook_handle)
119 ilon = nint(ptrip_grid(6))
120 ilat = nint(ptrip_grid(7))
121 !
122 IF (PRESENT(plonmin)) plonmin = ptrip_grid(1)
123 IF (PRESENT(plonmax)) plonmax = ptrip_grid(2)
124 IF (PRESENT(platmin)) platmin = ptrip_grid(3)
125 IF (PRESENT(platmax)) platmax = ptrip_grid(4)
126 IF (PRESENT(pres )) pres = ptrip_grid(5)
127 IF (PRESENT(klon )) klon = ilon
128 IF (PRESENT(klat )) klat = ilat
129 IF (PRESENT(plon )) plon(:) = ptrip_grid(8:7+ilon)
130 IF (PRESENT(plat )) plat(:) = ptrip_grid(8+ilon:7+ilon+ilat)
131 IF (lhook) CALL dr_hook('MODE_TRIP_GRID:GET_TRIP_GRID',1,zhook_handle)
132 !
133 !-------------------------------------------------------------------------------
134 END SUBROUTINE get_trip_grid
135 !---------------------------------------------------------------------------------
136 !
137 !############################################################################
138 !############################################################################
139 !############################################################################
140 !############################################################################
141 !############################################################################
142 !############################################################################
143 !
144 END MODULE mode_trip_grid
subroutine get_trip_grid(PTRIP_GRID, PLONMIN, PLONMAX, PLATMIN, PLATMAX, PRES, KLON, KLAT, PLON, PLAT)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine put_trip_grid(PTRIP_GRID, PLONMIN, PLONMAX, PLATMIN, PLATMAX, PRES, KLON, KLAT, PLON, PLAT)
logical lhook
Definition: yomhook.F90:15