7 hprogram,hgrid,pgrid_par,plat,plon,pmesh_size,kresp,pdir,hdir)
51 USE yomhook
,ONLY : lhook, dr_hook
52 USE parkind1
,ONLY : jprb
54 USE modi_write_gridtype_cartesian
56 USE modi_write_gridtype_conf_proj
58 USE modi_write_gridtype_gauss
60 USE modi_write_gridtype_ign
62 USE modi_write_gridtype_lonlat_reg
64 USE modi_write_gridtype_lonlatval
66 USE modi_write_gridtype_lonlat_rot
76 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
77 CHARACTER(LEN=10),
INTENT(IN) :: hgrid
78 REAL,
DIMENSION(:),
POINTER :: pgrid_par
79 REAL,
DIMENSION(:),
INTENT(IN) :: plat
80 REAL,
DIMENSION(:),
INTENT(IN) :: plon
81 REAL,
DIMENSION(:),
INTENT(IN) :: pmesh_size
82 INTEGER,
INTENT(OUT) :: kresp
83 REAL,
DIMENSION(:),
INTENT(IN) ,
OPTIONAL :: pdir
84 CHARACTER(LEN=1),
INTENT(IN),
OPTIONAL :: hdir
94 CHARACTER(LEN=100) :: ycomment
95 CHARACTER(LEN=1) :: ydir
96 REAL(KIND=JPRB) :: zhook_handle
102 IF (lhook) CALL dr_hook(
'WRITE_GRID',0,zhook_handle)
105 hprogram,
'GRID_TYPE',hgrid,kresp,ycomment)
113 IF (PRESENT(HDIR)) YDIR = HDIR
117 CALL WRITE_GRIDTYPE_CONF_PROJ(DGU, U, &
118 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP,YDIR)
120 CALL WRITE_GRIDTYPE_CARTESIAN(DGU, U, &
121 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP,YDIR)
123 CALL WRITE_GRIDTYPE_LONLAT_REG(DGU, U, &
124 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP)
126 CALL WRITE_GRIDTYPE_GAUSS(DGU, U, &
127 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP)
129 CALL WRITE_GRIDTYPE_IGN(DGU, U, &
130 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP)
132 CALL WRITE_GRIDTYPE_LONLATVAL(DGU, U, &
133 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP)
135 CALL WRITE_GRIDTYPE_LONLAT_ROT(DGU, U, &
136 HPROGRAM,SIZE(PLAT),SIZE(PGRID_PAR),PGRID_PAR(:),KRESP)
138 YCOMMENT='lon(degrees)
'
139 CALL WRITE_SURF(DGU, U, &
140 HPROGRAM,'lon
', PLON,KRESP,YCOMMENT)
141 .AND.
IF (KRESP/=0 LHOOK) CALL DR_HOOK('write_grid',1,ZHOOK_HANDLE)
143 YCOMMENT='lat(degrees)
'
144 CALL WRITE_SURF(DGU, U, &
145 HPROGRAM,'lat
', PLAT,KRESP,YCOMMENT)
146 .AND.
IF (KRESP/=0 LHOOK) CALL DR_HOOK('write_grid',1,ZHOOK_HANDLE)
148 YCOMMENT='mesh
SIZE (m2)
'
149 CALL WRITE_SURF(DGU, U, &
150 HPROGRAM,'mesh_size
',PMESH_SIZE,KRESP,YCOMMENT)
151 .AND.
IF (KRESP/=0 LHOOK) CALL DR_HOOK('write_grid',1,ZHOOK_HANDLE)
154 IF (LHOOK) CALL DR_HOOK('write_grid',1,ZHOOK_HANDLE)
156 !---------------------------------------------------------------------------
158 END SUBROUTINE WRITE_GRID
subroutine write_grid(DGU, U, HPROGRAM, HGRID, PGRID_PAR, PLAT, PLON, PMESH_SIZE, KRESP, PDIR, HDIR)