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
b47b8ffc
Commit
b47b8ffc
authored
5 years ago
by
WAUTELET Philippe
Browse files
Options
Downloads
Patches
Plain Diff
Philippe 21/10/2019: CDF2CDF: add OPTDIR option to set directory for writing outfiles
parent
b67db3a6
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
LIBTOOLS/tools/lfi2cdf/src/mode_options.f90
+8
-2
8 additions, 2 deletions
LIBTOOLS/tools/lfi2cdf/src/mode_options.f90
LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
+32
-11
32 additions, 11 deletions
LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
with
40 additions
and
13 deletions
LIBTOOLS/tools/lfi2cdf/src/mode_options.f90
+
8
−
2
View file @
b47b8ffc
...
@@ -5,19 +5,20 @@
...
@@ -5,19 +5,20 @@
!-----------------------------------------------------------------
!-----------------------------------------------------------------
! Modifications:
! Modifications:
! P. Wautelet 19/09/2019: add possibility to provide a fallback file if some information are not found in the input file
! P. Wautelet 19/09/2019: add possibility to provide a fallback file if some information are not found in the input file
! P. Wautelet 21/10/2019: add OPTDIR option to set directory for writing outfiles
!-----------------------------------------------------------------
!-----------------------------------------------------------------
module
mode_options
module
mode_options
USE
MODE_FIELD
,
ONLY
:
TYPEUNDEF
,
TYPEINT
,
TYPELOG
,
TYPEREAL
,
TYPECHAR
,
TYPEDATE
USE
MODE_FIELD
,
ONLY
:
TYPEUNDEF
,
TYPEINT
,
TYPELOG
,
TYPEREAL
,
TYPECHAR
,
TYPEDATE
implicit
none
implicit
none
integer
,
parameter
::
NBAVAILOPTIONS
=
1
1
integer
,
parameter
::
NBAVAILOPTIONS
=
1
2
integer
,
parameter
::
MODEUNDEF
=
-11
,
MODECDF2CDF
=
11
,
MODELFI2CDF
=
12
,
MODECDF2LFI
=
13
integer
,
parameter
::
MODEUNDEF
=
-11
,
MODECDF2CDF
=
11
,
MODELFI2CDF
=
12
,
MODECDF2LFI
=
13
integer
,
parameter
::
OPTCOMPRESS
=
1
,
OPTHELP
=
2
,
OPTLIST
=
3
integer
,
parameter
::
OPTCOMPRESS
=
1
,
OPTHELP
=
2
,
OPTLIST
=
3
integer
,
parameter
::
OPTMERGE
=
4
,
OPTOUTPUT
=
5
,
OPTREDUCE
=
6
integer
,
parameter
::
OPTMERGE
=
4
,
OPTOUTPUT
=
5
,
OPTREDUCE
=
6
integer
,
parameter
::
OPTMODE
=
7
,
OPTSPLIT
=
8
,
OPTVAR
=
9
integer
,
parameter
::
OPTMODE
=
7
,
OPTSPLIT
=
8
,
OPTVAR
=
9
integer
,
parameter
::
OPTVERBOSE
=
10
,
OPTFALLBACK
=
11
integer
,
parameter
::
OPTVERBOSE
=
10
,
OPTFALLBACK
=
11
,
OPTDIR
=
12
type
option
type
option
logical
::
set
=
.false.
logical
::
set
=
.false.
...
@@ -162,6 +163,11 @@ subroutine init_options(options)
...
@@ -162,6 +163,11 @@ subroutine init_options(options)
options
(
OPTFALLBACK
)
%
has_argument
=
.true.
options
(
OPTFALLBACK
)
%
has_argument
=
.true.
options
(
OPTFALLBACK
)
%
type
=
TYPECHAR
options
(
OPTFALLBACK
)
%
type
=
TYPECHAR
options
(
OPTDIR
)
%
long_name
=
"outdir"
options
(
OPTDIR
)
%
short_name
=
'd'
options
(
OPTDIR
)
%
has_argument
=
.true.
options
(
OPTDIR
)
%
type
=
TYPECHAR
end
subroutine
init_options
end
subroutine
init_options
subroutine
get_option
(
options
,
finished
)
subroutine
get_option
(
options
,
finished
)
...
...
This diff is collapsed.
Click to expand it.
LIBTOOLS/tools/lfi2cdf/src/mode_util.f90
+
32
−
11
View file @
b47b8ffc
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
! P. Wautelet 01/08/2019: allow merge of entire Z-split files
! P. Wautelet 01/08/2019: allow merge of entire Z-split files
! P. Wautelet 18/09/2019: correct support of 64bit integers (MNH_INT=8)
! P. Wautelet 18/09/2019: correct support of 64bit integers (MNH_INT=8)
! P. Wautelet 19/09/2019: add possibility to provide a fallback file if some information are not found in the input file
! P. Wautelet 19/09/2019: add possibility to provide a fallback file if some information are not found in the input file
! P. Wautelet 21/10/2019: add OPTDIR option to set directory for writing outfiles
!-----------------------------------------------------------------
!-----------------------------------------------------------------
MODULE
mode_util
MODULE
mode_util
USE
MODD_IO_ll
,
ONLY
:
TFILE_ELT
,
TFILEDATA
USE
MODD_IO_ll
,
ONLY
:
TFILE_ELT
,
TFILEDATA
...
@@ -1160,8 +1161,13 @@ END DO
...
@@ -1160,8 +1161,13 @@ END DO
KNFILES_OUT
=
KNFILES_OUT
+
1
KNFILES_OUT
=
KNFILES_OUT
+
1
idx
=
KNFILES_OUT
idx
=
KNFILES_OUT
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
HOUTFILE
,
'UNKNOWN'
,
'WRITE'
,
&
if
(
options
(
OPTDIR
)
%
set
)
then
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
)
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
HOUTFILE
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
,
hdirname
=
options
(
OPTDIR
)
%
cvalue
)
else
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
HOUTFILE
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
)
end
if
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
IF
(
options
(
OPTCOMPRESS
)
%
set
)
THEN
IF
(
options
(
OPTCOMPRESS
)
%
set
)
THEN
...
@@ -1173,8 +1179,8 @@ END DO
...
@@ -1173,8 +1179,8 @@ END DO
outfiles
(
idx
)
%
tfile
%
LNCREDUCE_FLOAT_PRECISION
=
.TRUE.
outfiles
(
idx
)
%
tfile
%
LNCREDUCE_FLOAT_PRECISION
=
.TRUE.
END
IF
END
IF
status
=
NF90_SET_FILL
(
outfiles
(
idx
)
%
TFILE
%
NNCID
,
NF90_NOFILL
,
omode
)
i
status
=
NF90_SET_FILL
(
outfiles
(
idx
)
%
TFILE
%
NNCID
,
NF90_NOFILL
,
omode
)
IF
(
status
/
=
NF90_NOERR
)
CALL
HANDLE_ERR
(
status
,
__
LINE__
)
IF
(
i
status
/
=
NF90_NOERR
)
CALL
HANDLE_ERR
(
i
status
,
__
LINE__
)
END
IF
! .NOT.osplit
END
IF
! .NOT.osplit
ELSE
ELSE
!
!
...
@@ -1182,8 +1188,13 @@ END DO
...
@@ -1182,8 +1188,13 @@ END DO
!
!
KNFILES_OUT
=
KNFILES_OUT
+
1
KNFILES_OUT
=
KNFILES_OUT
+
1
idx
=
KNFILES_OUT
idx
=
KNFILES_OUT
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
houtfile
,
'UNKNOWN'
,
'WRITE'
,
&
if
(
options
(
OPTDIR
)
%
set
)
then
HFORMAT
=
'LFI'
,
KLFIVERB
=
0
,
OOLD
=
.TRUE.
)
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
houtfile
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'LFI'
,
KLFIVERB
=
0
,
OOLD
=
.TRUE.
,
hdirname
=
options
(
OPTDIR
)
%
cvalue
)
else
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
houtfile
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'LFI'
,
KLFIVERB
=
0
,
OOLD
=
.TRUE.
)
end
if
LIOCDF4
=
.FALSE.
!Necessary to open correctly the LFI file
LIOCDF4
=
.FALSE.
!Necessary to open correctly the LFI file
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
LIOCDF4
=
.TRUE.
LIOCDF4
=
.TRUE.
...
@@ -1194,8 +1205,13 @@ END DO
...
@@ -1194,8 +1205,13 @@ END DO
KNFILES_OUT
=
KNFILES_OUT
+
1
KNFILES_OUT
=
KNFILES_OUT
+
1
idx
=
KNFILES_OUT
idx
=
KNFILES_OUT
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
'dummy_file'
,
'UNKNOWN'
,
'WRITE'
,
&
if
(
options
(
OPTDIR
)
%
set
)
then
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
)
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
'dummy_file'
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
,
hdirname
=
options
(
OPTDIR
)
%
cvalue
)
else
CALL
IO_FILE_ADD2LIST
(
outfiles
(
idx
)
%
TFILE
,
'dummy_file'
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
,
OOLD
=
.TRUE.
)
end
if
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
CALL
IO_FILE_OPEN_ll
(
outfiles
(
idx
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
END
IF
END
IF
...
@@ -1249,8 +1265,13 @@ END DO
...
@@ -1249,8 +1265,13 @@ END DO
DO
ji
=
1
,
nbvar
DO
ji
=
1
,
nbvar
filename
=
trim
(
houtfile
)//
'.'
//
TRIM
(
YVARS
(
ji
))
filename
=
trim
(
houtfile
)//
'.'
//
TRIM
(
YVARS
(
ji
))
CALL
IO_FILE_ADD2LIST
(
outfiles
(
ji
)
%
TFILE
,
filename
,
'UNKNOWN'
,
'WRITE'
,
&
if
(
options
(
OPTDIR
)
%
set
)
then
HFORMAT
=
'NETCDF4'
)
CALL
IO_FILE_ADD2LIST
(
outfiles
(
ji
)
%
TFILE
,
filename
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
,
hdirname
=
options
(
OPTDIR
)
%
cvalue
)
else
CALL
IO_FILE_ADD2LIST
(
outfiles
(
ji
)
%
TFILE
,
filename
,
'UNKNOWN'
,
'WRITE'
,
&
HFORMAT
=
'NETCDF4'
)
end
if
CALL
IO_FILE_OPEN_ll
(
outfiles
(
ji
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
CALL
IO_FILE_OPEN_ll
(
outfiles
(
ji
)
%
TFILE
,
HPROGRAM_ORIG
=
CPROGRAM_ORIG
)
IF
(
options
(
OPTCOMPRESS
)
%
set
)
THEN
IF
(
options
(
OPTCOMPRESS
)
%
set
)
THEN
...
@@ -1321,7 +1342,7 @@ END DO
...
@@ -1321,7 +1342,7 @@ END DO
!split_variable and other attributes were added in MesoNH > 5.4.2
!split_variable and other attributes were added in MesoNH > 5.4.2
ISTATUS
=
NF90_INQUIRE_ATTRIBUTE
(
IFILE_ID
,
KVAR_ID
,
'split_variable'
,
LEN
=
ILENG
)
ISTATUS
=
NF90_INQUIRE_ATTRIBUTE
(
IFILE_ID
,
KVAR_ID
,
'split_variable'
,
LEN
=
ILENG
)
IF
(
ISTATUS
==
NF90_NOERR
)
THEN
IF
(
ISTATUS
==
NF90_NOERR
)
THEN
IF
(
GSPLIT_AT_ENTRY
)
CALL
PRINT_MSG
(
NVERB_ERROR
,
'IO'
,
'IO_GET_METADATA_NC4'
,
'split variable de
l
caration inside a split file'
)
IF
(
GSPLIT_AT_ENTRY
)
CALL
PRINT_MSG
(
NVERB_ERROR
,
'IO'
,
'IO_GET_METADATA_NC4'
,
'split variable dec
l
aration inside a split file'
)
ALLOCATE
(
CHARACTER
(
LEN
=
ILENG
)
::
YSPLIT
)
ALLOCATE
(
CHARACTER
(
LEN
=
ILENG
)
::
YSPLIT
)
ISTATUS
=
NF90_GET_ATT
(
IFILE_ID
,
KVAR_ID
,
'split_variable'
,
YSPLIT
)
ISTATUS
=
NF90_GET_ATT
(
IFILE_ID
,
KVAR_ID
,
'split_variable'
,
YSPLIT
)
...
...
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