/[lmdze]/trunk/Sources/phylmd/hgardfou.f
ViewVC logotype

Contents of /trunk/Sources/phylmd/hgardfou.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 69 - (show annotations)
Mon Feb 18 16:33:12 2013 UTC (11 years, 2 months ago) by guez
Original Path: trunk/libf/phylmd/hgardfou.f90
File size: 2260 byte(s)
Deleted files cvparam3.f90 and nuagecom.f90. Moved variables from
module cvparam3 to module cv3_param_m. Moved variables rad_chau1 and
rad_chau2 from module nuagecom to module conf_phys_m.

Read clesphys2_nml from conf_phys instead of gcm.

Removed argument iflag_con from several procedures. Access module
variable instead.

1 module hgardfou_m
2
3 IMPLICIT none
4
5 contains
6
7 SUBROUTINE hgardfou(t, tsol)
8
9 ! From phylmd/hgardfou.F, v 1.1.1.1 2004/05/19 12:53:07
10
11 ! This procedure aborts the program if the temperature gets out of range.
12
13 USE indicesol, ONLY: nbsrf
14 USE dimphy, ONLY: klev, klon
15
16 REAL, intent(in):: t(klon, klev), tsol(klon, nbsrf)
17
18 ! Variables local to the procedure:
19
20 real, parameter:: temp_min = 50., temp_max = 370. ! temperature range, in K
21 INTEGER i, k, nsrf
22 INTEGER jadrs(klon), jbad
23 LOGICAL ok
24
25 !----------------------------------------------------------
26
27 ok = .TRUE.
28 DO k = 1, klev
29 jbad = 0
30 DO i = 1, klon
31 IF (t(i, k) > temp_max) THEN
32 jbad = jbad + 1
33 jadrs(jbad) = i
34 ENDIF
35 ENDDO
36 IF (jbad > 0) THEN
37 ok = .FALSE.
38 DO i = 1, jbad
39 print *, "t(", jadrs(i), ", ", k, ") = ", t(jadrs(i), k)
40 ENDDO
41 ENDIF
42
43 jbad = 0
44 DO i = 1, klon
45 IF (t(i, k) < temp_min) THEN
46 jbad = jbad + 1
47 jadrs(jbad) = i
48 ENDIF
49 ENDDO
50 IF (jbad > 0) THEN
51 ok = .FALSE.
52 DO i = 1, jbad
53 print *, "t(", jadrs(i), ", ", k, ") = ", t(jadrs(i), k)
54 ENDDO
55 ENDIF
56 ENDDO
57
58 DO nsrf = 1, nbsrf
59 jbad = 0
60 DO i = 1, klon
61 IF (tsol(i, nsrf) > temp_max) THEN
62 jbad = jbad + 1
63 jadrs(jbad) = i
64 ENDIF
65 ENDDO
66 IF (jbad > 0) THEN
67 ok = .FALSE.
68 DO i = 1, jbad
69 print *, "tsol(", jadrs(i), ", ", nsrf, ") = ", &
70 tsol(jadrs(i), nsrf)
71 ENDDO
72 ENDIF
73 jbad = 0
74 DO i = 1, klon
75 IF (tsol(i, nsrf) < temp_min) THEN
76 jbad = jbad + 1
77 jadrs(jbad) = i
78 ENDIF
79 ENDDO
80 IF (jbad > 0) THEN
81 ok = .FALSE.
82 DO i = 1, jbad
83 print *, "tsol(", jadrs(i), ", ", nsrf, ") = ", &
84 tsol(jadrs(i), nsrf)
85 ENDDO
86 ENDIF
87 ENDDO
88
89 IF (.NOT. ok) THEN
90 PRINT *, 'hgardfou: temperature out of range'
91 stop 1
92 ENDIF
93
94 END SUBROUTINE hgardfou
95
96 end module hgardfou_m

  ViewVC Help
Powered by ViewVC 1.1.21