Commit 497f812a authored by ldemaine's avatar ldemaine
Browse files

correction de quelques erreurs

parent 04b4fbc0
...@@ -7719,7 +7719,7 @@ c$$$ write(*,*) 'Ftot:', F ...@@ -7719,7 +7719,7 @@ c$$$ write(*,*) 'Ftot:', F
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ! ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
subroutine slope_wind_cd(dset,xlon,xlat,zsurface,zradius,zsurf_0, subroutine slope_wind_cd(dset,xlon,xlat,zsurface,zradius,zsurf_0,
& temp,temp_gcm,sheight, & temp,temp_gcm,sheight,
& zonwind,merwind,old_zonwind,old_merwind, & zonwind,merwind,old_zonwind,old_merwind,
...@@ -7811,13 +7811,13 @@ c$$$ write(1,*) '|' ...@@ -7811,13 +7811,13 @@ c$$$ write(1,*) '|'
call get_slopes(dset,xlon,xlat,slopes_scale,zradius, call get_slopes(dset,xlon,xlat,slopes_scale,zradius,
& theta_s,psy_s,ier) & theta_s,psy_s,ier)
c$$$ write(1,*) '| slopes_scale', slopes_scale c$$$ write(1,*) '| slopes_scale', slopes_scale
write(*,*) 'zsurface',zsurface c$$$ write(*,*) 'zsurface',zsurface
write(*,*) '| theta_s', theta_s c$$$ write(*,*) '| theta_s', theta_s
c$$$ write(1,*) '| theta_s', theta_s c$$$ write(1,*) '| theta_s', theta_s
c$$$ write(1,*) '| psy_s', psy_s c$$$ write(1,*) '| psy_s', psy_s
c$$$! TODO: cas où l'altitude est inférieure à la première maille de mcd c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
...@@ -7831,7 +7831,7 @@ c$$$! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -7831,7 +7831,7 @@ c$$$! TODO: cas où l'altitude est inférieure à la première maille de mcd
zref = 10000*sin(theta_s*degtorad) zref = 10000*sin(theta_s*degtorad)
write(*,*) '| zref', zref c$$$ write(*,*) '| zref', zref
c$$$ write(1,*) '| zref', zref c$$$ write(1,*) '| zref', zref
if (zsurface.le.zref.and.zsurface.gt.0) then if (zsurface.le.zref.and.zsurface.gt.0) then
...@@ -7905,7 +7905,7 @@ c$$$ write(1,*) '| temp_0', temp_0 ...@@ -7905,7 +7905,7 @@ c$$$ write(1,*) '| temp_0', temp_0
! Computation of float terme ! Computation of float terme
Float = g_0*(temp - temp_0)*sin(theta_s*degtorad)/temp_0 Float = g_0*(temp - temp_0)*sin(theta_s*degtorad)/temp_0
c$$$ write(1,*) '| Float', Float c$$$ write(1,*) '| Float', Float
write(*,*) '| Float', Float c$$$ write(*,*) '| Float', Float
...@@ -7917,7 +7917,7 @@ c$$$ write(1,*) '| Float', Float ...@@ -7917,7 +7917,7 @@ c$$$ write(1,*) '| Float', Float
Cd = (karman/log(zsurface/zsurf_0))**2 Cd = (karman/log(zsurface/zsurf_0))**2
c$$$ write(1,*) '| Cd', Cd c$$$ write(1,*) '| Cd', Cd
write(*,*) '| Cd', Cd c$$$ write(*,*) '| Cd', Cd
upslope_wind = sign(sqrt(abs(Float / Cd)), Float/Cd) upslope_wind = sign(sqrt(abs(Float / Cd)), Float/Cd)
...@@ -8558,7 +8558,7 @@ c$$$ ...@@ -8558,7 +8558,7 @@ c$$$
parameter (pi=3.14159265358979d0) parameter (pi=3.14159265358979d0)
parameter (degtorad=pi/180.0d0) parameter (degtorad=pi/180.0d0)
p_gcm = ps_hr*sigma p_gcm = ps_hr * sigma
write(*,*) ' ' write(*,*) ' '
write(*,*) '|--------------------------------------------------|' write(*,*) '|--------------------------------------------------|'
...@@ -8704,9 +8704,18 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8704,9 +8704,18 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
enddo !i=1,levhi enddo !i=1,levhi
write(*,*) '| | | upwind_gcm (Cd):', upwind_gcm
write(*,*) '| | |'
write(*,*) '| | | u_gcm (Cd):', u_gcm
write(*,*) '| | | v_gcm (Cd):', v_gcm
write(*,*) '| | |'
! !
do l=1,2 do l=1,2
write(*,*) '| | | | (do l=1,2), l=',l
write(*,*) '|-|-|-|- - - - - - - - - - - - - - - - - -'
! cas inférieur à la première couche ! cas inférieur à la première couche
call vdif_k(sheight,levhi,levlow, call vdif_k(sheight,levhi,levlow,
& u_gcm, v_gcm, & u_gcm, v_gcm,
...@@ -8715,6 +8724,9 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8715,6 +8724,9 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
& zsurf_0, & zsurf_0,
& pKv) & pKv)
write(*,*) '| | | | pKv', pKv
write(*,*) '| | | |'
do it=2,levhi do it=2,levhi
Flotation = g_0*(temp_gcm(it)-temp_0) Flotation = g_0*(temp_gcm(it)-temp_0)
& *sin(theta_s*degtorad)/temp_0 & *sin(theta_s*degtorad)/temp_0
...@@ -8751,10 +8763,19 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8751,10 +8763,19 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
enddo enddo
write(*,*) '| | | |'
write(*,*) '| | | | upwind_gcm:', upwind_gcm
write(*,*) '| | | |'
write(*,*) '| | | | u_gcm:', u_gcm
write(*,*) '| | | | v_gcm:', v_gcm
write(*,*) '| | | |'
enddo enddo
upslope_wind = upwind_gcm(levlow) upslope_wind = upwind_gcm(levlow)
& + (upwind_gcm(levhi)-upwind_gcm(levlow))*levweight(1) & + (upwind_gcm(levhi)-upwind_gcm(levlow))*levweight(1)
write(*,*) '| | | upslope_wind:', upslope_wind
endif !(levhi.eq.1) endif !(levhi.eq.1)
...@@ -8823,6 +8844,7 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8823,6 +8844,7 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
write(*,*) ' > Input vdif_k' write(*,*) ' > Input vdif_k'
write(*,*) ' > ********************************************' write(*,*) ' > ********************************************'
write(*,*) ' > sheight:', sheight write(*,*) ' > sheight:', sheight
write(*,*) ' > levlow, levhi:', levlow, levhi
write(*,*) ' > u:', u write(*,*) ' > u:', u
write(*,*) ' > v:', v write(*,*) ' > v:', v
write(*,*) ' > temp:', temp write(*,*) ' > temp:', temp
...@@ -8833,6 +8855,7 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8833,6 +8855,7 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
write(*,*) ' > ********************************************' write(*,*) ' > ********************************************'
write(*,*) ' >' write(*,*) ' >'
lmixmin = 30. lmixmin = 30.
emin_turb = 1.e-8 emin_turb = 1.e-8
rcp=0.259 ! on considère que gamma = 1.35 avec rcp = (1-gamma)/gamma, ce qui est valable à 3% près en dessous de 5000m rcp=0.259 ! on considère que gamma = 1.35 avec rcp = (1-gamma)/gamma, ce qui est valable à 3% près en dessous de 5000m
...@@ -8851,10 +8874,11 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8851,10 +8874,11 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
T_pot(1) = temp(1)*(psurf/P(1))**rcp T_pot(1) = temp(1)*(psurf/P(1))**rcp
T_pot_mid(1) = (T_pot(1) + Tsurf)/2. T_pot_mid(1) = (T_pot(1) + Tsurf)/2.
dT_pot_dz(1) = (T_pot(it) - Tsurf)/zdz(it) dT_pot_dz(1) = (T_pot(1) - Tsurf)/zdz(1)
do it=2,levhi do it=2,levhi
write(*,*) ' > do it:', it
Z1(it) = (sheight(it) + sheight(it-1))/2. Z1(it) = (sheight(it) + sheight(it-1))/2.
lmix(it) = karman*Z1(it)/(1.+karman*Z1(it)/lmixmin) lmix(it) = karman*Z1(it)/(1.+karman*Z1(it)/lmixmin)
...@@ -8871,18 +8895,36 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd ...@@ -8871,18 +8895,36 @@ c$$$ ! TODO: cas où l'altitude est inférieure à la première maille de mcd
enddo enddo
write(*,*) ' > Z1:', Z1
write(*,*) ' > lmix:', lmix
write(*,*) ' > zdu:', zdu
write(*,*) ' > zdv:', zdv
write(*,*) ' > zdz:', zdz
write(*,*) ' > zdvodz2:', zdvodz2
write(*,*) ' > T_pot:', T_pot
write(*,*) ' > T_pot_mid:', T_pot_mid
write(*,*) ' > dT_pot_dz:', dT_pot_dz
write(*,*) ' >'
do it=1,levhi do it=1,levhi
write(*,*) ' > do it:', it
if (zdvodz2(it).lt.1.e-5) then if (zdvodz2(it).lt.1.e-5) then
pKv(it) = lmix(it)*sqrt(emin_turb) pKv(it) = lmix(it)*sqrt(emin_turb)
else else
Ri = g_0 * dT_pot_dz(it) /(T_pot_mid(it)*zdvodz2(it)) Ri = g_0 * dT_pot_dz(it) /(T_pot_mid(it)*zdvodz2(it))
write(*,*) ' > Ri:', Ri
pKv(it) = lmix(it)*sqrt(max(lmix(it)**2 pKv(it) = lmix(it)*sqrt(max(lmix(it)**2
& *zdvodz2(it)*(1-2.5*Ri),emin_turb)) & *zdvodz2(it)*(1-2.5*Ri),emin_turb))
endif endif
enddo enddo
write(*,*) ' > pKv', pKv
write(*,*) ' >'
write(*,*) ' > ********************************************'
return return
end end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment