6 SUBROUTINE pgd_grid (UG, U, GCP, HPROGRAM,HFILE,HFILETYPE,OGRID,HDIR)
57 USE modi_grid_from_file
58 USE modi_open_namelist
60 USE modi_close_namelist
62 USE modi_read_nam_gridtype
65 USE modi_pgd_grid_io_init
72 USE mode_tools_ll
, ONLY : get_mean_of_coord_sqrt_ll
74 USE modi_get_size_full_n
94 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
95 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
96 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
97 LOGICAL,
INTENT(IN) :: OGRID
98 CHARACTER(LEN=1),
INTENT(IN),
OPTIONAL :: HDIR
104 REAL,
DIMENSION(:),
ALLOCATABLE :: ZMESH_SIZE
105 CHARACTER(LEN=1) :: YDIR
108 INTEGER :: IIMAX_ll, IJMAX_ll
109 INTEGER :: ISIZE_FULL
114 REAL(KIND=JPRB) :: ZHOOK_HANDLE
121 INTEGER :: IXSIZE = -999
122 INTEGER :: IYSIZE = -999
123 INTEGER :: IDXRATIO = 1
124 INTEGER :: IDYRATIO = 1
125 NAMELIST/nam_inifile_conf_proj/ixor,iyor,ixsize,iysize,idxratio,idyratio
135 IF (
PRESENT(hdir)) ydir = hdir
155 IF (.NOT. ogrid)
THEN 164 CALL posnam(ilunam,
'NAM_PGD_GRID',gfound,iluout)
165 IF (gfound)
READ(unit=ilunam,nml=nam_pgd_grid)
180 CALL test_nam_var_surf(iluout,
'CGRID',cgrid,
'CONF PROJ ',
'NONE ',
'LONLAT REG''CARTESIAN ''GAUSS ' 181 'IGN ',
'LONLATVAL ',
'LONLAT ROT')
202 IF ( cgrid ==
"IGN " .OR. cgrid ==
"GAUSS " .OR. cgrid ==
"NONE "THEN 210 CALL posnam(ilunam,
'NAM_INIFILE_CONF_PROJ',gfound,iluout)
212 READ(unit=ilunam,nml=nam_inifile_conf_proj)
213 iimax_ll = ixsize*idxratio
214 ijmax_ll = iysize*idyratio
226 IF (ydir/=
'H') u%NDIM_FULL =
nl 237 u%NSIZE_FULL = isize_full
243 CALL abor1_sfx(
'PGD_GRID: FILE TYPE NOT SUPPORTED '//hfiletype//
' FOR FILE ' 251 IF (cgrid==
'NONE ' .OR. cgrid==
' ')
THEN 252 CALL abor1_sfx(
'PGD_GRID: GRID TYPE NOT INITIALIZED, CGRID='//cgrid)
271 IF (ydir/=
'H') u%NDIM_FULL =
nl 274 u%NSIZE_FULL = isize_full
282 IF ( cprogram ==
'PGD ')
THEN 291 ALLOCATE(ug%XGRID_FULL_PAR(ug%NGRID_FULL_PAR))
295 ALLOCATE(ug%G%XGRID_PAR(ug%G%NGRID_PAR))
300 CALL dr_hook(
'PGD_GRID',1,zhook_handle)
309 ALLOCATE(ug%G%XLAT (
nl))
310 ALLOCATE(ug%G%XLON (
nl))
311 ALLOCATE(ug%G%XMESH_SIZE (
nl))
312 ALLOCATE(ug%XJPDIR (
nl))
322 CALL get_mean_of_coord_sqrt_ll(ug%G%XMESH_SIZE,u%NSIZE_FULL,u%NDIM_FULL
324 IF (
nrank==
npio)
ALLOCATE(zmesh_size(u%NDIM_FULL))
subroutine latlon_grid(G, KL, PDIR)
character(len=6) yinifiletype
subroutine get_size_full_n(HPROGRAM, KDIM_FULL, KSIZE_FULL_IN, KSIZE
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
subroutine split_grid(UG, U, HPROGRAM, KGRID_PAR, PGRID_PAR, KHALO)
real, dimension(:), pointer xgrid_par
subroutine grid_from_file(U, GCP, PGRID_FULL_PAR, HPROGRAM, HFILE, HFI
subroutine pgd_grid_io_init(HPROGRAM, UG, KGRID_PAR, PGRID_PAR, HGRID,
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
subroutine read_nam_gridtype(GCP, PGRID_FULL_PAR, KDIM_FULL, HPROGRAM
subroutine default_grid(HPROGRAM, HGRID)
subroutine pgd_grid(UG, U, GCP, HPROGRAM, HFILE, HFILETYPE, OGRID, HD
character(len=28) yinifile