source: LMDZ6/branches/LMDZ-INCA-Dyn/tools/Max_diff_nc_with_lib/Jumble/prt_cmp.f90

Last change on this file was 1907, checked in by lguez, 11 years ago

Added a copyright property to every file of the distribution, except
for the fcm files (which have their own copyright). Use svn propget on
a file to see the copyright. For instance:

$ svn propget copyright libf/phylmd/physiq.F90
Name of program: LMDZ
Creation date: 1984
Version: LMDZ5
License: CeCILL version 2
Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
See the license file in the root directory

Also added the files defining the CeCILL version 2 license, in French
and English, at the top of the LMDZ tree.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 2.1 KB
Line 
1module prt_cmp_m
2
3  implicit none
4
5  interface prt_cmp
6     ! Used by "compare".
7     module procedure prt_cmp_real, prt_cmp_double
8  end interface prt_cmp
9
10  private
11  public prt_cmp
12
13contains
14
15  subroutine prt_cmp_real(data_old, data_new, maxv, location)
16
17    real, intent(in):: data_old, data_new, maxv
18    integer, intent(in):: location(:)
19
20    ! Variable local to the procedure:
21    character(len=30) format_string
22
23    !------------------------------------------------------
24
25    if (size(location) == 1) then
26       format_string = "(a, i0, a)"
27    else
28       ! size(location) >= 2
29       write(unit=format_string, fmt="(a, i0, a)") "(a, ", &
30            size(location) - 1, "(i0, 1x), i0, a)"
31    end if
32
33    print *
34    print '("Maximum difference: ", 1pg8.1)', maxv
35!!    print '("Maximum difference: ", 1pg9.2)', maxv
36    print *, 'Occurring at:'
37
38    write(unit=*, fmt=format_string, advance="no") 'data_old(', location, &
39         ') = '
40    print *, data_old
41
42    write(unit=*, fmt=format_string, advance="no") 'data_new(', location, &
43         ') = '
44    print *, data_new
45
46  end subroutine prt_cmp_real
47
48  !***********************************************************
49
50  subroutine prt_cmp_double(data_old, data_new, maxv, location)
51
52    double precision, intent(in):: data_old, data_new, maxv
53    integer, intent(in):: location(:)
54
55    ! Variable local to the procedure:
56    character(len=30) format_string
57
58    !------------------------------------------------------
59
60    if (size(location) == 1) then
61       format_string = "(a, i0, a)"
62    else
63       ! size(location) >= 2
64       write(unit=format_string, fmt="(a, i0, a)") "(a, ", &
65            size(location) - 1, "(i0, 1x), i0, a)"
66    end if
67
68    print *
69    print '("Maximum difference: ", 1pg8.1)', maxv
70!!    print '("Maximum difference: ", 1pg9.2)', maxv
71    print *, 'Occurring at:'
72
73    write(unit=*, fmt=format_string, advance="no") 'data_old(', location, &
74         ') = '
75    print *, data_old
76
77    write(unit=*, fmt=format_string, advance="no") 'data_new(', location, &
78         ') = '
79    print *, data_new
80
81  end subroutine prt_cmp_double
82
83end module prt_cmp_m
Note: See TracBrowser for help on using the repository browser.