18 |
USE conf_gcm_m, ONLY: day_step, iperiod |
USE conf_gcm_m, ONLY: day_step, iperiod |
19 |
use conf_guide_m, only: conf_guide, guide_u, guide_v, guide_t, guide_q, & |
use conf_guide_m, only: conf_guide, guide_u, guide_v, guide_t, guide_q, & |
20 |
ncep, ini_anal, tau_min_u, tau_max_u, tau_min_v, tau_max_v, & |
ncep, ini_anal, tau_min_u, tau_max_u, tau_min_v, tau_max_v, & |
21 |
tau_min_t, tau_max_t, tau_min_q, tau_max_q, tau_min_p, tau_max_p, & |
tau_min_t, tau_max_t, tau_min_q, tau_max_q, online |
|
online |
|
22 |
USE dimens_m, ONLY: iim, jjm, llm |
USE dimens_m, ONLY: iim, jjm, llm |
23 |
USE disvert_m, ONLY: ap, bp, preff, presnivs |
USE disvert_m, ONLY: ap, bp, preff, presnivs |
24 |
use dump2d_m, only: dump2d |
use dump2d_m, only: dump2d |
25 |
USE exner_hyb_m, ONLY: exner_hyb |
USE exner_hyb_m, ONLY: exner_hyb |
26 |
USE inigrads_m, ONLY: inigrads |
USE inigrads_m, ONLY: inigrads |
27 |
use massdair_m, only: massdair |
use netcdf, only: nf90_nowrite |
28 |
use netcdf, only: nf90_nowrite, nf90_close, nf90_inq_dimid |
use netcdf95, only: nf95_close, nf95_inq_dimid, nf95_inquire_dimension, & |
29 |
use netcdf95, only: nf95_inquire_dimension, nf95_open |
nf95_open |
30 |
use nr_util, only: pi |
use nr_util, only: pi |
31 |
USE paramet_m, ONLY: iip1, ip1jm, ip1jmp1, jjp1, llmp1 |
USE paramet_m, ONLY: iip1, ip1jmp1, jjp1, llmp1 |
32 |
USE q_sat_m, ONLY: q_sat |
USE q_sat_m, ONLY: q_sat |
33 |
use read_reanalyse_m, only: read_reanalyse |
use read_reanalyse_m, only: read_reanalyse |
34 |
USE serre, ONLY: clat, clon |
USE serre, ONLY: clat, clon |
66 |
! alpha=1 signifie pas d'injection |
! alpha=1 signifie pas d'injection |
67 |
! alpha=0 signifie injection totale |
! alpha=0 signifie injection totale |
68 |
REAL, save:: alpha_q(iim + 1, jjm + 1) |
REAL, save:: alpha_q(iim + 1, jjm + 1) |
69 |
REAL, save:: alpha_t(iim + 1, jjm + 1), alpha_p(ip1jmp1) |
REAL, save:: alpha_t(iim + 1, jjm + 1) |
70 |
REAL, save:: alpha_u(iim + 1, jjm + 1), alpha_v(iim + 1, jjm) |
REAL, save:: alpha_u(iim + 1, jjm + 1), alpha_v(iim + 1, jjm) |
71 |
|
|
72 |
INTEGER, save:: step_rea, count_no_rea |
INTEGER, save:: step_rea, count_no_rea |
76 |
real ztau(iim + 1, jjm + 1) |
real ztau(iim + 1, jjm + 1) |
77 |
|
|
78 |
INTEGER ij, l |
INTEGER ij, l |
79 |
INTEGER ncidpl, status |
INTEGER ncidpl |
80 |
INTEGER rcod, rid |
INTEGER rid |
81 |
REAL tau |
REAL tau |
82 |
INTEGER, SAVE:: nlev |
INTEGER, SAVE:: nlev |
83 |
|
|
114 |
|
|
115 |
factt = dtvr * iperiod / daysec |
factt = dtvr * iperiod / daysec |
116 |
|
|
117 |
CALL tau2alpha(3, iip1, jjm, factt, tau_min_v, tau_max_v, alpha_v) |
CALL tau2alpha(3, factt, tau_min_v, tau_max_v, alpha_v) |
118 |
CALL tau2alpha(2, iip1, jjp1, factt, tau_min_u, tau_max_u, alpha_u) |
CALL tau2alpha(2, factt, tau_min_u, tau_max_u, alpha_u) |
119 |
CALL tau2alpha(1, iip1, jjp1, factt, tau_min_t, tau_max_t, alpha_t) |
CALL tau2alpha(1, factt, tau_min_t, tau_max_t, alpha_t) |
120 |
CALL tau2alpha(1, iip1, jjp1, factt, tau_min_p, tau_max_p, alpha_p) |
CALL tau2alpha(1, factt, tau_min_q, tau_max_q, alpha_q) |
|
CALL tau2alpha(1, iip1, jjp1, factt, tau_min_q, tau_max_q, alpha_q) |
|
121 |
|
|
122 |
CALL dump2d(iip1, jjp1, aire, 'AIRE MAILLe ') |
CALL dump2d(iip1, jjp1, aire, 'AIRE MAILLe ') |
123 |
CALL dump2d(iip1, jjp1, alpha_u, 'COEFF U ') |
CALL dump2d(iip1, jjp1, alpha_u, 'COEFF U ') |
124 |
CALL dump2d(iip1, jjp1, alpha_t, 'COEFF T ') |
CALL dump2d(iip1, jjp1, alpha_t, 'COEFF T ') |
125 |
ELSE |
ELSE |
126 |
! Cas ou on force exactement par les variables analysees |
! Cas où on force exactement par les variables analysées |
127 |
alpha_t = 0. |
alpha_t = 0. |
128 |
alpha_u = 0. |
alpha_u = 0. |
129 |
alpha_v = 0. |
alpha_v = 0. |
130 |
alpha_p = 0. |
alpha_q = 0. |
131 |
END IF |
END IF |
132 |
|
|
133 |
step_rea = 1 |
step_rea = 1 |
141 |
if (guide_Q) call nf95_open('hur.nc',nf90_nowrite, ncidpl) |
if (guide_Q) call nf95_open('hur.nc',nf90_nowrite, ncidpl) |
142 |
|
|
143 |
IF (ncep) THEN |
IF (ncep) THEN |
144 |
status = nf90_inq_dimid(ncidpl, 'LEVEL', rid) |
call nf95_inq_dimid(ncidpl, 'LEVEL', rid) |
145 |
ELSE |
ELSE |
146 |
status = nf90_inq_dimid(ncidpl, 'PRESSURE', rid) |
call nf95_inq_dimid(ncidpl, 'PRESSURE', rid) |
147 |
END IF |
END IF |
148 |
call nf95_inquire_dimension(ncidpl, rid, nclen=nlev) |
call nf95_inquire_dimension(ncidpl, rid, nclen=nlev) |
149 |
PRINT *, 'nlev', nlev |
PRINT *, 'nlev', nlev |
150 |
rcod = nf90_close(ncidpl) |
call nf95_close(ncidpl) |
151 |
! Lecture du premier etat des reanalyses. |
! Lecture du premier etat des reanalyses. |
152 |
CALL read_reanalyse(1, ps, ucovrea2, vcovrea2, tetarea2, qrea2, & |
CALL read_reanalyse(1, ps, ucovrea2, vcovrea2, tetarea2, qrea2, & |
153 |
masserea2, nlev) |
masserea2, nlev) |