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
65dcf2e8
Commit
65dcf2e8
authored
6 years ago
by
WAUTELET Philippe
Browse files
Options
Downloads
Patches
Plain Diff
Philippe 27/02/2019: IO: remove CLOSE_ll subroutine
parent
c8f3e2eb
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
src/LIB/SURCOUCHE/src/mode_fm.f90
+21
-5
21 additions, 5 deletions
src/LIB/SURCOUCHE/src/mode_fm.f90
src/LIB/SURCOUCHE/src/mode_io.f90
+2
-28
2 additions, 28 deletions
src/LIB/SURCOUCHE/src/mode_io.f90
with
23 additions
and
33 deletions
src/LIB/SURCOUCHE/src/mode_fm.f90
+
21
−
5
View file @
65dcf2e8
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued)
! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued)
! P. Wautelet 27/02/2019: use recursive calls to open/close DES files
! P. Wautelet 27/02/2019: use recursive calls to open/close DES files
! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine (from mode_io.f90)
!-----------------------------------------------------------------
!-----------------------------------------------------------------
MODULE
MODE_FM
MODULE
MODE_FM
...
@@ -279,20 +280,20 @@ END SUBROUTINE FMOPEN_ll
...
@@ -279,20 +280,20 @@ END SUBROUTINE FMOPEN_ll
recursive
SUBROUTINE
IO_FILE_CLOSE_ll
(
TPFILE
,
KRESP
,
HPROGRAM_ORIG
)
recursive
SUBROUTINE
IO_FILE_CLOSE_ll
(
TPFILE
,
KRESP
,
HPROGRAM_ORIG
)
!
!
USE
MODD_CONF
,
ONLY
:
CPROGRAM
USE
MODD_CONF
,
ONLY
:
CPROGRAM
USE
MODD_IO_ll
,
ONLY
:
TFILEDATA
USE
MODD_IO_ll
,
ONLY
:
NNULLUNIT
,
TFILEDATA
use
mode_io_file_lfi
,
only
:
io_close_file_lfi
use
mode_io_file_lfi
,
only
:
io_close_file_lfi
#if defined(MNH_IOCDF4)
#if defined(MNH_IOCDF4)
use
mode_io_file_nc4
,
only
:
io_close_file_nc4
use
mode_io_file_nc4
,
only
:
io_close_file_nc4
use
mode_io_write_nc4
,
only
:
io_write_coordvar_nc4
use
mode_io_write_nc4
,
only
:
io_write_coordvar_nc4
#endif
#endif
USE
MODE_IO_ll
,
ONLY
:
CLOSE_ll
USE
MODE_IO_MANAGE_STRUCT
,
ONLY
:
IO_FILE_FIND_BYNAME
USE
MODE_IO_MANAGE_STRUCT
,
ONLY
:
IO_FILE_FIND_BYNAME
!
!
TYPE
(
TFILEDATA
),
INTENT
(
INOUT
)
::
TPFILE
! File structure
TYPE
(
TFILEDATA
),
INTENT
(
INOUT
)
::
TPFILE
! File structure
INTEGER
,
OPTIONAL
,
INTENT
(
OUT
)
::
KRESP
! Return code
INTEGER
,
OPTIONAL
,
INTENT
(
OUT
)
::
KRESP
! Return code
CHARACTER
(
LEN
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
HPROGRAM_ORIG
!To emulate a file coming from this program
CHARACTER
(
LEN
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
HPROGRAM_ORIG
!To emulate a file coming from this program
!
!
character
(
len
=
256
)
::
yioerrmsg
INTEGER
::
IRESP
,
JI
INTEGER
::
IRESP
,
JI
TYPE
(
TFILEDATA
),
POINTER
::
TZFILE_DES
TYPE
(
TFILEDATA
),
POINTER
::
TZFILE_DES
TYPE
(
TFILEDATA
),
POINTER
::
TZFILE_IOZ
TYPE
(
TFILEDATA
),
POINTER
::
TZFILE_IOZ
...
@@ -321,11 +322,22 @@ END IF
...
@@ -321,11 +322,22 @@ END IF
!
!
SELECT
CASE
(
TPFILE
%
CTYPE
)
SELECT
CASE
(
TPFILE
%
CTYPE
)
CASE
(
'CHEMINPUT'
,
'CHEMTAB'
,
'DES'
,
'GPS'
,
'METEO'
,
'NML'
,
'OUTPUTLISTING'
,
'SURFACE_DATA'
,
'TXT'
)
CASE
(
'CHEMINPUT'
,
'CHEMTAB'
,
'DES'
,
'GPS'
,
'METEO'
,
'NML'
,
'OUTPUTLISTING'
,
'SURFACE_DATA'
,
'TXT'
)
CALL
CLOSE_ll
(
TPFILE
,
IRESP
)
IF
(
TPFILE
%
LMASTER
)
THEN
!
IF
(
TPFILE
%
NLU
/
=
-1
.AND.
TPFILE
%
NLU
/
=
NNULLUNIT
)
THEN
CLOSE
(
UNIT
=
TPFILE
%
NLU
,
STATUS
=
'KEEP'
,
IOSTAT
=
IRESP
,
IOMSG
=
yioerrmsg
)
END
IF
END
IF
!Warning and not error or fatal if close fails to allow continuation of execution
IF
(
IRESP
/
=
0
)
CALL
PRINT_MSG
(
NVERB_WARNING
,
'IO'
,
'IO_FILE_CLOSE_ll'
,
'Problem when closing '
&
//
TRIM
(
TPFILE
%
CNAME
)//
': '
//
TRIM
(
YIOERRMSG
))
TPFILE
%
NLU
=
-1
TPFILE
%
NLU
=
-1
CASE
DEFAULT
!MesoNH files
!Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file
CASE
(
'MNH'
,
'MNHBACKUP'
,
'MNHDIACHRONIC'
,
'MNHDIAG'
,
'MNHOUTPUT'
,
'PGD'
)
!Do not close (non-existing) '.des' file if OUTPUT
!Do not close (non-existing) '.des' file if OUTPUT
IF
(
TPFILE
%
CTYPE
/
=
'OUTPUT'
.AND.
CPROGRAM
/
=
'LFICDF'
)
THEN
IF
(
TPFILE
%
CTYPE
/
=
'OUTPUT'
.AND.
CPROGRAM
/
=
'LFICDF'
)
THEN
CALL
IO_FILE_FIND_BYNAME
(
TRIM
(
TPFILE
%
CNAME
)//
'.des'
,
TZFILE_DES
,
IRESP
)
CALL
IO_FILE_FIND_BYNAME
(
TRIM
(
TPFILE
%
CNAME
)//
'.des'
,
TZFILE_DES
,
IRESP
)
...
@@ -372,6 +384,10 @@ SELECT CASE(TPFILE%CTYPE)
...
@@ -372,6 +384,10 @@ SELECT CASE(TPFILE%CTYPE)
#endif
#endif
END
IF
END
IF
END
DO
SUBFILES
END
DO
SUBFILES
CASE
DEFAULT
call
print_msg
(
NVERB_FATAL
,
'IO'
,
'IO_FILE_CLOSE_ll'
,
'invalid type '
//
trim
(
tpfile
%
ctype
)//
' for file '
//
trim
(
tpfile
%
cname
))
END
SELECT
END
SELECT
!
!
TPFILE
%
LOPENED
=
.FALSE.
TPFILE
%
LOPENED
=
.FALSE.
...
...
This diff is collapsed.
Click to expand it.
src/LIB/SURCOUCHE/src/mode_io.f90
+
2
−
28
View file @
65dcf2e8
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST)
! P. Wautelet 14/02/2019: move UPCASE function to tools.f90
! P. Wautelet 14/02/2019: move UPCASE function to tools.f90
! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued)
! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued)
! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine
!
!
!-----------------------------------------------------------------
!-----------------------------------------------------------------
MODULE
MODE_IO_ll
MODULE
MODE_IO_ll
...
@@ -44,7 +45,7 @@ MODULE MODE_IO_ll
...
@@ -44,7 +45,7 @@ MODULE MODE_IO_ll
LOGICAL
,
SAVE
::
GCONFIO
=
.FALSE.
! Turn TRUE when SET_CONFIO_ll is called.
LOGICAL
,
SAVE
::
GCONFIO
=
.FALSE.
! Turn TRUE when SET_CONFIO_ll is called.
PUBLIC
INITIO_ll
,
OPEN_ll
,
CLOSE_ll
PUBLIC
INITIO_ll
,
OPEN_ll
PUBLIC
SET_CONFIO_ll
,
GCONFIO
PUBLIC
SET_CONFIO_ll
,
GCONFIO
CONTAINS
CONTAINS
...
@@ -481,31 +482,4 @@ CONTAINS
...
@@ -481,31 +482,4 @@ CONTAINS
END
SUBROUTINE
OPEN_ll
END
SUBROUTINE
OPEN_ll
SUBROUTINE
CLOSE_ll
(
TPFILE
,
KRESP
)
USE
MODD_IO_ll
TYPE
(
TFILEDATA
),
INTENT
(
IN
)
::
TPFILE
INTEGER
,
INTENT
(
OUT
)
::
KRESP
character
(
len
=
256
)
::
yioerrmsg
INTEGER
::
IRESP
CALL
PRINT_MSG
(
NVERB_DEBUG
,
'IO'
,
'CLOSE_ll'
,
'closing '
//
TRIM
(
TPFILE
%
CNAME
))
IRESP
=
0
IF
(
TPFILE
%
LMASTER
)
THEN
IF
(
TPFILE
%
NLU
/
=
-1
.AND.
TPFILE
%
NLU
/
=
NNULLUNIT
)
THEN
CLOSE
(
UNIT
=
TPFILE
%
NLU
,
STATUS
=
'KEEP'
,
IOSTAT
=
IRESP
,
IOMSG
=
yioerrmsg
)
END
IF
END
IF
!Warning and not error or fatal if close fails to allow continuation of execution
IF
(
IRESP
/
=
0
)
CALL
PRINT_MSG
(
NVERB_WARNING
,
'IO'
,
'CLOSE_ll'
,
'Problem when closing '
//
TRIM
(
TPFILE
%
CNAME
)//
': '
//
TRIM
(
YIOERRMSG
))
KRESP
=
IRESP
END
SUBROUTINE
CLOSE_ll
END
MODULE
MODE_IO_ll
END
MODULE
MODE_IO_ll
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