Changeset 290 for LMDZ.3.3/branches/rel-LF
- Timestamp:
- Oct 31, 2001, 3:32:18 PM (23 years ago)
- Location:
- LMDZ.3.3/branches/rel-LF/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/calcratqs.F
r230 r290 53 53 flag_ratqs=1 54 54 flag_ratqs=0 55 zpt_conv=0. 55 56 c 56 57 c Appeler le processus de condensation a grande echelle -
LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F
r280 r290 285 285 y_flux_u = 0.0 286 286 y_flux_v = 0.0 287 C$$ PB 288 y_dflux_t = 0.0 289 y_dflux_q = 0.0 287 290 ytsoil = 999999. 291 yrugoro = 0. 288 292 289 293 DO nsrf = 1, nbsrf … … 466 470 c 467 471 c calculer la longueur de rugosite sur ocean 472 yrugm=0. 468 473 IF (nsrf.EQ.is_oce) THEN 469 474 DO j = 1, knon … … 499 504 ENDDO 500 505 ENDDO 501 506 502 507 503 508 evap(:,nsrf) = - flux_q(:,1,nsrf) … … 805 810 C Appel a interfsurf (appel generique) routine d'interface avec la surface 806 811 812 c initialisation 813 petAcoef =0. 814 peqAcoef = 0. 815 petBcoef =0. 816 peqBcoef = 0. 817 p1lay =0. 818 807 819 c do i = 1, knon 808 petAcoef =zx_ch(:,1)809 peqAcoef =zx_cq(:,1)810 petBcoef =zx_dh(:,1)811 peqBcoef =zx_dq(:,1)812 tq_cdrag =coef(:,1)813 temp_air =t(:,1)814 epot_air =local_h(:,1)815 spechum =q(:,1)816 p1lay = pplay(:,1)817 zlev1 = delp(:,1)820 petAcoef(1:knon) = zx_ch(1:knon,1) 821 peqAcoef(1:knon) = zx_cq(1:knon,1) 822 petBcoef(1:knon) = zx_dh(1:knon,1) 823 peqBcoef(1:knon) = zx_dq(1:knon,1) 824 tq_cdrag(1:knon) =coef(1:knon,1) 825 temp_air(1:knon) =t(1:knon,1) 826 epot_air(1:knon) =local_h(1:knon,1) 827 spechum(1:knon)=q(1:knon,1) 828 p1lay(1:knon) = pplay(1:knon,1) 829 zlev1(1:knon) = delp(1:knon,1) 818 830 swnet = swdown * (1. - albedo) 819 831 c enddo -
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r281 r290 42 42 real, allocatable, dimension(:),save :: run_off 43 43 real, allocatable, dimension(:),save :: coastalflow, riverflow 44 45 44 !!$PB 45 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: tmp_rriv, tmp_rcoa 46 !!$ 46 47 CONTAINS 47 48 ! … … 268 269 call abort_gcm(modname,abort_message,1) 269 270 endif 271 !!$PB 272 ALLOCATE (tmp_rriv(iim,jjm+1), stat=error) 273 if (error /= 0) then 274 abort_message='Pb allocation tmp_rriv' 275 call abort_gcm(modname,abort_message,1) 276 endif 277 ALLOCATE (tmp_rcoa(iim,jjm+1), stat=error) 278 if (error /= 0) then 279 abort_message='Pb allocation tmp_rcoa' 280 call abort_gcm(modname,abort_message,1) 281 endif 282 !!$ 270 283 else if (size(coastalflow) /= knon) then 271 284 write(*,*)'Bizarre, le nombre de points continentaux' … … 768 781 integer :: indi, indj 769 782 integer, dimension(klon) :: ktindex 783 REAL, dimension(klon) :: bidule 770 784 ! Essai cdrag 771 785 real, dimension(klon) :: cdrag … … 1061 1075 & lon_scat, lat_scat) 1062 1076 1063 ! alb_new(:) = (albedo_out(:,1) + albedo_out(:,2)) / 2. 1064 alb_new(1:knon) = albedo_out(1:knon,1) 1065 alblw(1:knon) = albedo_out(1:knon,2) 1077 bidule=0. 1078 bidule(1:knon)=riverflow(1:knon) 1079 call gath2cpl(bidule, tmp_rriv, klon, knon,iim,jjm, ktindex) 1080 bidule=0. 1081 bidule(1:knon)=coastalflow(1:knon) 1082 call gath2cpl(bidule, tmp_rcoa, klon, knon,iim,jjm, ktindex) 1083 alb_new(1:knon) = albedo_out(1:knon,1) 1084 alblw(1:knon) = albedo_out(1:knon,2) 1085 1066 1086 1067 1087 ! Convention orchidee: positif vers le haut 1068 fluxsens = -1. * fluxsens 1069 fluxlat = -1. * fluxlat 1088 fluxsens(1:knon) = -1. * fluxsens(1:knon) 1089 fluxlat(1:knon) = -1. * fluxlat(1:knon) 1090 1070 1091 ! evap = -1. * evap 1071 1092 … … 1170 1191 real, allocatable, dimension(:,:),save :: cpl_snow, cpl_evap, cpl_tsol 1171 1192 real, allocatable, dimension(:,:),save :: cpl_fder, cpl_albe, cpl_taux 1172 real, allocatable, dimension(:,:),save :: cpl_tauy, cpl_rriv, cpl_rcoa 1193 !!$PB real, allocatable, dimension(:,:),save :: cpl_tauy, cpl_rriv, cpl_rcoa 1194 real, allocatable, dimension(:,:),save :: cpl_tauy 1195 real, allocatable, dimension(:,:),save :: cpl_rriv, cpl_rcoa 1196 !!$ 1173 1197 ! variables tampons avant le passage au coupleur 1174 1198 real, allocatable, dimension(:,:,:),save :: tmp_sols, tmp_nsol, tmp_rain 1175 1199 real, allocatable, dimension(:,:,:),save :: tmp_snow, tmp_evap, tmp_tsol 1176 1200 real, allocatable, dimension(:,:,:),save :: tmp_fder, tmp_albe, tmp_taux 1177 real, allocatable, dimension(:,:,:),save :: tmp_tauy, tmp_rriv, tmp_rcoa 1201 !!$ real, allocatable, dimension(:,:,:),save :: tmp_tauy, tmp_rriv, tmp_rcoa 1202 REAL, ALLOCATABLE, DIMENSION(:,:,:),SAVE :: tmp_tauy 1178 1203 ! variables a passer au coupleur 1179 1204 real, dimension(iim, jjm+1) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice … … 1245 1270 allocate(cpl_taux(klon,2), stat = error); sum_error = sum_error + error 1246 1271 allocate(cpl_tauy(klon,2), stat = error); sum_error = sum_error + error 1247 allocate(cpl_rcoa(klon,2), stat = error); sum_error = sum_error + error 1248 allocate(cpl_rriv(klon,2), stat = error); sum_error = sum_error + error 1272 !!$PB 1273 !!$ allocate(cpl_rcoa(klon,2), stat = error); sum_error = sum_error + error 1274 !!$ allocate(cpl_rriv(klon,2), stat = error); sum_error = sum_error + error 1275 ALLOCATE(cpl_rriv(iim,jjm+1), stat=error); sum_error = sum_error + error 1276 ALLOCATE(cpl_rcoa(iim,jjm+1), stat=error); sum_error = sum_error + error 1277 !! 1249 1278 allocate(read_sst(iim, jjm+1), stat = error); sum_error = sum_error + error 1250 1279 allocate(read_sic(iim, jjm+1), stat = error); sum_error = sum_error + error … … 1347 1376 cpl_tauy(ig,cpl_index) = cpl_tauy(ig,cpl_index) & 1348 1377 & + tauy(ig) / FLOAT(nexca) 1349 cpl_rriv(ig,cpl_index) = cpl_rriv(ig,cpl_index) &1350 & + riverflow(ig) / FLOAT(nexca)/dtime1351 cpl_rcoa(ig,cpl_index) = cpl_rcoa(ig,cpl_index) &1352 & + coastalflow(ig) / FLOAT(nexca)/dtime1378 !!$ cpl_rriv(ig,cpl_index) = cpl_rriv(ig,cpl_index) & 1379 !!$ & + riverflow(ig) / FLOAT(nexca)/dtime 1380 !!$ cpl_rcoa(ig,cpl_index) = cpl_rcoa(ig,cpl_index) & 1381 !!$ & + coastalflow(ig) / FLOAT(nexca)/dtime 1353 1382 enddo 1383 IF (cpl_index .EQ. 1) THEN 1384 cpl_rriv(:,:) = cpl_rriv(:,:) + tmp_rriv(:,:) / FLOAT(nexca) 1385 cpl_rcoa(:,:) = cpl_rcoa(:,:) + tmp_rcoa(:,:) / FLOAT(nexca) 1386 ENDIF 1354 1387 endif 1355 1388 … … 1448 1481 allocate(tmp_taux(iim,jjm+1,2), stat=error); sum_error = sum_error + error 1449 1482 allocate(tmp_tauy(iim,jjm+1,2), stat=error); sum_error = sum_error + error 1450 allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error1451 allocate(tmp_rcoa(iim,jjm+1,2), stat=error); sum_error = sum_error + error1483 !!$ allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error 1484 !!$ allocate(tmp_rcoa(iim,jjm+1,2), stat=error); sum_error = sum_error + error 1452 1485 if (sum_error /= 0) then 1453 1486 abort_message='Pb allocation variables couplees pour l''ecriture' … … 1471 1504 call gath2cpl(cpl_taux(1,cpl_index), tmp_taux(1,1,cpl_index), klon, knon,iim,jjm, knindex) 1472 1505 call gath2cpl(cpl_tauy(1,cpl_index), tmp_tauy(1,1,cpl_index), klon, knon,iim,jjm, knindex) 1473 call gath2cpl(cpl_rriv(1,cpl_index), tmp_rriv(1,1,cpl_index), klon, knon,iim,jjm, knindex)1474 call gath2cpl(cpl_rcoa(1,cpl_index), tmp_rcoa(1,1,cpl_index), klon, knon,iim,jjm, knindex)1506 !!$ call gath2cpl(cpl_rriv(1,cpl_index), tmp_rriv(1,1,cpl_index), klon, knon,iim,jjm, knindex) 1507 !!$ call gath2cpl(cpl_rcoa(1,cpl_index), tmp_rcoa(1,1,cpl_index), klon, knon,iim,jjm, knindex) 1475 1508 1476 1509 ! … … 1490 1523 wri_evap_ice = tmp_evap(:,:,2) 1491 1524 wri_evap_sea = tmp_evap(:,:,1) 1525 !!$PB 1526 wri_rriv = cpl_rriv(:,:) 1527 wri_rcoa = cpl_rcoa(:,:) 1528 1492 1529 where (tamp_zmasq /= 1.) 1493 1530 deno = tamp_srf(:,:,1) + tamp_srf(:,:,2) … … 1496 1533 wri_snow = tmp_snow(:,:,1) * tamp_srf(:,:,1) / deno + & 1497 1534 & tmp_snow(:,:,2) * tamp_srf(:,:,2) / deno 1498 wri_rriv = tmp_rriv(:,:,1) * tamp_srf(:,:,1) / deno + & 1499 & tmp_rriv(:,:,2) * tamp_srf(:,:,2) / deno 1500 wri_rcoa = tmp_rcoa(:,:,1) * tamp_srf(:,:,1) / deno + & 1501 & tmp_rcoa(:,:,2) * tamp_srf(:,:,2) / deno 1535 !!$PB 1536 !!$ wri_rriv = tmp_rriv(:,:,1) * tamp_srf(:,:,1) / deno + & 1537 !!$ & tmp_rriv(:,:,2) * tamp_srf(:,:,2) / deno 1538 !!$ wri_rcoa = tmp_rcoa(:,:,1) * tamp_srf(:,:,1) / deno + & 1539 !!$ & tmp_rcoa(:,:,2) * tamp_srf(:,:,2) / deno 1502 1540 wri_taux = tmp_taux(:,:,1) * tamp_srf(:,:,1) / deno + & 1503 1541 & tmp_taux(:,:,2) * tamp_srf(:,:,2) / deno … … 1557 1595 & wri_nsol_sea, wri_fder_ice, wri_evap_ice, wri_evap_sea, wri_rain, & 1558 1596 & wri_snow, wri_rcoa, wri_rriv, wri_tauxx, wri_tauyy, wri_tauzz, & 1559 & wri_tauxx, wri_tauyy, wri_tauzz,lafin ) 1597 & wri_tauxx, wri_tauyy, wri_tauzz,lafin ) 1598 ! 1560 1599 cpl_sols = 0.; cpl_nsol = 0.; cpl_rain = 0.; cpl_snow = 0. 1561 1600 cpl_evap = 0.; cpl_tsol = 0.; cpl_fder = 0.; cpl_albe = 0. … … 1575 1614 deallocate(tmp_taux, stat=error); sum_error = sum_error + error 1576 1615 deallocate(tmp_tauy, stat=error); sum_error = sum_error + error 1577 deallocate(tmp_rriv, stat=error); sum_error = sum_error + error 1578 deallocate(tmp_rcoa, stat=error); sum_error = sum_error + error 1616 !!$PB 1617 !!$ deallocate(tmp_rriv, stat=error); sum_error = sum_error + error 1618 !!$ deallocate(tmp_rcoa, stat=error); sum_error = sum_error + error 1579 1619 if (sum_error /= 0) then 1580 1620 abort_message='Pb deallocation variables couplees' … … 2133 2173 ! Initialisation 2134 2174 ! 2175 evap = 0. 2176 fluxsens=0. 2177 fluxlat=0. 2178 dflux_s = 0. 2179 dflux_l = 0. 2135 2180 ! 2136 2181 ! zx_qs = qsat en kg/kg -
LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F
r287 r290 1640 1640 c 1641 1641 ENDIF 1642 1643 c$$$PB Positionner date0 pour initialisation de ORCHIDEE 1644 c$$$ date0 = zjulian 1645 date0 = day_ini 1646 WRITE(*,*) 'physiq date0 : ',date0 1642 1647 c 1643 1648 c
Note: See TracChangeset
for help on using the changeset viewer.