10 |
|
|
11 |
USE conf_guide_m, ONLY: guide_q, guide_t, guide_u, guide_v, ncep |
USE conf_guide_m, ONLY: guide_q, guide_t, guide_u, guide_v, ncep |
12 |
USE dimens_m, ONLY: iim, jjm, llm |
USE dimens_m, ONLY: iim, jjm, llm |
|
use dump2d_m, only: dump2d |
|
13 |
USE netcdf, ONLY: nf90_get_var, nf90_inq_varid, nf90_nowrite, nf90_open |
USE netcdf, ONLY: nf90_get_var, nf90_inq_varid, nf90_nowrite, nf90_open |
14 |
USE paramet_m, ONLY: iip1, jjp1 |
USE paramet_m, ONLY: iip1, jjp1 |
15 |
use reanalyse2nat_m, only: reanalyse2nat |
use reanalyse2nat_m, only: reanalyse2nat |
48 |
if (guide_u) then |
if (guide_u) then |
49 |
rcode=nf90_open('u.nc', nf90_nowrite, ncidu) |
rcode=nf90_open('u.nc', nf90_nowrite, ncidu) |
50 |
rcode = nf90_inq_varid(ncidu, 'UWND', varidu) |
rcode = nf90_inq_varid(ncidu, 'UWND', varidu) |
|
print *, 'ncidu, varidu', ncidu, varidu |
|
51 |
if (ncidpl.eq.-99) ncidpl=ncidu |
if (ncidpl.eq.-99) ncidpl=ncidu |
52 |
endif |
endif |
53 |
|
|
55 |
if (guide_v) then |
if (guide_v) then |
56 |
rcode=nf90_open('v.nc', nf90_nowrite, ncidv) |
rcode=nf90_open('v.nc', nf90_nowrite, ncidv) |
57 |
rcode = nf90_inq_varid(ncidv, 'VWND', varidv) |
rcode = nf90_inq_varid(ncidv, 'VWND', varidv) |
|
print *, 'ncidv, varidv', ncidv, varidv |
|
58 |
if (ncidpl.eq.-99) ncidpl=ncidv |
if (ncidpl.eq.-99) ncidpl=ncidv |
59 |
endif |
endif |
60 |
|
|
62 |
if (guide_T) then |
if (guide_T) then |
63 |
rcode=nf90_open('T.nc', nf90_nowrite, ncidt) |
rcode=nf90_open('T.nc', nf90_nowrite, ncidt) |
64 |
rcode = nf90_inq_varid(ncidt, 'AIR', varidt) |
rcode = nf90_inq_varid(ncidt, 'AIR', varidt) |
|
print *, 'ncidt, varidt', ncidt, varidt |
|
65 |
if (ncidpl.eq.-99) ncidpl=ncidt |
if (ncidpl.eq.-99) ncidpl=ncidt |
66 |
endif |
endif |
67 |
|
|
69 |
if (guide_Q) then |
if (guide_Q) then |
70 |
rcode=nf90_open('hur.nc', nf90_nowrite, ncidQ) |
rcode=nf90_open('hur.nc', nf90_nowrite, ncidQ) |
71 |
rcode = nf90_inq_varid(ncidQ, 'RH', varidQ) |
rcode = nf90_inq_varid(ncidQ, 'RH', varidQ) |
|
print *, 'ncidQ, varidQ', ncidQ, varidQ |
|
72 |
if (ncidpl.eq.-99) ncidpl=ncidQ |
if (ncidpl.eq.-99) ncidpl=ncidQ |
73 |
endif |
endif |
74 |
|
|
80 |
print *, 'Vous etes entrain de lire des donnees ECMWF' |
print *, 'Vous etes entrain de lire des donnees ECMWF' |
81 |
rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl) |
rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl) |
82 |
endif |
endif |
|
print *, 'ncidu, varidpl', ncidu, varidpl |
|
83 |
endif |
endif |
|
print *, 'ok1' |
|
84 |
|
|
85 |
! Niveaux de pression |
! Niveaux de pression |
86 |
print *, 'WARNING!!! Il n y a pas de test de coherence' |
|
87 |
print *, 'sur le nombre de niveaux verticaux dans le fichier nc' |
! Warning: il n y a pas de test de coherence sur le nombre de |
88 |
|
! niveaux verticaux dans le fichier nc' |
89 |
status=NF90_GET_VAR(ncidpl, varidpl, pl) |
status=NF90_GET_VAR(ncidpl, varidpl, pl) |
90 |
! passage en pascal |
! passage en pascal |
91 |
pl(:)=100.*pl(:) |
pl(:)=100.*pl(:) |
119 |
! Vent zonal |
! Vent zonal |
120 |
|
|
121 |
if (guide_u) then |
if (guide_u) then |
|
print *, 'avant la lecture de UNCEP nd de niv:', nlevnc |
|
122 |
status=NF90_GET_VAR(ncidu, varidu, unc, start, count) |
status=NF90_GET_VAR(ncidu, varidu, unc, start, count) |
123 |
print *, 'WARNING!!! Correction bidon pour palier a un ' |
! Warning Correction bidon pour palier a un probleme dans la |
124 |
print *, 'probleme dans la creation des fichiers nc' |
! creation des fichiers nc |
125 |
call correctbid(iim, jjp1*nlevnc, unc) |
call correctbid(iim, jjp1*nlevnc, unc) |
|
call dump2d(iip1, jjp1, unc, 'UNC COUCHE 1 ') |
|
126 |
endif |
endif |
127 |
|
|
128 |
! Temperature |
! Temperature |
129 |
|
|
|
print *, 'ncidt=', ncidt, 'varidt=', varidt, 'start=', start |
|
|
print *, 'count=', count |
|
130 |
if (guide_T) then |
if (guide_T) then |
131 |
status=NF90_GET_VAR(ncidt, varidt, tnc, start, count) |
status=NF90_GET_VAR(ncidt, varidt, tnc, start, count) |
|
call dump2d(iip1, jjp1, tnc, 'TNC COUCHE 1 AAA ') |
|
132 |
call correctbid(iim, jjp1*nlevnc, tnc) |
call correctbid(iim, jjp1*nlevnc, tnc) |
|
call dump2d(iip1, jjp1, tnc, 'TNC COUCHE 1 BBB ') |
|
133 |
endif |
endif |
134 |
|
|
135 |
! Humidite |
! Humidite |
137 |
if (guide_Q) then |
if (guide_Q) then |
138 |
status=NF90_GET_VAR(ncidQ, varidQ, Qnc, start, count) |
status=NF90_GET_VAR(ncidQ, varidQ, Qnc, start, count) |
139 |
call correctbid(iim, jjp1*nlevnc, Qnc) |
call correctbid(iim, jjp1*nlevnc, Qnc) |
|
call dump2d(iip1, jjp1, Qnc, 'QNC COUCHE 1 ') |
|
140 |
endif |
endif |
141 |
|
|
142 |
count(2)=jjm |
count(2)=jjm |
145 |
if (guide_v) then |
if (guide_v) then |
146 |
status=NF90_GET_VAR(ncidv, varidv, vnc, start, count) |
status=NF90_GET_VAR(ncidv, varidv, vnc, start, count) |
147 |
call correctbid(iim, jjm*nlevnc, vnc) |
call correctbid(iim, jjm*nlevnc, vnc) |
|
call dump2d(iip1, jjm, vnc, 'VNC COUCHE 1 ') |
|
148 |
endif |
endif |
149 |
|
|
150 |
start(3)=timestep |
start(3)=timestep |
158 |
call reanalyse2nat(nlevnc, psi, unc, vnc, tnc, Qnc, pl, u, v, t, Q, & |
call reanalyse2nat(nlevnc, psi, unc, vnc, tnc, Qnc, pl, u, v, t, Q, & |
159 |
masse, pk) |
masse, pk) |
160 |
|
|
|
call dump2d(iip1, jjm, v, 'V COUCHE APRES ') |
|
|
|
|
161 |
! Passage aux variables du modele (vents covariants, temperature |
! Passage aux variables du modele (vents covariants, temperature |
162 |
! potentielle et humidite specifique) |
! potentielle et humidite specifique) |
163 |
|
|
164 |
call nat2gcm(u, v, t, Q, pk, u, v, t, Q) |
call nat2gcm(u, v, t, Q, pk, u, v, t, Q) |
|
print *, 'TIMESTEP ', timestep |
|
165 |
first=.false. |
first=.false. |
166 |
|
|
167 |
end subroutine read_reanalyse |
end subroutine read_reanalyse |