SCALE-RM
scale_land_grid_cartesC_real.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
9 !-------------------------------------------------------------------------------
10 #include "scalelib.h"
12  !-----------------------------------------------------------------------------
13  !
14  !++ used modules
15  !
16  use scale_precision
17  use scale_io
18  use scale_prof
21  !-----------------------------------------------------------------------------
22  implicit none
23  private
24  !-----------------------------------------------------------------------------
25  !
26  !++ Public procedure
27  !
31 
32  !-----------------------------------------------------------------------------
33  !
34  !++ Public parameters & variables
35  !
36  real(rp), public, allocatable :: land_grid_cartesc_real_area(:,:)
38  real(rp), public, allocatable :: land_grid_cartesc_real_vol (:,:,:)
40 
41  !-----------------------------------------------------------------------------
42  !
43  !++ Private procedure
44  !
45  !-----------------------------------------------------------------------------
46  !
47  !++ Private parameters & variables
48  !
49  !-----------------------------------------------------------------------------
50 contains
51  !-----------------------------------------------------------------------------
54 
55  ! at this moment, horizontal grid is identical to that of the atmosphere
56  allocate( land_grid_cartesc_real_area( lia,lja) )
58  !$acc enter data create(LAND_GRID_CARTESC_REAL_AREA, LAND_GRID_CARTESC_REAL_VOL)
59 
60  return
61  end subroutine land_grid_cartesc_real_setup
62 
63  !-----------------------------------------------------------------------------
66  implicit none
67 
68  !$acc exit data delete(LAND_GRID_CARTESC_REAL_AREA, LAND_GRID_CARTESC_REAL_VOL)
69  deallocate( land_grid_cartesc_real_area )
70  deallocate( land_grid_cartesc_real_vol )
71 
72  return
73  end subroutine land_grid_cartesc_real_finalize
74  !-----------------------------------------------------------------------------
75 
79  use scale_land_grid_cartesc, only: &
81  use scale_file_cartesc, only: &
83  use scale_landuse, only: &
85 
86  integer :: k, i, j
87 
88  do j = 1, lja
89  do i = 1, lia
91  end do
92  end do
93  !$acc update device(LAND_GRID_CARTESC_REAL_AREA) async
94 
96  do j = ljs, lje
97  do i = lis, lie
99  end do
100  end do
101 
102  do j = 1, lja
103  do i = 1, lia
104  do k = lks, lke
106  enddo
107  enddo
108  enddo
109  !$acc update device(LAND_GRID_CARTESC_REAL_VOL) async
110 
112  do j = ljs, lje
113  do i = lis, lie
114  do k = lks, lke
116  end do
117  end do
118  end do
119 
121  !$acc wait
122 
123  return
125 
module atmosphere / grid / cartesC index
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_area
horizontal area ( xy, normal z) [m2]
module file / cartesianC
subroutine, public file_cartesc_set_coordinates_land(VOL)
set volume for land
module STDIO
Definition: scale_io.F90:10
module land / grid / cartesianC / index
module land / grid / cartesianC / real
real(rp), dimension(:,:,:), allocatable, public land_grid_cartesc_real_vol
volume of grid cell
subroutine, public land_grid_cartesc_real_finalize
Finalize.
real(rp), public land_grid_cartesc_real_totvol
total volume
real(rp), public land_grid_cartesc_real_totarea
total area
real(rp), dimension(:,:), allocatable, public land_grid_cartesc_real_area
area of grid cell
subroutine, public land_grid_cartesc_real_setup
Setup real grid.
module land / grid / cartesianC
real(rp), dimension(:), allocatable, public land_grid_cartesc_cdz
z-length of control volume [m]
module LANDUSE
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
module PRECISION
integer, parameter, public rp
module profiler
Definition: scale_prof.F90:11