58 USE modi_prep_grid_conf_proj
59 USE modi_prep_grid_cartesian
60 USE modi_prep_grid_gauss
61 USE modi_prep_grid_lonlat_reg
62 USE modi_horibl_surf_init
63 USE modi_horibl_surf_coef
64 USE modi_arpege_stretch_a
78 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
79 INTEGER,
INTENT(IN) :: KLUOUT
80 CHARACTER(LEN=10),
INTENT(OUT) :: HGRIDTYPE
81 CHARACTER(LEN=6),
INTENT(OUT) :: HINTERP_TYPE
82 INTEGER,
INTENT(OUT) :: KNI
89 REAL(KIND=JPRB) :: ZHOOK_HANDLE
96 IF (
lhook)
CALL dr_hook(
'PREP_GRID_EXTERN',0,zhook_handle)
97 CALL read_surf(hfiletype,
'GRID_TYPE',hgridtype,iresp,hdir=
'-')
104 IF (hgridtype==
'CONF PROJ ')
THEN 106 ELSE IF (hgridtype==
'CARTESIAN ')
THEN 108 ELSE IF (hgridtype==
'GAUSS ')
THEN 110 ELSE IF (hgridtype==
'LONLAT REG')
THEN 111 hgridtype =
'LATLON ' 114 WRITE(kluout,*)
'GRIDTYPE "',hgridtype,
'" NOT ACCEPTED AS INPUT FILE FOR FIELD PREPARATION' 115 CALL abor1_sfx(
'GRIDTYPE NOT ACCEPTED AS INPUT FILE FOR FIELD PREPARATION, ' 122 IF (hgridtype==
'GAUSS ' .OR. hgridtype==
'LATLON ')
THEN 124 IF (hgridtype==
'GAUSS ')
THEN 125 IF (
ALLOCATED(
xlat))
DEALLOCATE(
xlat)
126 IF (
ALLOCATED(
xlon))
DEALLOCATE(
xlon)
138 IF (
ALLOCATED(
no))
DEALLOCATE(
no)
139 IF (
ALLOCATED(
xla))
DEALLOCATE(
xla)
140 IF (
ALLOCATED(
xola))
DEALLOCATE(
xola)
141 IF (
ALLOCATED(
xolo))
DEALLOCATE(
xolo)
148 IF (hgridtype==
'GAUSS ')
THEN 154 ELSEIF (hgridtype==
'LATLON ')
THEN 164 IF (
ALLOCATED(
np))
DEALLOCATE(
np)
167 ALLOCATE(
xloph(ino,12))
169 IF (
lglobs) iinla = iinla + 2
170 IF (
lglobn) iinla = iinla + 2
174 ELSEIF (hgridtype==
'CONF PROJ ')
THEN 176 IF (
ALLOCATED(
xcx))
DEALLOCATE(
xcx)
177 IF (
ALLOCATED(
xcy))
DEALLOCATE(
xcy)
178 IF (
ALLOCATED(
ncij))
DEALLOCATE(
ncij)
183 CALL xy_conf_proj(gcp%XLAT0,gcp%XLON0,gcp%XRPK,gcp%XBETA,gcp%XLATORI
188 CALL bilin_coef(kluout,
xx,
xy,
xx_out,
xy_out,
xcx,
xcy,
ncij(:,1),
ncij(:,
190 ELSEIF (hgridtype==
'CARTESIAN ')
THEN 192 IF (
ALLOCATED(xcx_ca))
DEALLOCATE(xcx_ca)
193 IF (
ALLOCATED(xcy_ca))
DEALLOCATE(xcy_ca)
194 IF (
ALLOCATED(ncij_ca))
DEALLOCATE(ncij_ca)
195 ALLOCATE(xcx_ca(ino,3),xcy_ca(ino,3),ncij_ca(ino,2))
203 IF (
lhook)
CALL dr_hook(
'PREP_GRID_EXTERN',1,zhook_handle)
subroutine horibl_surf_coef(KOLEN, OINTERP, OGLOBLON, PILO1, PILO2, POLO, KO, KINLO, KP, PLOP)
integer, dimension(:), allocatable ninloh
real, dimension(:), allocatable xlat
real, dimension(:,:), allocatable xcx
real, dimension(:), allocatable xy
real, dimension(:), allocatable xola
subroutine prep_grid_conf_proj(GCP, HFILETYPE, HINTERP_TYPE, KNI)
subroutine prep_grid_cartesian(HFILETYPE, HINTERP_TYPE, KNI)
real, dimension(:), allocatable xx
integer, dimension(:,:), allocatable np
real, dimension(:), allocatable xlon_out
real, dimension(:), allocatable xy
integer, dimension(:,:), allocatable ncij
subroutine xy_conf_proj(PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, PX, PY, PLAT, PLON)
real, dimension(:), allocatable xx
real, dimension(:), allocatable xy_out
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine prep_grid_lonlat_reg(HFILETYPE, HINTERP_TYPE, KNI)
integer, dimension(:,:), allocatable no
subroutine abor1_sfx(YTEXT)
subroutine bilin_coef(KLUOUT, PX1, PY1, PX2, PY2, PCX, PCY, KCI, KCJ)
logical, dimension(:), allocatable linterp
real, dimension(:,:), allocatable xcy
real, dimension(:), allocatable xlon
integer, dimension(:), allocatable ninlo
subroutine prep_grid_gauss(HFILETYPE, HINTERP_TYPE, KNI)
real, dimension(:), allocatable xlat_out
real, dimension(:,:), allocatable xcy
real, dimension(:), allocatable xolo
real, dimension(:), allocatable xilatarray
real, dimension(:), allocatable xx_out
real, dimension(:,:), allocatable xcx
subroutine horibl_surf_init(PILA1, PILO1, PILA2, PILO2, KINLA, KINLO, KOLEN, PXOUT, PYOUT, OINTERP, OGLOBLON, OGLOBN, OGLOBS, KO, KINLO_OUT, POLA, POLO, PILO1_OUT, PILO2_OUT, PLA, PILATARRAY)
integer, dimension(:), allocatable ninlon
subroutine arpege_stretch_a(KN, PLAP, PLOP, PCOEF, PLAR, PLOR, PLAC, PLOC)
real, dimension(:,:), allocatable xla
integer, dimension(:,:), allocatable ncij
real, dimension(:,:), allocatable xloph
subroutine wlog_mpi(HLOG, PLOG, KLOG, KLOG2, OLOG)