Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RODIER Quentin
Méso-NH code
Commits
7583eeb3
Commit
7583eeb3
authored
6 years ago
by
WAUTELET Philippe
Browse files
Options
Downloads
Plain Diff
Merge remote-tracking branch 'refs/remotes/origin/MNH-54-branch' into MNH-54X
parents
524481b1
03d9c166
No related branches found
No related tags found
No related merge requests found
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/MNH/read_all_data_grib_case.f90
+342
-169
342 additions, 169 deletions
src/MNH/read_all_data_grib_case.f90
src/SURFEX/mode_read_grib.F90
+241
-104
241 additions, 104 deletions
src/SURFEX/mode_read_grib.F90
src/SURFEX/prep_grib_grid.F90
+30
-2
30 additions, 2 deletions
src/SURFEX/prep_grib_grid.F90
with
613 additions
and
275 deletions
src/MNH/read_all_data_grib_case.f90
+
342
−
169
View file @
7583eeb3
This diff is collapsed.
Click to expand it.
src/SURFEX/mode_read_grib.F90
+
241
−
104
View file @
7583eeb3
This diff is collapsed.
Click to expand it.
src/SURFEX/prep_grib_grid.F90
+
30
−
2
View file @
7583eeb3
...
@@ -36,6 +36,8 @@
...
@@ -36,6 +36,8 @@
!! S. Faroux 01/2011 : to use library GRIB_API instead of GRIBEX (from
!! S. Faroux 01/2011 : to use library GRIB_API instead of GRIBEX (from
!! read_all_data_grib_case)
!! read_all_data_grib_case)
!! J. Escobar 1/06/2018 : remove IALLGRIB loop , useless & very memory consuming
!! J. Escobar 1/06/2018 : remove IALLGRIB loop , useless & very memory consuming
!! Gaelle Delautier (via Q.Rodier) 01/2019 : add GRIB 2 and adaptation to EPYGRAM-edited GRIB
!!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!* 0. DECLARATIONS
!* 0. DECLARATIONS
...
@@ -56,7 +58,7 @@ USE MODD_GRID_ROTLATLON
...
@@ -56,7 +58,7 @@ USE MODD_GRID_ROTLATLON
USE
MODD_GRID_GAUSS
,
ONLY
:
XILA1
,
XILO1
,
XILA2
,
XILO2
,
NINLA
,
NINLO
,
NILEN
,
LROTPOLE
,
XCOEF
,
XLAP
,
XLOP
,
&
USE
MODD_GRID_GAUSS
,
ONLY
:
XILA1
,
XILO1
,
XILA2
,
XILO2
,
NINLA
,
NINLO
,
NILEN
,
LROTPOLE
,
XCOEF
,
XLAP
,
XLOP
,
&
XLAT
,
XLON
XLAT
,
XLON
USE
MODD_GRID_AROME
,
ONLY
:
XX
,
XY
,
NX
,
NY
,
XLAT0
,
XLON0
,
XLATOR
,
XLONOR
,
XRPK
,
XBETA
,
XZX
,
XZY
,
NIX
USE
MODD_GRID_AROME
,
ONLY
:
XX
,
XY
,
NX
,
NY
,
XLAT0
,
XLON0
,
XLATOR
,
XLONOR
,
XRPK
,
XBETA
,
XZX
,
XZY
,
NIX
USE
MODD_GRID_GRIB
,
ONLY
:
NNI
,
CGRIB_FILE
USE
MODD_GRID_GRIB
,
ONLY
:
NNI
,
CGRIB_FILE
,
NGRIB_VERSION
USE
MODD_SURF_PAR
,
ONLY
:
XUNDEF
,
NUNDEF
USE
MODD_SURF_PAR
,
ONLY
:
XUNDEF
,
NUNDEF
USE
MODD_CSTS
,
ONLY
:
XPI
USE
MODD_CSTS
,
ONLY
:
XPI
!
!
...
@@ -113,6 +115,9 @@ INTEGER :: JLOOP1 ! Dummy counter
...
@@ -113,6 +115,9 @@ INTEGER :: JLOOP1 ! Dummy counter
!JUAN
!JUAN
!JUAN
!JUAN
INTEGER
::
INFOMPI
,
J
INTEGER
::
INFOMPI
,
J
INTEGER
(
KIND
=
kindOfInt
),
DIMENSION
(:),
ALLOCATABLE
::
INLO_GRIB
! Number of points along a parallel
!
REAL
(
KIND
=
JPRB
)
::
ZHOOK_HANDLE
REAL
(
KIND
=
JPRB
)
::
ZHOOK_HANDLE
!
!
!---------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------
...
@@ -148,6 +153,11 @@ END IF
...
@@ -148,6 +153,11 @@ END IF
IF
(
IRET
/
=
0
)
THEN
IF
(
IRET
/
=
0
)
THEN
CALL
ABOR1_SFX
(
'PREP_GRIB_GRID: Error in reading center'
)
CALL
ABOR1_SFX
(
'PREP_GRIB_GRID: Error in reading center'
)
END
IF
END
IF
!
CALL
GRIB_GET
(
IGRIB
,
'editionNumber'
,
NGRIB_VERSION
,
IRET
)
IF
(
IRET
/
=
0
)
THEN
CALL
ABOR1_SFX
(
'PREP_GRIB_GRID: Error in reading editionNumber'
)
END
IF
!
!
CALL
GRIB_GET
(
IGRIB
,
'typeOfGrid'
,
HGRID
,
IRET
)
CALL
GRIB_GET
(
IGRIB
,
'typeOfGrid'
,
HGRID
,
IRET
)
IF
(
IRET
/
=
0
)
THEN
IF
(
IRET
/
=
0
)
THEN
...
@@ -464,14 +474,32 @@ SELECT CASE (HGRIDTYPE)
...
@@ -464,14 +474,32 @@ SELECT CASE (HGRIDTYPE)
!
!
HGRIDTYPE
=
'GAUSS '
HGRIDTYPE
=
'GAUSS '
IF
(
NRANK
==
NPIO
)
THEN
IF
(
NRANK
==
NPIO
)
THEN
! PROBLEME AVEC LES GRIB d'EPYGRAM
! dans longitudeOfLastGridPointInDegrees la longitude du dernier point du
! tableau (donc au pole sud)
! dans les GRIB1 on a la valeur max du tableau des longitudes (donc à
! l'equateur) REMARQUE : c'est ce qu'on a pour le CEP
! pour éviter de changer le GRIB on calcule différemment XILO2 en le recalculant
! le max de la longitude au niveau de l'équateur garce au champ 'pl'
!
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfFirstGridPointInDegrees'
,
XILA1
)
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfFirstGridPointInDegrees'
,
XILA1
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfFirstGridPointInDegrees'
,
XILO1
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfFirstGridPointInDegrees'
,
XILO1
)
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfLastGridPointInDegrees'
,
XILA2
)
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfLastGridPointInDegrees'
,
XILA2
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfLastGridPointInDegrees'
,
XILO2
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfLastGridPointInDegrees'
,
XILO2
)
CALL
GRIB_GET
(
IGRIB
,
'stretchingFactor'
,
XCOEF
)
CALL
GRIB_GET
(
IGRIB
,
'stretchingFactor'
,
XCOEF
)
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfStretchingPoleInDegrees'
,
XLAP
)
CALL
GRIB_GET
(
IGRIB
,
'latitudeOfStretchingPoleInDegrees'
,
XLAP
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfStretchingPoleInDegrees'
,
XLOP
)
CALL
GRIB_GET
(
IGRIB
,
'longitudeOfStretchingPoleInDegrees'
,
XLOP
)
IF
(
NRANK
==
NPIO
)
THEN
ALLOCATE
(
ININLO_GRIB
(
NINLA
))
CALL
GRIB_IS_MISSING
(
IGRIB
,
'pl'
,
IMISSING
,
IRET
)
IF
(
IRET
==
0
.OR.
IMISSING
/
=
1
)
THEN
! quasi-regular
CALL
GRIB_GET
(
IGRIB
,
'pl'
,
ININLO_GRIB
)
XILO2
=
360.-360.
/(
MAXVAL
(
INLO_GRIB
))
print
*
,
"XILO2="
,
XILO2
ENDIF
DEALLOCATE
(
ININLO_GRIB
)
ENDIF
ENDIF
ENDIF
LROTPOLE
=
.TRUE.
LROTPOLE
=
.TRUE.
IF
(
NPROC
>
1
)
THEN
IF
(
NPROC
>
1
)
THEN
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment