source: LMDZ6/trunk/libf/phylmd/hgardfou.F90 @ 5277

Last change on this file since 5277 was 5274, checked in by abarral, 9 hours ago

Replace yomcst.h by existing module

  • 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
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
RevLine 
[1992]1
[1279]2! $Id: hgardfou.F90 5274 2024-10-25 13:41:23Z abarral $
[2235]3SUBROUTINE hgardfou(t, tsol, text,abortphy)
[2399]4  USE dimphy, ONLY: klon, klev
5  USE phys_state_var_mod, ONLY: pctsrf
6  USE geometry_mod, ONLY: longitude_deg, latitude_deg
7  USE indice_sol_mod, ONLY: nbsrf
[2311]8  USE print_control_mod, ONLY: lunout
[5274]9  USE yomcst_mod_h, ONLY: RPI, RCLUM, RHPLA, RKBOL, RNAVO                   &
10          , RDAY, REA, REPSM, RSIYEA, RSIDAY, ROMEGA                  &
11          , R_ecc, R_peri, R_incl                                      &
12          , RA, RG, R1SA                                         &
13          , RSIGMA                                                     &
14          , R, RMD, RMV, RD, RV, RCPD                    &
15          , RMO3, RMCO2, RMC, RMCH4, RMN2O, RMCFC11, RMCFC12        &
16          , RCPV, RCVD, RCVV, RKAPPA, RETV, eps_w                    &
17          , RCW, RCS                                                 &
18          , RLVTT, RLSTT, RLMLT, RTT, RATM                           &
19          , RESTT, RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS            &
20          , RALPD, RBETD, RGAMD
21IMPLICIT NONE
[1992]22  ! ======================================================================
23  ! Verifier la temperature
24  ! ======================================================================
[5274]25
[1992]26  REAL t(klon, klev), tsol(klon, nbsrf)
[2100]27  CHARACTER(len=*), intent(in):: text
[1992]28  CHARACTER (LEN=20) :: modname = 'hgardfou'
[2235]29  INTEGER abortphy
[987]30
[1992]31  INTEGER i, k, nsrf
32  REAL zt(klon)
33  INTEGER jadrs(klon), jbad
34  LOGICAL ok
35
36  LOGICAL firstcall
37  SAVE firstcall
38  DATA firstcall/.TRUE./
39  !$OMP THREADPRIVATE(firstcall)
40
41  IF (firstcall) THEN
42    WRITE (lunout, *) 'hgardfou garantit la temperature dans [100,370] K'
43    firstcall = .FALSE.
44    ! DO i = 1, klon
45    ! WRITE(lunout,*)'i=',i,'rlon=',rlon(i),'rlat=',rlat(i)
46    ! ENDDO
47
48  END IF
49
50  ok = .TRUE.
51  DO k = 1, klev
52    DO i = 1, klon
53      zt(i) = t(i, k)
54    END DO
[524]55#ifdef CRAY
[1992]56    CALL whenfgt(klon, zt, 1, 370.0, jadrs, jbad)
[524]57#else
[1992]58    jbad = 0
59    DO i = 1, klon
60      IF (zt(i)>370.) THEN
61        jbad = jbad + 1
62        jadrs(jbad) = i
63      END IF
64    END DO
[524]65#endif
[1992]66    IF (jbad>0) THEN
67      ok = .FALSE.
68      DO i = 1, jbad
69        WRITE (lunout, *) 'i,k,temperature,lon,lat,pourc ter,lic,oce,sic =', &
[2399]70          jadrs(i), k, zt(jadrs(i)), longitude_deg(jadrs(i)), &
71          latitude_deg(jadrs(i)),(pctsrf(jadrs(i),nsrf), nsrf=1, nbsrf)
[1992]72      END DO
73    END IF
[524]74#ifdef CRAY
[1992]75    CALL whenflt(klon, zt, 1, 100.0, jadrs, jbad)
[524]76#else
[1992]77    jbad = 0
78    DO i = 1, klon
79      ! IF (zt(i).LT.100.0) THEN
80      IF (zt(i)<50.0) THEN
81        jbad = jbad + 1
82        jadrs(jbad) = i
83      END IF
84    END DO
[524]85#endif
[1992]86    IF (jbad>0) THEN
87      ok = .FALSE.
88      DO i = 1, jbad
89        WRITE (lunout, *) 'i,k,temperature,lon,lat,pourc ter,lic,oce,sic =', &
[2399]90          jadrs(i), k, zt(jadrs(i)), longitude_deg(jadrs(i)), &
91          latitude_deg(jadrs(i)), (pctsrf(jadrs(i),nsrf), nsrf=1, nbsrf)
[1992]92      END DO
93    END IF
94  END DO
95
96  DO nsrf = 1, nbsrf
97    DO i = 1, klon
98      zt(i) = tsol(i, nsrf)
99    END DO
[524]100#ifdef CRAY
[1992]101    CALL whenfgt(klon, zt, 1, 370.0, jadrs, jbad)
[524]102#else
[1992]103    jbad = 0
104    DO i = 1, klon
105      IF (zt(i)>370.0) THEN
106        jbad = jbad + 1
107        jadrs(jbad) = i
108      END IF
109    END DO
[524]110#endif
[1992]111    IF (jbad>0) THEN
112      ok = .FALSE.
113      DO i = 1, jbad
114        WRITE (lunout, *) &
115          'i,nsrf,temperature,lon,lat,pourc ter,lic,oce,sic =', jadrs(i), &
[2399]116          nsrf, zt(jadrs(i)), longitude_deg(jadrs(i)), &
117          latitude_deg(jadrs(i)), pctsrf(jadrs(i), nsrf)
[1992]118      END DO
119    END IF
[524]120#ifdef CRAY
[1992]121    CALL whenflt(klon, zt, 1, 100.0, jadrs, jbad)
[524]122#else
[1992]123    jbad = 0
124    DO i = 1, klon
125      ! IF (zt(i).LT.100.0) THEN
126      IF (zt(i)<50.0) THEN
127        jbad = jbad + 1
128        jadrs(jbad) = i
129      END IF
130    END DO
[524]131#endif
[1992]132    IF (jbad>0) THEN
133      ok = .FALSE.
134      DO i = 1, jbad
135        WRITE (lunout, *) &
136          'i,nsrf,temperature,lon,lat,pourc ter,lic,oce,sic =', jadrs(i), &
[2399]137          nsrf, zt(jadrs(i)), longitude_deg(jadrs(i)), &
138          latitude_deg(jadrs(i)), pctsrf(jadrs(i), nsrf)
[1992]139      END DO
140    END IF
141  END DO
[524]142
[2311]143!  IF (.NOT. ok) CALL abort_physic(modname, text, 1)
[2235]144  IF (.NOT. ok) abortphy=1
[1992]145
146END SUBROUTINE hgardfou
Note: See TracBrowser for help on using the repository browser.