116 |
c====================================================================== |
c====================================================================== |
117 |
c$$$ PB ajout pour soil |
c$$$ PB ajout pour soil |
118 |
c |
c |
119 |
REAL dtime |
REAL, intent(in):: dtime |
120 |
real date0 |
real date0 |
121 |
integer, intent(in):: itap |
integer, intent(in):: itap |
122 |
REAL t(klon,klev), q(klon,klev) |
REAL t(klon,klev), q(klon,klev) |
123 |
REAL u(klon,klev), v(klon,klev) |
REAL u(klon,klev), v(klon,klev) |
124 |
cIM 230604 BAD REAL radsol(klon) ??? |
cIM 230604 BAD REAL radsol(klon) ??? |
125 |
REAL, intent(in):: paprs(klon,klev+1) |
REAL, intent(in):: paprs(klon,klev+1) |
126 |
real pplay(klon,klev) |
real, intent(in):: pplay(klon,klev) |
127 |
REAL, intent(in):: rlon(klon), rlat(klon) |
REAL, intent(in):: rlon(klon), rlat(klon) |
128 |
real cufi(klon), cvfi(klon) |
real cufi(klon), cvfi(klon) |
129 |
REAL d_t(klon, klev), d_q(klon, klev) |
REAL d_t(klon, klev), d_q(klon, klev) |
141 |
REAL run_off_lic_0(klon), y_run_off_lic_0(klon) |
REAL run_off_lic_0(klon), y_run_off_lic_0(klon) |
142 |
|
|
143 |
REAL flux_u(klon,klev, nbsrf), flux_v(klon,klev, nbsrf) |
REAL flux_u(klon,klev, nbsrf), flux_v(klon,klev, nbsrf) |
144 |
REAL rugmer(klon), agesno(klon,nbsrf),rugoro(klon) |
REAL rugmer(klon), agesno(klon,nbsrf) |
145 |
|
real, intent(in):: rugoro(klon) |
146 |
REAL cdragh(klon), cdragm(klon) |
REAL cdragh(klon), cdragm(klon) |
147 |
integer jour ! jour de l'annee en cours |
integer jour ! jour de l'annee en cours |
148 |
real rmu0(klon) ! cosinus de l'angle solaire zenithal |
real rmu0(klon) ! cosinus de l'angle solaire zenithal |
150 |
LOGICAL, intent(in):: debut |
LOGICAL, intent(in):: debut |
151 |
logical, intent(in):: lafin |
logical, intent(in):: lafin |
152 |
logical ok_veget |
logical ok_veget |
153 |
character*6 ocean |
character(len=*), intent(IN):: ocean |
154 |
integer npas, nexca |
integer npas, nexca |
155 |
c |
c |
156 |
REAL pctsrf(klon,nbsrf) |
REAL pctsrf(klon,nbsrf) |
177 |
REAL zv1(klon) |
REAL zv1(klon) |
178 |
cAA |
cAA |
179 |
c$$$ PB ajout pour soil |
c$$$ PB ajout pour soil |
180 |
LOGICAL soil_model |
LOGICAL, intent(in):: soil_model |
181 |
cIM ajout seuils cdrm, cdrh |
cIM ajout seuils cdrm, cdrh |
182 |
REAL cdmmax, cdhmax |
REAL cdmmax, cdhmax |
183 |
cIM: 261103 |
cIM: 261103 |
254 |
LOGICAL first_appel |
LOGICAL first_appel |
255 |
SAVE first_appel |
SAVE first_appel |
256 |
DATA first_appel/.true./ |
DATA first_appel/.true./ |
257 |
LOGICAL debugindex |
LOGICAL:: debugindex = .false. |
|
SAVE debugindex |
|
|
DATA debugindex/.false./ |
|
258 |
integer idayref |
integer idayref |
259 |
REAL t2m(klon,nbsrf), q2m(klon,nbsrf) |
REAL t2m(klon,nbsrf), q2m(klon,nbsrf) |
260 |
REAL u10m(klon,nbsrf), v10m(klon,nbsrf) |
REAL u10m(klon,nbsrf), v10m(klon,nbsrf) |
355 |
ENDDO |
ENDDO |
356 |
ENDDO |
ENDDO |
357 |
DO i = 1, klon ! vent de la premiere couche |
DO i = 1, klon ! vent de la premiere couche |
|
ccc zx_alf1 = (paprs(i,1)-pplay(i,2))/(pplay(i,1)-pplay(i,2)) |
|
358 |
zx_alf1 = 1.0 |
zx_alf1 = 1.0 |
359 |
zx_alf2 = 1.0 - zx_alf1 |
zx_alf2 = 1.0 - zx_alf1 |
360 |
u1lay(i) = u(i,1)*zx_alf1 + u(i,2)*zx_alf2 |
u1lay(i) = u(i,1)*zx_alf1 + u(i,2)*zx_alf2 |
656 |
call ustarhb(knon,yu,yv,y_cd_m, yustar) |
call ustarhb(knon,yu,yv,y_cd_m, yustar) |
657 |
|
|
658 |
if (prt_level > 9) THEN |
if (prt_level > 9) THEN |
659 |
WRITE(lunout,*)'USTAR = ',yustar |
print *,'USTAR = ',yustar |
660 |
ENDIF |
ENDIF |
661 |
|
|
662 |
c iflag_pbl peut etre utilise comme longuer de melange |
c iflag_pbl peut etre utilise comme longuer de melange |
910 |
enddo |
enddo |
911 |
enddo |
enddo |
912 |
cIM "slab" ocean |
cIM "slab" ocean |
|
IF(OCEAN.EQ.'slab '.OR.OCEAN.EQ.'force ') THEN |
|
913 |
IF (nsrf.EQ.is_oce) THEN |
IF (nsrf.EQ.is_oce) THEN |
914 |
DO j = 1, knon |
DO j = 1, knon |
915 |
c on projette sur la grille globale |
c on projette sur la grille globale |
933 |
ENDIF |
ENDIF |
934 |
ENDDO |
ENDDO |
935 |
ENDIF !nsrf.EQ.is_sic |
ENDIF !nsrf.EQ.is_sic |
|
ENDIF !OCEAN |
|
936 |
c |
c |
937 |
IF(OCEAN.EQ.'slab ') THEN |
IF(OCEAN.EQ.'slab ') THEN |
938 |
IF(nsrf.EQ.is_oce) then |
IF(nsrf.EQ.is_oce) then |