SCALE-RM
Functions/Subroutines | Variables
scale_atmos_grid_cartesc_real Module Reference

module Atmosphere GRID CartesC Real(real space) More...

Functions/Subroutines

subroutine, public atmos_grid_cartesc_real_setup
 Setup. More...
 
subroutine, public atmos_grid_cartesc_real_calc_z
 Convert Xi to Z coordinate. More...
 
subroutine, public atmos_grid_cartesc_real_calc_areavol (MAPF)
 Calc control area/volume. More...
 

Variables

real(rp), public atmos_grid_cartesc_real_basepoint_lon
 position of base point in real world [rad,0-2pi] More...
 
real(rp), public atmos_grid_cartesc_real_basepoint_lat
 position of base point in real world [rad,-pi,pi] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_cz
 geopotential height [m] (zxy) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czuy
 geopotential height [m] (zuy) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czxv
 geopotential height [m] (zxv) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czuv
 geopotential height [m] (zuv) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fz
 geopotential height [m] (wxy) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzuy
 geopotential height [m] (wuy) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzxv
 geopotential height [m] (wxv) More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzuv
 geopotential height [m] (wuv) More...
 
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_real_f2h
 coefficient for interpolation from full to half levels More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lon
 longitude [rad,0-2pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonuy
 longitude at staggered point (uy) [rad,0-2pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonxv
 longitude at staggered point (xv) [rad,0-2pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonuv
 longitude at staggered point (uv) [rad,0-2pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lat
 latitude [rad,-pi,pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latuy
 latitude at staggered point (uy) [rad,-pi,pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latxv
 latitude at staggered point (xv) [rad,-pi,pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latuv
 latitude at staggered point (uv) [rad,-pi,pi] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_dlon
 delta longitude More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_dlat
 delta latitude More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_z1
 Height of the lowermost grid from surface (cell center) [m]. More...
 
real(rp), public atmos_grid_cartesc_real_aspect_max
 maximum aspect ratio of the grid cell More...
 
real(rp), public atmos_grid_cartesc_real_aspect_min
 minimum aspect ratio of the grid cell More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_phi
 geopotential [m2/s2] (cell center) More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_area
 horizontal area ( xy, normal z) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuy_x
 virtical area (zuy, normal x) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxv_y
 virtical area (zxv, normal y) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areawuy_x
 virtical area (wuy, normal x) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areawxv_y
 virtical area (wxv, normal y) [m2] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_areauy
 horizontal area ( uy, normal z) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxy_x
 virtical area (zxy, normal x) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuv_y
 virtical area (zuv, normal y) [m2] More...
 
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_areaxv
 horizontal area ( xv, normal z) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuv_x
 virtical area (zuv, normal x) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxy_y
 virtical area (zxy, normal y) [m2] More...
 
real(rp), public atmos_grid_cartesc_real_totarea
 total area (xy, local) [m2] More...
 
real(rp), public atmos_grid_cartesc_real_totareauy
 total area (uy, local) [m2] More...
 
real(rp), public atmos_grid_cartesc_real_totareaxv
 total area (xv, local) [m2] More...
 
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_real_totareazuy_x
 total area (zuy, normal x) [m2] More...
 
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_real_totareazxv_y
 total area (zxv, normal y) [m2] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
 control volume (zxy) [m3] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volwxy
 control volume (wxy) [m3] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzuy
 control volume (zuy) [m3] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzxv
 control volume (zxv) [m3] More...
 
real(rp), public atmos_grid_cartesc_real_totvol
 total volume (zxy, local) [m3] More...
 
real(rp), public atmos_grid_cartesc_real_totvolwxy
 total volume (wxy, local) [m3] More...
 
real(rp), public atmos_grid_cartesc_real_totvolzuy
 total volume (zuy, local) [m3] More...
 
real(rp), public atmos_grid_cartesc_real_totvolzxv
 total volume (zxv, local) [m3] More...
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_domain_catalogue
 domain latlon catalogue [rad] More...
 

Detailed Description

module Atmosphere GRID CartesC Real(real space)

Description
Grid module for orthogonal curvelinear, terrain-following coordinate
Author
Team SCALE
NAMELIST
  • PARAM_DOMAIN_CATALOGUE
    nametypedefault valuecomment
    DOMAIN_CATALOGUE_FNAME character(len=H_LONG) 'latlon_domain_catalogue.txt' metadata files for lat-lon domain for all processes
    DOMAIN_CATALOGUE_OUTPUT logical .false.

History Output
No history output

Function/Subroutine Documentation

◆ atmos_grid_cartesc_real_setup()

subroutine, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_setup

Setup.

Definition at line 109 of file scale_atmos_grid_cartesC_real.F90.

109  use scale_prc, only: &
110  prc_nprocs, &
111  prc_abort
112  use scale_atmos_grid_cartesc, only: &
113  atmos_grid_cartesc_domain_center_x, &
114  atmos_grid_cartesc_domain_center_y, &
115  atmos_grid_cartesc_cz, &
116  atmos_grid_cartesc_fz
117  use scale_topography, only: &
119  use scale_mapprojection, only: &
121  use scale_interp_vert, only: &
123  implicit none
124 
125  character(len=H_LONG) :: DOMAIN_CATALOGUE_FNAME = 'latlon_domain_catalogue.txt'
126  logical :: DOMAIN_CATALOGUE_OUTPUT = .false.
127 
128  namelist / param_domain_catalogue / &
129  domain_catalogue_fname, &
130  domain_catalogue_output
131 
132  integer :: ierr
133  !---------------------------------------------------------------------------
134 
135  log_newline
136  log_info("ATMOS_GRID_CARTESC_REAL_setup",*) 'Setup'
137 
138  !--- read namelist
139  rewind(io_fid_conf)
140  read(io_fid_conf,nml=param_domain_catalogue,iostat=ierr)
141  if( ierr < 0 ) then !--- missing
142  log_info("ATMOS_GRID_CARTESC_REAL_setup",*) 'Not found namelist. Default used.'
143  elseif( ierr > 0 ) then !--- fatal error
144  log_error("ATMOS_GRID_CARTESC_REAL_setup",*) 'Not appropriate names in namelist PARAM_DOMAIN_CATALOGUE. Check!'
145  call prc_abort
146  endif
147  log_nml(param_domain_catalogue)
148 
149  allocate( atmos_grid_cartesc_real_lon( ia, ja) )
150  allocate( atmos_grid_cartesc_real_lat( ia, ja) )
151  allocate( atmos_grid_cartesc_real_lonuy(0:ia, ja) )
152  allocate( atmos_grid_cartesc_real_lonxv( ia,0:ja) )
153  allocate( atmos_grid_cartesc_real_lonuv(0:ia,0:ja) )
154  allocate( atmos_grid_cartesc_real_latuy(0:ia, ja) )
155  allocate( atmos_grid_cartesc_real_latxv( ia,0:ja) )
156  allocate( atmos_grid_cartesc_real_latuv(0:ia,0:ja) )
157  allocate( atmos_grid_cartesc_real_dlon( ia, ja) )
158  allocate( atmos_grid_cartesc_real_dlat( ia, ja) )
159 
160  allocate( atmos_grid_cartesc_real_cz( ka,ia,ja) )
161  allocate( atmos_grid_cartesc_real_czuy( ka,ia,ja) )
162  allocate( atmos_grid_cartesc_real_czxv( ka,ia,ja) )
163  allocate( atmos_grid_cartesc_real_czuv( ka,ia,ja) )
164  allocate( atmos_grid_cartesc_real_fz(0:ka,ia,ja) )
165  allocate( atmos_grid_cartesc_real_fzuy(0:ka,ia,ja) )
166  allocate( atmos_grid_cartesc_real_fzxv(0:ka,ia,ja) )
167  allocate( atmos_grid_cartesc_real_fzuv(0:ka,ia,ja) )
168  allocate( atmos_grid_cartesc_real_f2h(ka,2,ia,ja) )
169  allocate( atmos_grid_cartesc_real_z1( ia,ja) )
170  allocate( atmos_grid_cartesc_real_phi( ka,ia,ja) )
171 
172  allocate( atmos_grid_cartesc_real_area( ia,ja) )
173  allocate( atmos_grid_cartesc_real_areazuy_x(ka ,ia,ja) )
174  allocate( atmos_grid_cartesc_real_areazxv_y(ka ,ia,ja) )
175  allocate( atmos_grid_cartesc_real_areawuy_x(ka+1,ia,ja) )
176  allocate( atmos_grid_cartesc_real_areawxv_y(ka+1,ia,ja) )
177  allocate( atmos_grid_cartesc_real_areauy( ia,ja) )
178  allocate( atmos_grid_cartesc_real_areazxy_x(ka, ia,ja) )
179  allocate( atmos_grid_cartesc_real_areazuv_y(ka, ia,ja) )
180  allocate( atmos_grid_cartesc_real_areaxv( ia,ja) )
181  allocate( atmos_grid_cartesc_real_areazuv_x(ka, ia,ja) )
182  allocate( atmos_grid_cartesc_real_areazxy_y(ka, ia,ja) )
183 
184  allocate( atmos_grid_cartesc_real_totareazuy_x(ia) )
185  allocate( atmos_grid_cartesc_real_totareazxv_y(ja) )
186 
187  allocate( atmos_grid_cartesc_real_vol( ka,ia,ja) )
188  allocate( atmos_grid_cartesc_real_volwxy(0:ka,ia,ja) )
189  allocate( atmos_grid_cartesc_real_volzuy( ka,ia,ja) )
190  allocate( atmos_grid_cartesc_real_volzxv( ka,ia,ja) )
191 
192  allocate( atmos_grid_cartesc_real_domain_catalogue(prc_nprocs,2,2) )
193 
194  ! setup map projection
195  call mapprojection_setup( atmos_grid_cartesc_domain_center_x, atmos_grid_cartesc_domain_center_y )
196 
197  ! calc longitude & latitude
198  call atmos_grid_cartesc_real_calc_latlon( domain_catalogue_fname, domain_catalogue_output )
199 
200  ! calc real height
201  call atmos_grid_cartesc_real_calc_z
202 
203  call interp_vert_setcoef( ka, ks, ke, ia, 1, ia, ja, 1, ja, & ! [IN]
204  topography_exist, & ! [IN]
205  atmos_grid_cartesc_cz(:), & ! [IN]
206  atmos_grid_cartesc_fz(:), & ! [IN]
207  atmos_grid_cartesc_real_cz(:,:,:), & ! [IN]
208  atmos_grid_cartesc_real_fz(:,:,:) ) ! [IN]
209 
210  return

References scale_atmos_grid_cartesc::atmos_grid_cartesc_cx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cz, scale_atmos_grid_cartesc::atmos_grid_cartesc_domain_center_x, scale_atmos_grid_cartesc::atmos_grid_cartesc_domain_center_y, scale_atmos_grid_cartesc::atmos_grid_cartesc_fx, scale_atmos_grid_cartesc::atmos_grid_cartesc_fy, scale_atmos_grid_cartesc::atmos_grid_cartesc_fz, atmos_grid_cartesc_real_area, atmos_grid_cartesc_real_areauy, atmos_grid_cartesc_real_areawuy_x, atmos_grid_cartesc_real_areawxv_y, atmos_grid_cartesc_real_areaxv, atmos_grid_cartesc_real_areazuv_x, atmos_grid_cartesc_real_areazuv_y, atmos_grid_cartesc_real_areazuy_x, atmos_grid_cartesc_real_areazxv_y, atmos_grid_cartesc_real_areazxy_x, atmos_grid_cartesc_real_areazxy_y, atmos_grid_cartesc_real_basepoint_lat, atmos_grid_cartesc_real_basepoint_lon, atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_cz, atmos_grid_cartesc_real_czuv, atmos_grid_cartesc_real_czuy, atmos_grid_cartesc_real_czxv, atmos_grid_cartesc_real_dlat, atmos_grid_cartesc_real_dlon, atmos_grid_cartesc_real_domain_catalogue, atmos_grid_cartesc_real_f2h, atmos_grid_cartesc_real_fz, atmos_grid_cartesc_real_fzuv, atmos_grid_cartesc_real_fzuy, atmos_grid_cartesc_real_fzxv, atmos_grid_cartesc_real_lat, atmos_grid_cartesc_real_latuv, atmos_grid_cartesc_real_latuy, atmos_grid_cartesc_real_latxv, atmos_grid_cartesc_real_lon, atmos_grid_cartesc_real_lonuv, atmos_grid_cartesc_real_lonuy, atmos_grid_cartesc_real_lonxv, atmos_grid_cartesc_real_phi, atmos_grid_cartesc_real_totareazuy_x, atmos_grid_cartesc_real_totareazxv_y, atmos_grid_cartesc_real_vol, atmos_grid_cartesc_real_volwxy, atmos_grid_cartesc_real_volzuy, atmos_grid_cartesc_real_volzxv, atmos_grid_cartesc_real_z1, scale_const::const_d2r, scale_const::const_pi, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_interp_vert::interp_vert_setcoef(), scale_io::io_fid_conf, scale_io::io_get_available_fid(), scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, scale_mapprojection::mapprojection_basepoint_lat, scale_mapprojection::mapprojection_basepoint_lon, scale_mapprojection::mapprojection_setup(), scale_prc::prc_abort(), scale_prc::prc_ismaster, scale_prc::prc_nprocs, and scale_topography::topography_exist.

Referenced by mod_rm_driver::rm_driver(), and mod_rm_prep::rm_prep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ atmos_grid_cartesc_real_calc_z()

subroutine, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_calc_z

Convert Xi to Z coordinate.

Definition at line 372 of file scale_atmos_grid_cartesC_real.F90.

372  use scale_const, only: &
373  grav => const_grav
374  use scale_atmos_grid_cartesc, only: &
375  atmos_grid_cartesc_cz, &
376  atmos_grid_cartesc_fz, &
377  atmos_grid_cartesc_cdx, &
378  atmos_grid_cartesc_cdy
379  use scale_file_cartesc, only: &
381  use scale_topography, only: &
382  zsfc => topography_zsfc
383  use scale_landuse, only: &
385  implicit none
386 
387  real(DP) :: Htop
388  real(RP) :: Zs
389  real(RP) :: DFZ
390 
391  real(RP) :: dz1, dz2
392 
393  integer :: k, i, j
394  !---------------------------------------------------------------------------
395 
396  htop = atmos_grid_cartesc_fz(ke) - atmos_grid_cartesc_fz(ks-1)
397 
398  !$omp parallel do private(zs) collapse(2)
399  do j = 1, ja
400  do i = 1, ia
401  zs = zsfc(i,j)
402  do k = 1, ka
403  atmos_grid_cartesc_real_cz(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
404  enddo
405  enddo
406  enddo
407 
408  !$omp parallel do private(zs) collapse(2)
409  do j = 1, ja
410  do i = 1, ia-1
411  zs = ( zsfc(i,j) + zsfc(i+1,j) ) * 0.5_rp
412  do k = 1, ka
413  atmos_grid_cartesc_real_czuy(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
414  enddo
415  enddo
416  enddo
417  !$omp parallel do private(zs)
418  do j = 1, ja
419  zs = zsfc(ia,j)
420  do k = 1, ka
421  atmos_grid_cartesc_real_czuy(k,ia,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
422  enddo
423  enddo
424 
425  !$omp parallel do private(zs) collapse(2)
426  do j = 1, ja-1
427  do i = 1, ia
428  zs = ( zsfc(i,j) + zsfc(i,j+1) ) * 0.5_rp
429  do k = 1, ka
430  atmos_grid_cartesc_real_czxv(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
431  enddo
432  enddo
433  enddo
434  do i = 1, ia
435  zs = zsfc(i,ja)
436  do k = 1, ka
437  atmos_grid_cartesc_real_czxv(k,i,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
438  enddo
439  enddo
440 
441  !$omp parallel do private(zs) collapse(2)
442  do j = 1, ja-1
443  do i = 1, ia-1
444  zs = ( zsfc(i,j) + zsfc(i+1,j) + zsfc(i,j+1) + zsfc(i+1,j+1) ) * 0.25_rp
445  do k = 1, ka
446  atmos_grid_cartesc_real_czuv(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
447  enddo
448  enddo
449  enddo
450  !$omp parallel do private(zs)
451  do j = 1, ja-1
452  zs = ( zsfc(ia,j) + zsfc(ia,j+1) ) * 0.5_rp
453  do k = 1, ka
454  atmos_grid_cartesc_real_czuv(k,ia,j) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
455  enddo
456  enddo
457  do i = 1, ia-1
458  zs = ( zsfc(i,ja) + zsfc(i+1,ja) ) * 0.5_rp
459  do k = 1, ka
460  atmos_grid_cartesc_real_czuv(k,i,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
461  enddo
462  enddo
463  zs = zsfc(ia,ja)
464  do k = 1, ka
465  atmos_grid_cartesc_real_czuv(k,ia,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_cz(k) + zs
466  enddo
467 
468 
469  !$omp parallel do private(zs) collapse(2)
470  do j = 1, ja
471  do i = 1, ia
472  zs = zsfc(i,j)
473  do k = 0, ka
474  atmos_grid_cartesc_real_fz(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
475  end do
476  end do
477  end do
478 
479  !$omp parallel do private(zs) collapse(2)
480  do j = 1, ja
481  do i = 1, ia-1
482  zs = ( zsfc(i,j) + zsfc(i+1,j) ) * 0.5_rp
483  do k = 0, ka
484  atmos_grid_cartesc_real_fzuy(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
485  end do
486  end do
487  end do
488  !$omp parallel do private(zs)
489  do j = 1, ja
490  zs = zsfc(ia,j)
491  do k = 0, ka
492  atmos_grid_cartesc_real_fzuy(k,ia,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
493  end do
494  end do
495 
496  !$omp parallel do private(zs) collapse(2)
497  do j = 1, ja-1
498  do i = 1, ia
499  zs = ( zsfc(i,j) + zsfc(i,j+1) ) * 0.5_rp
500  do k = 0, ka
501  atmos_grid_cartesc_real_fzxv(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
502  enddo
503  enddo
504  enddo
505  !$omp parallel do private(zs)
506  do i = 1, ia
507  zs = zsfc(i,ja)
508  do k = 0, ka
509  atmos_grid_cartesc_real_fzxv(k,i,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
510  enddo
511  enddo
512 
513  !$omp parallel do private(zs) collapse(2)
514  do j = 1, ja-1
515  do i = 1, ia-1
516  zs = ( zsfc(i,j) + zsfc(i+1,j) + zsfc(i,j+1) + zsfc(i+1,j+1) ) * 0.25_rp
517  do k = 0, ka
518  atmos_grid_cartesc_real_fzuv(k,i,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
519  enddo
520  enddo
521  enddo
522  !$omp parallel do private(zs)
523  do j = 1, ja-1
524  zs = ( zsfc(ia,j) + zsfc(ia,j+1) ) * 0.5_rp
525  do k = 0, ka
526  atmos_grid_cartesc_real_fzuv(k,ia,j) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
527  enddo
528  enddo
529  !$omp parallel do private(zs)
530  do i = 1, ia-1
531  zs = ( zsfc(i,ja) + zsfc(i+1,ja) ) * 0.5_rp
532  do k = 0, ka
533  atmos_grid_cartesc_real_fzuv(k,i,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
534  enddo
535  enddo
536  zs = zsfc(ia,ja)
537  do k = 0, ka
538  atmos_grid_cartesc_real_fzuv(k,ia,ja) = ( htop - zs ) / htop * atmos_grid_cartesc_fz(k) + zs
539  enddo
540 
541  !$omp parallel do private(dz1,dz2) collapse(2)
542  do j = 1, ja
543  do i = 1, ia
544  do k = ks, ke-1
545  dz1 = atmos_grid_cartesc_real_fz(k+1,i,j) - atmos_grid_cartesc_real_fz(k ,i,j)
546  dz2 = atmos_grid_cartesc_real_fz(k ,i,j) - atmos_grid_cartesc_real_fz(k-1,i,j)
547  atmos_grid_cartesc_real_f2h(k,1,i,j) = dz2 / ( dz1 + dz2 )
548  atmos_grid_cartesc_real_f2h(k,2,i,j) = dz1 / ( dz1 + dz2 )
549  end do
550  atmos_grid_cartesc_real_f2h(1:ks-1,1,i,j) = 0.5_rp
551  atmos_grid_cartesc_real_f2h(1:ks-1,2,i,j) = 0.5_rp
552  atmos_grid_cartesc_real_f2h(ke:ka ,1,i,j) = 0.5_rp
553  atmos_grid_cartesc_real_f2h(ke:ka ,2,i,j) = 0.5_rp
554  end do
555  end do
556 
557 
558  !$omp workshare
559 !OCL ZFILL
560  atmos_grid_cartesc_real_z1(:,:) = atmos_grid_cartesc_real_cz(ks,:,:) - zsfc(:,:)
561 
562 !OCL ZFILL
563  atmos_grid_cartesc_real_phi(:,:,:) = grav * atmos_grid_cartesc_real_cz(:,:,:)
564  !$omp end workshare
565 
566  atmos_grid_cartesc_real_aspect_max = -1.e+30_rp
567  atmos_grid_cartesc_real_aspect_min = 1.e+30_rp
568 
569  !$omp parallel do private(dfz) collapse(2) &
570  !$omp reduction(max:ATMOS_GRID_CARTESC_REAL_ASPECT_MAX) &
571  !$omp reduction(min:ATMOS_GRID_CARTESC_REAL_ASPECT_MIN)
572  do j = js, je
573  do i = is, ie
574  do k = ks, ke
575  dfz = atmos_grid_cartesc_real_fz(k,i,j) - atmos_grid_cartesc_real_fz(k-1,i,j)
576  atmos_grid_cartesc_real_aspect_max = max( atmos_grid_cartesc_real_aspect_max, atmos_grid_cartesc_cdx(i) / dfz, atmos_grid_cartesc_cdy(j) / dfz )
577  atmos_grid_cartesc_real_aspect_min = min( atmos_grid_cartesc_real_aspect_min, atmos_grid_cartesc_cdx(i) / dfz, atmos_grid_cartesc_cdy(j) / dfz )
578  enddo
579  enddo
580  enddo
581 
582  log_newline
583  log_info("ATMOS_GRID_CARTESC_REAL_calc_Z",*) 'Minimum & maximum lowermost CZ'
584  log_info_cont(*) '-> (',minval( atmos_grid_cartesc_real_cz(ks,:,:) ),',',maxval( atmos_grid_cartesc_real_cz(ks,:,:) ),')'
585  log_info("ATMOS_GRID_CARTESC_REAL_calc_Z",*) 'Minimum & maximum aspect ratio'
586  log_info_cont(*) '-> (',atmos_grid_cartesc_real_aspect_min,',',atmos_grid_cartesc_real_aspect_max,')'
587 
588  ! set latlon and z to fileio module
589  call file_cartesc_set_coordinates_atmos( atmos_grid_cartesc_real_cz, atmos_grid_cartesc_real_fz, & ! [IN]
590  atmos_grid_cartesc_real_lon, atmos_grid_cartesc_real_lonuy, atmos_grid_cartesc_real_lonxv, atmos_grid_cartesc_real_lonuv, & ! [IN]
591  atmos_grid_cartesc_real_lat, atmos_grid_cartesc_real_latuy, atmos_grid_cartesc_real_latxv, atmos_grid_cartesc_real_latuv, & ! [IN]
592  zsfc, landuse_frac_land ) ! [IN]
593 
594  return

References scale_atmos_grid_cartesc::atmos_grid_cartesc_cdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cz, scale_atmos_grid_cartesc::atmos_grid_cartesc_fz, atmos_grid_cartesc_real_aspect_max, atmos_grid_cartesc_real_aspect_min, atmos_grid_cartesc_real_cz, atmos_grid_cartesc_real_czuv, atmos_grid_cartesc_real_czuy, atmos_grid_cartesc_real_czxv, atmos_grid_cartesc_real_f2h, atmos_grid_cartesc_real_fz, atmos_grid_cartesc_real_fzuv, atmos_grid_cartesc_real_fzuy, atmos_grid_cartesc_real_fzxv, atmos_grid_cartesc_real_lat, atmos_grid_cartesc_real_latuv, atmos_grid_cartesc_real_latuy, atmos_grid_cartesc_real_latxv, atmos_grid_cartesc_real_lon, atmos_grid_cartesc_real_lonuv, atmos_grid_cartesc_real_lonuy, atmos_grid_cartesc_real_lonxv, atmos_grid_cartesc_real_phi, atmos_grid_cartesc_real_z1, scale_const::const_grav, scale_file_cartesc::file_cartesc_set_coordinates_atmos(), scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_tracer::k, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, scale_landuse::landuse_frac_land, and scale_topography::topography_zsfc.

Referenced by atmos_grid_cartesc_real_setup(), and mod_rm_prep::rm_prep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ atmos_grid_cartesc_real_calc_areavol()

subroutine, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_calc_areavol ( real(rp), dimension(ia,ja,2,4), intent(in)  MAPF)

Calc control area/volume.

Definition at line 601 of file scale_atmos_grid_cartesC_real.F90.

601  use scale_prc_cartesc, only: &
602  prc_twod
603  use scale_atmos_grid_cartesc, only: &
604  atmos_grid_cartesc_cdx, &
605  atmos_grid_cartesc_fdx, &
606  atmos_grid_cartesc_cdy, &
607  atmos_grid_cartesc_fdy
608  use scale_comm_cartesc, only: &
609  comm_vars8, &
610  comm_wait
611  use scale_file_cartesc, only: &
613  use scale_topography, only: &
615  use scale_landuse, only: &
617  implicit none
618 
619  real(RP), intent(in) :: MAPF(IA,JA,2,4)
620 
621  real(RP) :: AREAUV(IA,JA)
622 
623  integer :: k, i, j
624  !---------------------------------------------------------------------------
625 
626  atmos_grid_cartesc_real_area(:,:) = 0.0_rp
627  atmos_grid_cartesc_real_areazuy_x(:,:,:) = 0.0_rp
628  atmos_grid_cartesc_real_areazxv_y(:,:,:) = 0.0_rp
629  atmos_grid_cartesc_real_areawuy_x(:,:,:) = 0.0_rp
630  atmos_grid_cartesc_real_areawxv_y(:,:,:) = 0.0_rp
631  atmos_grid_cartesc_real_areauy(:,:) = 0.0_rp
632  atmos_grid_cartesc_real_areazxy_x(:,:,:) = 0.0_rp
633  atmos_grid_cartesc_real_areazuv_y(:,:,:) = 0.0_rp
634  atmos_grid_cartesc_real_areaxv(:,:) = 0.0_rp
635  atmos_grid_cartesc_real_areazuv_y(:,:,:) = 0.0_rp
636  atmos_grid_cartesc_real_areazxy_y(:,:,:) = 0.0_rp
637 
638  atmos_grid_cartesc_real_totarea = 0.0_rp
639  atmos_grid_cartesc_real_totareauy = 0.0_rp
640  atmos_grid_cartesc_real_totareaxv = 0.0_rp
641  atmos_grid_cartesc_real_totareazuy_x(:) = 0.0_rp
642  atmos_grid_cartesc_real_totareazxv_y(:) = 0.0_rp
643 
644  atmos_grid_cartesc_real_vol(:,:,:) = 0.0_rp
645  atmos_grid_cartesc_real_volwxy(:,:,:) = 0.0_rp
646  atmos_grid_cartesc_real_volzuy(:,:,:) = 0.0_rp
647  atmos_grid_cartesc_real_volzxv(:,:,:) = 0.0_rp
648  atmos_grid_cartesc_real_totvol = 0.0_rp
649  atmos_grid_cartesc_real_totvolwxy = 0.0_rp
650  atmos_grid_cartesc_real_totvolzuy = 0.0_rp
651  atmos_grid_cartesc_real_totvolzxv = 0.0_rp
652 
653  !$omp parallel do
654  do j = js, je
655  do i = is, ie
656  atmos_grid_cartesc_real_area(i,j) = atmos_grid_cartesc_cdx(i) * atmos_grid_cartesc_cdy(j) / ( mapf(i,j,1,i_xy) * mapf(i,j,2,i_xy) )
657  atmos_grid_cartesc_real_areaxv(i,j) = atmos_grid_cartesc_cdx(i) * atmos_grid_cartesc_fdy(j) / ( mapf(i,j,1,i_xv) * mapf(i,j,2,i_xv) )
658  end do
659  end do
660  if ( prc_twod ) then
661  !$omp parallel do
662  do j = js, je
663  do i = is, ie
664  atmos_grid_cartesc_real_areauy(i,j) = atmos_grid_cartesc_real_area(i,j)
665  areauv(i,j) = atmos_grid_cartesc_real_areaxv(i,j)
666 
667  end do
668  end do
669  else
670  !$omp parallel do
671  do j = js, je
672  do i = is, ie
673  atmos_grid_cartesc_real_areauy(i,j) = atmos_grid_cartesc_fdx(i) * atmos_grid_cartesc_cdy(j) / ( mapf(i,j,1,i_uy) * mapf(i,j,2,i_uy) )
674  areauv(i,j) = atmos_grid_cartesc_fdx(i) * atmos_grid_cartesc_fdy(j) / ( mapf(i,j,1,i_uv) * mapf(i,j,2,i_uv) )
675 
676  end do
677  end do
678  end if
679 
680  call comm_vars8( atmos_grid_cartesc_real_area(:,:), 1 )
681  call comm_vars8( atmos_grid_cartesc_real_areaxv(:,:), 2 )
682  call comm_vars8( atmos_grid_cartesc_real_areauy(:,:), 3 )
683  call comm_vars8( areauv(:,:), 4 )
684 
685  !$omp parallel do &
686  !$omp reduction(+:ATMOS_GRID_CARTESC_REAL_TOTAREA,ATMOS_GRID_CARTESC_REAL_TOTAREAXV,ATMOS_GRID_CARTESC_REAL_TOTAREAUY)
687  do j = js, je
688  do i = is, ie
689  atmos_grid_cartesc_real_totarea = atmos_grid_cartesc_real_totarea + atmos_grid_cartesc_real_area(i,j)
690  atmos_grid_cartesc_real_totareaxv = atmos_grid_cartesc_real_totareaxv + atmos_grid_cartesc_real_areaxv(i,j)
691  atmos_grid_cartesc_real_totareauy = atmos_grid_cartesc_real_totareauy + atmos_grid_cartesc_real_areauy(i,j)
692  end do
693  end do
694 
695  !$omp parallel do collapse(2)
696  do j = 1, ja
697  do i = 1, ia
698  do k = ks, ke
699  atmos_grid_cartesc_real_areazxv_y(k,i,j) = atmos_grid_cartesc_cdx(i) / mapf(i,j,1,i_xv) * ( atmos_grid_cartesc_real_fzxv(k,i,j) - atmos_grid_cartesc_real_fzxv(k-1,i,j) )
700  end do
701  do k = ks-1, ke
702  atmos_grid_cartesc_real_areawxv_y(k,i,j) = atmos_grid_cartesc_cdx(i) / mapf(i,j,1,i_xv) * ( atmos_grid_cartesc_real_czxv(k+1,i,j) - atmos_grid_cartesc_real_czxv(k,i,j) )
703  end do
704  do k = ks, ke
705  atmos_grid_cartesc_real_areazxy_x(k,i,j) = atmos_grid_cartesc_cdy(j) / mapf(i,j,2,i_xy) * ( atmos_grid_cartesc_real_fz(k,i,j) - atmos_grid_cartesc_real_fz(k-1,i,j) )
706  atmos_grid_cartesc_real_areazxy_y(k,i,j) = atmos_grid_cartesc_cdx(i) / mapf(i,j,1,i_xy) * ( atmos_grid_cartesc_real_fz(k,i,j) - atmos_grid_cartesc_real_fz(k-1,i,j) )
707  end do
708  end do
709  end do
710 
711  if ( .not. prc_twod ) then
712  !$omp parallel do collapse(2)
713  do j = 1, ja
714  do i = 1, ia
715  do k = ks, ke
716  atmos_grid_cartesc_real_areazuy_x(k,i,j) = atmos_grid_cartesc_cdy(j) / mapf(i,j,2,i_uy) * ( atmos_grid_cartesc_real_fzuy(k,i,j) - atmos_grid_cartesc_real_fzuy(k-1,i,j) )
717  end do
718  do k = ks-1, ke
719  atmos_grid_cartesc_real_areawuy_x(k,i,j) = atmos_grid_cartesc_cdy(j) / mapf(i,j,2,i_uy) * ( atmos_grid_cartesc_real_czuy(k+1,i,j) - atmos_grid_cartesc_real_czuy(k,i,j) )
720  end do
721  do k = ks, ke
722  atmos_grid_cartesc_real_areazuv_y(k,i,j) = atmos_grid_cartesc_cdx(i) / mapf(i,j,1,i_uv) * ( atmos_grid_cartesc_real_fzuv(k,i,j) - atmos_grid_cartesc_real_fzuv(k-1,i,j) )
723  atmos_grid_cartesc_real_areazuv_x(k,i,j) = atmos_grid_cartesc_cdy(j) / mapf(i,j,2,i_uv) * ( atmos_grid_cartesc_real_fzuv(k,i,j) - atmos_grid_cartesc_real_fzuv(k-1,i,j) )
724  end do
725  end do
726  end do
727  end if
728 
729  call comm_wait( atmos_grid_cartesc_real_area(:,:), 1 )
730  call comm_wait( atmos_grid_cartesc_real_areaxv(:,:), 2 )
731  call comm_wait( atmos_grid_cartesc_real_areauy(:,:), 3 )
732  call comm_wait( areauv(:,:), 4 )
733 
734 
735  !$omp parallel do collapse(2)
736  do j = 1, ja
737  do i = is, ie
738  do k = ks, ke
739  atmos_grid_cartesc_real_totareazxv_y(j) = atmos_grid_cartesc_real_totareazxv_y(j) + atmos_grid_cartesc_real_areazxv_y(k,i,j)
740  end do
741  end do
742  end do
743  !$omp parallel do collapse(2)
744  do j = js, je
745  do i = 1, ia
746  do k = ks, ke
747  atmos_grid_cartesc_real_totareazuy_x(i) = atmos_grid_cartesc_real_totareazuy_x(i) + atmos_grid_cartesc_real_areazuy_x(k,i,j)
748  end do
749  end do
750  end do
751 
752 
753  !$omp parallel do collapse(2)
754  do j = 1, ja
755  do i = 1, ia
756  do k = ks, ke
757  atmos_grid_cartesc_real_vol(k,i,j) = ( atmos_grid_cartesc_real_fz(k,i,j) - atmos_grid_cartesc_real_fz(k-1,i,j) ) * atmos_grid_cartesc_real_area(i,j)
758  atmos_grid_cartesc_real_volzxv(k,i,j) = ( atmos_grid_cartesc_real_fzxv(k,i,j) - atmos_grid_cartesc_real_fzxv(k-1,i,j) ) * atmos_grid_cartesc_real_areaxv(i,j)
759  end do
760  do k = ks-1, ke
761  atmos_grid_cartesc_real_volwxy(k,i,j) = ( atmos_grid_cartesc_real_cz(k+1,i,j) - atmos_grid_cartesc_real_cz(k,i,j) ) * atmos_grid_cartesc_real_area(i,j)
762  end do
763  end do
764  end do
765  if ( prc_twod ) then
766  !$omp parallel do collapse(2)
767  do j = 1, ja
768  do i = 1, ia
769  do k = ks, ke
770  atmos_grid_cartesc_real_volzuy(k,i,j) = atmos_grid_cartesc_real_vol(k,i,j)
771  end do
772  end do
773  end do
774  else
775  !$omp parallel do collapse(2)
776  do j = 1, ja
777  do i = 1, ia
778  do k = ks, ke
779  atmos_grid_cartesc_real_volzuy(k,i,j) = ( atmos_grid_cartesc_real_fzuy(k,i,j) - atmos_grid_cartesc_real_fzuy(k-1,i,j) ) * atmos_grid_cartesc_real_areauy(i,j)
780  end do
781  end do
782  end do
783  end if
784 
785  !$omp parallel do &
786  !$omp reduction(+:ATMOS_GRID_CARTESC_REAL_TOTVOL,ATMOS_GRID_CARTESC_REAL_TOTVOLZXV,ATMOS_GRID_CARTESC_REAL_TOTVOLWXY,ATMOS_GRID_CARTESC_REAL_TOTVOLZUY)
787  do j = js, je
788  do i = is, ie
789  do k = ks, ke
790  atmos_grid_cartesc_real_totvol = atmos_grid_cartesc_real_totvol + atmos_grid_cartesc_real_vol(k,i,j)
791  atmos_grid_cartesc_real_totvolzxv = atmos_grid_cartesc_real_totvolzxv + atmos_grid_cartesc_real_volzxv(k,i,j)
792  atmos_grid_cartesc_real_totvolwxy = atmos_grid_cartesc_real_totvolwxy + atmos_grid_cartesc_real_volwxy(k,i,j)
793  atmos_grid_cartesc_real_totvolzuy = atmos_grid_cartesc_real_totvolzuy + atmos_grid_cartesc_real_volzuy(k,i,j)
794  enddo
795  enddo
796  enddo
797 
798  ! set latlon and z to fileio module
799  call file_cartesc_set_areavol_atmos( atmos_grid_cartesc_real_area, atmos_grid_cartesc_real_areazuy_x, atmos_grid_cartesc_real_areazxv_y, & ! [IN]
800  atmos_grid_cartesc_real_areawuy_x, atmos_grid_cartesc_real_areawxv_y, & ! [IN]
801  atmos_grid_cartesc_real_areauy, atmos_grid_cartesc_real_areazxy_x, atmos_grid_cartesc_real_areazuv_y, & ! [IN]
802  atmos_grid_cartesc_real_areaxv, atmos_grid_cartesc_real_areazuv_x, atmos_grid_cartesc_real_areazxy_y, & ! [IN]
803  atmos_grid_cartesc_real_vol, atmos_grid_cartesc_real_volwxy, atmos_grid_cartesc_real_volzuy, atmos_grid_cartesc_real_volzxv ) ! [IN]
804 
805  return

References scale_atmos_grid_cartesc::atmos_grid_cartesc_cdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdy, atmos_grid_cartesc_real_area, atmos_grid_cartesc_real_areauy, atmos_grid_cartesc_real_areawuy_x, atmos_grid_cartesc_real_areawxv_y, atmos_grid_cartesc_real_areaxv, atmos_grid_cartesc_real_areazuv_x, atmos_grid_cartesc_real_areazuv_y, atmos_grid_cartesc_real_areazuy_x, atmos_grid_cartesc_real_areazxv_y, atmos_grid_cartesc_real_areazxy_x, atmos_grid_cartesc_real_areazxy_y, atmos_grid_cartesc_real_cz, atmos_grid_cartesc_real_czuy, atmos_grid_cartesc_real_czxv, atmos_grid_cartesc_real_fz, atmos_grid_cartesc_real_fzuv, atmos_grid_cartesc_real_fzuy, atmos_grid_cartesc_real_fzxv, atmos_grid_cartesc_real_totarea, atmos_grid_cartesc_real_totareauy, atmos_grid_cartesc_real_totareaxv, atmos_grid_cartesc_real_totareazuy_x, atmos_grid_cartesc_real_totareazxv_y, atmos_grid_cartesc_real_totvol, atmos_grid_cartesc_real_totvolwxy, atmos_grid_cartesc_real_totvolzuy, atmos_grid_cartesc_real_totvolzxv, atmos_grid_cartesc_real_vol, atmos_grid_cartesc_real_volwxy, atmos_grid_cartesc_real_volzuy, atmos_grid_cartesc_real_volzxv, scale_file_cartesc::file_cartesc_set_areavol_atmos(), scale_atmos_grid_cartesc_index::i_uv, scale_atmos_grid_cartesc_index::i_uy, scale_atmos_grid_cartesc_index::i_xv, scale_atmos_grid_cartesc_index::i_xy, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_tracer::k, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, scale_landuse::landuse_frac_land, scale_prc_cartesc::prc_twod, and scale_topography::topography_zsfc.

Referenced by mod_rm_driver::rm_driver(), and mod_rm_prep::rm_prep().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ atmos_grid_cartesc_real_basepoint_lon

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_basepoint_lon

position of base point in real world [rad,0-2pi]

Definition at line 35 of file scale_atmos_grid_cartesC_real.F90.

35  real(RP), public :: ATMOS_GRID_CARTESC_REAL_BASEPOINT_LON

Referenced by mod_atmos_driver::atmos_driver_setup(), scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), and atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_basepoint_lat

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_basepoint_lat

◆ atmos_grid_cartesc_real_cz

real(rp), dimension (:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_cz

◆ atmos_grid_cartesc_real_czuy

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_czuy

geopotential height [m] (zuy)

Definition at line 39 of file scale_atmos_grid_cartesC_real.F90.

39  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_CZUY(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), and scale_spnudge::spnudge_setup().

◆ atmos_grid_cartesc_real_czxv

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_czxv

geopotential height [m] (zxv)

Definition at line 40 of file scale_atmos_grid_cartesC_real.F90.

40  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_CZXV(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), and scale_spnudge::spnudge_setup().

◆ atmos_grid_cartesc_real_czuv

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_czuv

geopotential height [m] (zuv)

Definition at line 41 of file scale_atmos_grid_cartesC_real.F90.

41  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_CZUV(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_z(), and atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_fz

real(rp), dimension (:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_fz

◆ atmos_grid_cartesc_real_fzuy

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_fzuy

geopotential height [m] (wuy)

Definition at line 43 of file scale_atmos_grid_cartesC_real.F90.

43  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_FZUY(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_calc_z(), and atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_fzxv

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_fzxv

geopotential height [m] (wxv)

Definition at line 44 of file scale_atmos_grid_cartesC_real.F90.

44  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_FZXV(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_calc_z(), and atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_fzuv

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_fzuv

geopotential height [m] (wuv)

Definition at line 45 of file scale_atmos_grid_cartesC_real.F90.

45  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_FZUV(:,:,:)

Referenced by scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_rotcoef(), atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_calc_z(), and atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_f2h

real(rp), dimension (:,:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_f2h

coefficient for interpolation from full to half levels

Definition at line 46 of file scale_atmos_grid_cartesC_real.F90.

46  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_F2H (:,:,:,:)

Referenced by atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), and mod_atmos_vars::atmos_vars_get_diagnostic_3d().

◆ atmos_grid_cartesc_real_lon

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lon

◆ atmos_grid_cartesc_real_lonuy

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lonuy

◆ atmos_grid_cartesc_real_lonxv

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lonxv

longitude at staggered point (xv) [rad,0-2pi]

Definition at line 50 of file scale_atmos_grid_cartesC_real.F90.

50  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_LONXV(:,:)

Referenced by atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), scale_comm_cartesc_nest::comm_cartesc_nest_domain_shape(), scale_comm_cartesc_nest::comm_cartesc_nest_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_lonuv

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lonuv

longitude at staggered point (uv) [rad,0-2pi]

Definition at line 51 of file scale_atmos_grid_cartesC_real.F90.

51  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_LONUV(:,:)

Referenced by atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), scale_comm_cartesc_nest::comm_cartesc_nest_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_lat

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lat

◆ atmos_grid_cartesc_real_latuy

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_latuy

◆ atmos_grid_cartesc_real_latxv

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_latxv

◆ atmos_grid_cartesc_real_latuv

real(rp), dimension(:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_latuv

◆ atmos_grid_cartesc_real_dlon

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_dlon

delta longitude

Definition at line 56 of file scale_atmos_grid_cartesC_real.F90.

56  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_DLON (:,:)

Referenced by atmos_grid_cartesc_real_setup().

◆ atmos_grid_cartesc_real_dlat

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_dlat

delta latitude

Definition at line 57 of file scale_atmos_grid_cartesC_real.F90.

57  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_DLAT (:,:)

Referenced by atmos_grid_cartesc_real_setup(), and mod_cnvlanduse::cnvlanduse().

◆ atmos_grid_cartesc_real_z1

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_z1

◆ atmos_grid_cartesc_real_aspect_max

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_aspect_max

maximum aspect ratio of the grid cell

Definition at line 60 of file scale_atmos_grid_cartesC_real.F90.

60  real(RP), public :: ATMOS_GRID_CARTESC_REAL_ASPECT_MAX

Referenced by atmos_grid_cartesc_real_calc_z().

◆ atmos_grid_cartesc_real_aspect_min

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_aspect_min

minimum aspect ratio of the grid cell

Definition at line 61 of file scale_atmos_grid_cartesC_real.F90.

61  real(RP), public :: ATMOS_GRID_CARTESC_REAL_ASPECT_MIN

Referenced by atmos_grid_cartesc_real_calc_z().

◆ atmos_grid_cartesc_real_phi

real(rp), dimension (:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_phi

geopotential [m2/s2] (cell center)

Definition at line 63 of file scale_atmos_grid_cartesC_real.F90.

63  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_PHI (:,:,:)

Referenced by mod_atmos_driver::atmos_driver_setup(), mod_atmos_driver::atmos_driver_update(), mod_atmos_dyn_driver::atmos_dyn_driver(), atmos_grid_cartesc_real_calc_z(), atmos_grid_cartesc_real_setup(), and mod_rm_driver::restart_read().

◆ atmos_grid_cartesc_real_area

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_area

◆ atmos_grid_cartesc_real_areazuy_x

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazuy_x

◆ atmos_grid_cartesc_real_areazxv_y

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazxv_y

virtical area (zxv, normal y) [m2]

Definition at line 67 of file scale_atmos_grid_cartesC_real.F90.

67  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAZXV_Y(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), mod_atmos_bnd_driver::calc_mass(), scale_file_history_cartesc::file_history_cartesc_truncate_3d(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_areawuy_x

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areawuy_x

virtical area (wuy, normal x) [m2]

Definition at line 68 of file scale_atmos_grid_cartesC_real.F90.

68  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAWUY_X(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_areawxv_y

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areawxv_y

virtical area (wxv, normal y) [m2]

Definition at line 69 of file scale_atmos_grid_cartesC_real.F90.

69  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAWXV_Y(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_areauy

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areauy

horizontal area ( uy, normal z) [m2]

Definition at line 70 of file scale_atmos_grid_cartesC_real.F90.

70  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAUY (:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), scale_file_history_cartesc::file_history_cartesc_truncate_3d(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_areazxy_x

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazxy_x

virtical area (zxy, normal x) [m2]

Definition at line 71 of file scale_atmos_grid_cartesC_real.F90.

71  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAZXY_X(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_areazuv_y

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazuv_y

virtical area (zuv, normal y) [m2]

Definition at line 72 of file scale_atmos_grid_cartesC_real.F90.

72  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAZUV_Y(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_areaxv

real(rp), dimension (:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areaxv

horizontal area ( xv, normal z) [m2]

Definition at line 73 of file scale_atmos_grid_cartesC_real.F90.

73  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAXV (:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), scale_file_history_cartesc::file_history_cartesc_truncate_3d(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_areazuv_x

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazuv_x

virtical area (zuv, normal x) [m2]

Definition at line 74 of file scale_atmos_grid_cartesC_real.F90.

74  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAZUV_X(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_areazxy_y

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_areazxy_y

virtical area (zxy, normal y) [m2]

Definition at line 75 of file scale_atmos_grid_cartesC_real.F90.

75  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_AREAZXY_Y(:,:,:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

◆ atmos_grid_cartesc_real_totarea

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totarea

◆ atmos_grid_cartesc_real_totareauy

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totareauy

total area (uy, local) [m2]

Definition at line 78 of file scale_atmos_grid_cartesC_real.F90.

78  real(RP), public :: ATMOS_GRID_CARTESC_REAL_TOTAREAUY

Referenced by atmos_grid_cartesc_real_calc_areavol(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_totareaxv

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totareaxv

total area (xv, local) [m2]

Definition at line 79 of file scale_atmos_grid_cartesC_real.F90.

79  real(RP), public :: ATMOS_GRID_CARTESC_REAL_TOTAREAXV

Referenced by atmos_grid_cartesc_real_calc_areavol(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_totareazuy_x

real(rp), dimension(:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totareazuy_x

total area (zuy, normal x) [m2]

Definition at line 80 of file scale_atmos_grid_cartesC_real.F90.

80  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_TOTAREAZUY_X(:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), mod_atmos_bnd_driver::calc_mass(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_totareazxv_y

real(rp), dimension(:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totareazxv_y

total area (zxv, normal y) [m2]

Definition at line 81 of file scale_atmos_grid_cartesC_real.F90.

81  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_TOTAREAZXV_Y(:)

Referenced by atmos_grid_cartesc_real_calc_areavol(), atmos_grid_cartesc_real_setup(), mod_atmos_bnd_driver::calc_mass(), and scale_monitor_cartesc::monitor_cartesc_setup().

◆ atmos_grid_cartesc_real_vol

real(rp), dimension (:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_vol

◆ atmos_grid_cartesc_real_volwxy

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_volwxy

◆ atmos_grid_cartesc_real_volzuy

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_volzuy

◆ atmos_grid_cartesc_real_volzxv

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_volzxv

◆ atmos_grid_cartesc_real_totvol

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvol

◆ atmos_grid_cartesc_real_totvolwxy

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvolwxy

◆ atmos_grid_cartesc_real_totvolzuy

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvolzuy

◆ atmos_grid_cartesc_real_totvolzxv

real(rp), public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvolzxv

◆ atmos_grid_cartesc_real_domain_catalogue

real(rp), dimension(:,:,:), allocatable, public scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_domain_catalogue

domain latlon catalogue [rad]

Definition at line 92 of file scale_atmos_grid_cartesC_real.F90.

92  real(RP), public, allocatable :: ATMOS_GRID_CARTESC_REAL_DOMAIN_CATALOGUE(:,:,:)

Referenced by atmos_grid_cartesc_real_setup(), and scale_comm_cartesc_nest::comm_cartesc_nest_domain_shape().

scale_const::const_grav
real(rp), public const_grav
standard acceleration of gravity [m/s2]
Definition: scale_const.F90:46
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_topography
module TOPOGRAPHY
Definition: scale_topography.F90:11
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lon
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lon
longitude [rad,0-2pi]
Definition: scale_atmos_grid_cartesC_real.F90:48
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_mapprojection
module Map projection
Definition: scale_mapprojection.F90:12
scale_const
module CONSTANT
Definition: scale_const.F90:11
scale_landuse::landuse_frac_land
real(rp), dimension(:,:), allocatable, public landuse_frac_land
land fraction
Definition: scale_landuse.F90:54
scale_prc_cartesc
module process / cartesC
Definition: scale_prc_cartesC.F90:11
scale_mapprojection::mapprojection_setup
subroutine, public mapprojection_setup(DOMAIN_CENTER_X, DOMAIN_CENTER_Y)
Setup.
Definition: scale_mapprojection.F90:194
scale_topography::topography_exist
logical, public topography_exist
topography exists?
Definition: scale_topography.F90:36
scale_file_cartesc::file_cartesc_set_coordinates_atmos
subroutine, public file_cartesc_set_coordinates_atmos(CZ, FZ, LON, LONUY, LONXV, LONUV, LAT, LATUY, LATXV, LATUV, TOPO, LSMASK)
set latlon and z for atmosphere
Definition: scale_file_cartesC.F90:454
scale_file_cartesc::file_cartesc_set_areavol_atmos
subroutine, public file_cartesc_set_areavol_atmos(AREA, AREAZUY_X, AREAZXV_Y, AREAWUY_X, AREAWXV_Y, AREAUY, AREAZXY_X, AREAZUV_Y, AREAXV, AREAZUV_X, AREAZXY_Y, VOL, VOLWXY, VOLZUY, VOLZXV)
set area and volume
Definition: scale_file_cartesC.F90:500
scale_topography::topography_zsfc
real(rp), dimension(:,:), allocatable, public topography_zsfc
absolute ground height [m]
Definition: scale_topography.F90:38
scale_prc::prc_nprocs
integer, public prc_nprocs
myrank in local communicator
Definition: scale_prc.F90:89
scale_interp_vert::interp_vert_setcoef
subroutine, public interp_vert_setcoef(KA, KS, KE, IA, IS, IE, JA, JS, JE, TOPO_exist, Xi, Xih, Z, Zh)
Setup.
Definition: scale_interp_vert.F90:86
scale_comm_cartesc
module COMMUNICATION
Definition: scale_comm_cartesC.F90:11
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lat
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lat
latitude [rad,-pi,pi]
Definition: scale_atmos_grid_cartesC_real.F90:52
scale_atmos_grid_cartesc
module atmosphere / grid / cartesC
Definition: scale_atmos_grid_cartesC.F90:12
scale_landuse
module LANDUSE
Definition: scale_landuse.F90:19
scale_interp_vert
module INTERPOLATION vertical
Definition: scale_interp_vert.F90:11
scale_prc_cartesc::prc_twod
logical, public prc_twod
2D experiment
Definition: scale_prc_cartesC.F90:55
scale_file_cartesc
module file / cartesianC
Definition: scale_file_cartesC.F90:11