/[lmdze]/trunk/Sources/dyn3d/Guide/conf_guide.f
ViewVC logotype

Annotation of /trunk/Sources/dyn3d/Guide/conf_guide.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years, 1 month ago) by guez
File size: 2833 byte(s)
Sources inside, compilation outside.
1 guez 44 module conf_guide_m
2 guez 37
3 guez 44 IMPLICIT NONE
4 guez 3
5 guez 115 ! Constantes de rappel, en jours :
6     REAL:: tau_min_u = 0.03
7 guez 83 REAL:: tau_max_u = 10.
8 guez 115 REAL:: tau_min_v = 0.03
9 guez 83 REAL:: tau_max_v = 10.
10 guez 115 REAL:: tau_min_t = 0.03
11 guez 83 REAL:: tau_max_t = 10.
12 guez 115 REAL:: tau_min_q = 0.03
13 guez 83 REAL:: tau_max_q = 10.
14 guez 115 REAL:: tau_min_p = 0.03
15 guez 83 REAL:: tau_max_p = 10.
16 guez 3
17 guez 83 LOGICAL:: ncep = .false. ! Coordonnee vert NCEP ou ECMWF
18     LOGICAL:: ini_anal = .false. ! Initial = analyse
19 guez 115 LOGICAL:: guide_u = .false. ! guidage de u
20     LOGICAL:: guide_v = .false. ! gvidage de v
21 guez 107 LOGICAL:: guide_t = .false. ! guidage de T
22     LOGICAL:: guide_q = .false. ! guidage de q
23 guez 83
24 guez 102 logical:: online = .true. ! controle du guide
25     ! hors-ligne: x=x_rea
26    
27 guez 83 ! Latitude min et max pour le rappel dans le cas ou on 'a les
28     ! analyses que sur une bande de latitudes.
29     REAL:: lat_min_guide = -90. ! Latitude minimum pour le guidage
30     real:: lat_max_guide = 90. ! Latitude maximum pour le guidage
31    
32 guez 115 logical, save:: ok_guide ! guidage
33     REAL, save:: factt ! pas de temps entre deux appels au guidage, en jours
34    
35 guez 44 contains
36 guez 3
37 guez 44 SUBROUTINE conf_guide
38 guez 3
39 guez 44 ! From LMDZ4/libf/dyn3d/conf_guide.F, version 1.1.1.1 2004/05/19 12:53:07
40     ! Parametres de controle du run:
41 guez 3
42 guez 115 use abort_gcm_m, only: abort_gcm
43     use comconst, only: daysec, dtvr
44     use conf_gcm_m, only: day_step, iperiod
45     use nr_util, only: assert
46     use serre, only: grossismx, grossismy
47 guez 83 use unit_nml_m, only: unit_nml
48 guez 3
49 guez 83 namelist /conf_guide_nml/ ncep, ini_anal, guide_u, guide_v, guide_t, &
50 guez 115 guide_q, online, tau_min_u, tau_max_u, tau_min_v, tau_max_v, &
51     tau_min_t, tau_max_t, tau_min_q, tau_max_q, tau_min_p, tau_max_p, &
52 guez 83 lat_min_guide, lat_max_guide
53    
54 guez 44 !-----------------------------------------------------------------------
55 guez 3
56 guez 44 print *, "Call sequence information: conf_guide"
57 guez 3
58 guez 83 print *, "Enter namelist 'conf_guide_nml'."
59     read(unit=*, nml=conf_guide_nml)
60     write(unit_nml, nml=conf_guide_nml)
61 guez 3
62 guez 115 ok_guide = any((/guide_u, guide_v, guide_t, guide_q/))
63     if (ok_guide .and. mod(day_step, 4 * iperiod) /= 0) call &
64     abort_gcm(modname = "conf_guide", &
65     message = 'ok_guide day_step iperiod', ierr = 1)
66    
67     if (ok_guide .and. online) then
68     factt = dtvr * iperiod / daysec
69     print *, "factt = ", factt
70     if (abs(grossismx - 1.) >= 0.1 .and. abs(grossismy - 1.) >= 0.1) then
71     if (guide_u) call assert(factt / tau_min_u < 1, &
72     "conf_guide tau_min_u")
73     if (guide_v) call assert(factt / tau_min_v < 1, &
74     "conf_guide tau_min_v")
75     if (guide_t) call assert(factt / tau_min_t < 1, &
76     "conf_guide tau_min_t")
77     if (guide_q) call assert(factt / tau_min_q < 1, &
78     "conf_guide tau_min_q")
79     end if
80     end if
81    
82 guez 44 end SUBROUTINE conf_guide
83    
84     end module conf_guide_m

  ViewVC Help
Powered by ViewVC 1.1.21