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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 69 - (hide 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 guez 3 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 guez 69 USE indicesol, ONLY: nbsrf
14     USE dimphy, ONLY: klev, klon
15 guez 3
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 guez 69
43 guez 3 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