6 SUBROUTINE pack_grid(KMASK,HGRID1,HGRID2,PGRID_PAR1,PGRID_PAR2)
37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
42 USE modi_pack_grid_cartesian
44 USE modi_pack_grid_conf_proj
46 USE modi_pack_grid_gauss
48 USE modi_pack_grid_ign
50 USE modi_pack_grid_lonlat_reg
52 USE modi_pack_grid_lonlatval
54 USE modi_pack_grid_lonlat_rot
60 INTEGER,
DIMENSION(:),
INTENT(IN) :: kmask
61 CHARACTER(LEN=10),
INTENT(IN) :: hgrid1
62 CHARACTER(LEN=10),
INTENT(OUT):: hgrid2
63 REAL,
DIMENSION(:),
POINTER :: pgrid_par1
64 REAL,
DIMENSION(:),
POINTER :: pgrid_par2
70 REAL(KIND=JPRB) :: zhook_handle
77 IF (lhook) CALL dr_hook(
'PACK_GRID',0,zhook_handle)
86 CASE(
"CONF PROJ ",
"LONLAT REG",
"CARTESIAN",
"GAUSS ",
"IGN ",
"LONLATVAL ",
"LONLAT ROT")
90 ALLOCATE(pgrid_par2(0))
91 IF (hgrid1==
"CONF PROJ ") &
92 CALL
pack_grid_conf_proj(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
93 IF (hgrid1==
"CARTESIAN ") &
94 CALL
pack_grid_cartesian(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
95 IF (hgrid1==
"LONLAT REG") &
96 CALL
pack_grid_lonlat_reg(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
97 IF (hgrid1==
"GAUSS ") &
98 CALL
pack_grid_gauss(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
100 CALL
pack_grid_ign(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
101 IF (hgrid1==
"LONLATVAL ") &
102 CALL
pack_grid_lonlatval(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
103 IF (hgrid1==
"LONLAT ROT") &
104 CALL
pack_grid_lonlat_rot(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.false.,pgrid_par2)
106 DEALLOCATE(pgrid_par2)
108 ALLOCATE(pgrid_par2(kgrid_par2))
109 IF (hgrid1==
"CONF PROJ ") &
110 CALL
pack_grid_conf_proj(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
111 IF (hgrid1==
"CARTESIAN ") &
112 CALL
pack_grid_cartesian(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
113 IF (hgrid1==
"LONLAT REG") &
114 CALL
pack_grid_lonlat_reg(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
115 IF (hgrid1==
"GAUSS ") &
116 CALL
pack_grid_gauss(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
117 IF (hgrid1==
"IGN ") &
118 CALL
pack_grid_ign(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
119 IF (hgrid1==
"LONLATVAL ") &
120 CALL
pack_grid_lonlatval(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
121 IF (hgrid1==
"LONLAT ROT") &
122 CALL
pack_grid_lonlat_rot(
SIZE(kmask),kmask,
SIZE(pgrid_par1),pgrid_par1,kgrid_par2,.true.,pgrid_par2)
125 CALL
abor1_sfx(
'PACK_GRID: GRID TYPE NOT SUPPORTED '//hgrid1)
128 IF (lhook) CALL dr_hook(
'PACK_GRID',1,zhook_handle)
subroutine pack_grid_lonlat_reg(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine pack_grid_lonlatval(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine pack_grid_conf_proj(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine pack_grid_ign(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine pack_grid_lonlat_rot(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine abor1_sfx(YTEXT)
subroutine pack_grid(KMASK, HGRID1, HGRID2, PGRID_PAR1, PGRID_PAR2)
subroutine pack_grid_cartesian(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)
subroutine pack_grid_gauss(KMASK_SIZE, KMASK, KGRID_PAR1, PGRID_PAR1, KGRID_PAR2, OPACK, PGRID_PAR2)