source: LMDZ4/trunk/libf/bibio/netcdf95.F90

Last change on this file was 1279, checked in by Laurent Fairhead, 15 years ago

Merged LMDZ4-dev branch changes r1241:1278 into the trunk
Running trunk and LMDZ4-dev in LMDZOR configuration on local
machine (sequential) and SX8 (4-proc) yields identical results
(restart and restartphy are identical binarily)
Log history from r1241 to r1278 is available by switching to
source:LMDZ4/branches/LMDZ4-dev-20091210

File size: 1.6 KB
RevLine 
[1157]1! $Id$
2module netcdf95
3
4  ! Author: Lionel GUEZ
5
6  ! Three criticisms may be made about the Fortran 90 NetCDF interface:
7
8  ! -- NetCDF procedures are usually functions with side effects.
9  ! First, they have "intent(out)" arguments.
10  ! Furthermore, there is obviously data transfer inside the procedures.
11  ! Any data transfer inside a function is considered as a side effect.
12
13  ! -- The caller of a NetCDF procedure usually has to handle the error
14  ! status. NetCDF procedures would be much friendlier if they behaved
15  ! like the Fortran input/output statements. That is, the error status
16  ! should be an optional output argument.
17  ! If the caller does not request the error status and there is an
18  ! error then the NetCDF procedure should produce an error message
19  ! and stop the program.
20
21  ! -- Some procedures use array arguments with assumed size.
22  ! It would be better to use the pointer attribute.
23
24  ! This module produces a NetCDF interface that answers those three
25  ! criticisms for some (not all) procedures.
26
[1263]27  ! "nf95_get_att" is more secure than "nf90_get_att" because it
28  ! checks that the "values" argument is long enough and removes the
29  ! null terminator, if any.
30
[1157]31  ! This module replaces some of the official NetCDF procedures.
32  ! This module also provides the procedures "handle_err" and "nf95_gw_var".
33
34  ! This module provides only a partial replacement for some generic
35  ! procedures such as "nf90_def_var".
36
37  use nf95_def_var_m
38  use nf95_put_var_m
39  use nf95_gw_var_m
40  use nf95_put_att_m
[1263]41  use nf95_get_att_m
[1157]42  use simple
43  use handle_err_m
44
45end module netcdf95
Note: See TracBrowser for help on using the repository browser.