Changeset 4285 for LMDZ6/trunk
- Timestamp:
- Sep 27, 2022, 10:39:25 AM (2 years ago)
- Location:
- LMDZ6/trunk/libf/phylmdiso
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90
r4143 r4285 14 14 USE mod_grid_phy_lmdz, ONLY : klon_glo 15 15 USE ioipsl 16 USE surface_data, ONLY : type_ocean, ok_veget 16 USE surface_data, ONLY : type_ocean, ok_veget, landice_opt 17 17 USE surf_land_mod, ONLY : surf_land 18 18 USE surf_landice_mod, ONLY : surf_landice … … 2382 2382 CASE(is_lic) 2383 2383 ! Martin 2384 CALL surf_landice(itap, dtime, knon, ni, & 2385 rlon, rlat, debut, lafin, & 2386 yrmu0, ylwdown, yalb, zgeo1, & 2387 ysolsw, ysollw, yts, ypplay(:,1), & 2388 !!jyg ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),& 2389 ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,& 2390 AcoefH, AcoefQ, BcoefH, BcoefQ, & 2391 AcoefU, AcoefV, BcoefU, BcoefV, & 2392 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 2393 ysnow, yqsurf, yqsol, yagesno, & 2394 ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, & 2395 ytsurf_new, y_dflux_t, y_dflux_q, & 2396 yzmea, yzsig, ycldt, & 2397 ysnowhgt, yqsnow, ytoice, ysissnow, & 2398 yalb3_new, yrunoff, & 2399 y_flux_u1, y_flux_v1 & 2400 #ifdef ISO 2401 & ,yxtrain_f, yxtsnow_f,yxt1,yRland_ice & 2402 & ,yxtsnow,yxtsol,yxtevap & 2384 IF (landice_opt .LT. 2) THEN 2385 ! Land ice is treated by LMDZ and not by ORCHIDEE 2386 2387 CALL surf_landice(itap, dtime, knon, ni, & 2388 rlon, rlat, debut, lafin, & 2389 yrmu0, ylwdown, yalb, zgeo1, & 2390 ysolsw, ysollw, yts, ypplay(:,1), & 2391 !!jyg ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),& 2392 ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,& 2393 AcoefH, AcoefQ, BcoefH, BcoefQ, & 2394 AcoefU, AcoefV, BcoefU, BcoefV, & 2395 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 2396 ysnow, yqsurf, yqsol, yagesno, & 2397 ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, & 2398 ytsurf_new, y_dflux_t, y_dflux_q, & 2399 yzmea, yzsig, ycldt, & 2400 ysnowhgt, yqsnow, ytoice, ysissnow, & 2401 yalb3_new, yrunoff, & 2402 y_flux_u1, y_flux_v1 & 2403 #ifdef ISO 2404 & ,yxtrain_f, yxtsnow_f,yxt1,yRland_ice & 2405 & ,yxtsnow,yxtsol,yxtevap & 2403 2406 #endif 2404 & )2405 2406 !jyg<2407 !! alb3_lic(:)=0.2408 !>jyg2409 DO j = 1, knon2410 i = ni(j)2411 alb3_lic(i) = yalb3_new(j)2412 snowhgt(i) = ysnowhgt(j)2413 qsnow(i) = yqsnow(j)2414 to_ice(i) = ytoice(j)2415 sissnow(i) = ysissnow(j)2416 runoff(i) = yrunoff(j)2417 ENDDO2418 ! Martin2419 ! Special DICE MPL 05082013 puis BOMEX MPL 201504102420 IF (ok_prescr_ust) THEN2421 DO j=1,knon2422 y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1)2423 y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1)2424 ENDDO2425 ENDIF2426 2407 & ) 2408 2409 !jyg< 2410 !! alb3_lic(:)=0. 2411 !>jyg 2412 DO j = 1, knon 2413 i = ni(j) 2414 alb3_lic(i) = yalb3_new(j) 2415 snowhgt(i) = ysnowhgt(j) 2416 qsnow(i) = yqsnow(j) 2417 to_ice(i) = ytoice(j) 2418 sissnow(i) = ysissnow(j) 2419 runoff(i) = yrunoff(j) 2420 ENDDO 2421 ! Martin 2422 ! Special DICE MPL 05082013 puis BOMEX MPL 20150410 2423 IF (ok_prescr_ust) THEN 2424 DO j=1,knon 2425 y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1) 2426 y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1) 2427 ENDDO 2428 ENDIF 2429 2427 2430 #ifdef ISOVERIF 2428 do j=1,knon2429 do ixt=1,ntraciso2430 call iso_verif_noNaN(yxtevap(ixt,j), &2431 & 'pbl_surface 1095a: apres surf_landice')2432 call iso_verif_noNaN(yxtsol(ixt,j), &2433 & 'pbl_surface 1095b: apres surf_landice')2434 enddo2435 enddo2431 do j=1,knon 2432 do ixt=1,ntraciso 2433 call iso_verif_noNaN(yxtevap(ixt,j), & 2434 & 'pbl_surface 1095a: apres surf_landice') 2435 call iso_verif_noNaN(yxtsol(ixt,j), & 2436 & 'pbl_surface 1095b: apres surf_landice') 2437 enddo 2438 enddo 2436 2439 #endif 2437 2440 #ifdef ISOVERIF 2438 !write(*,*) 'pbl_surface_mod 1060: sortie surf_landice'2439 do j=1,knon2440 if (iso_eau.gt.0) then2441 call iso_verif_egalite(yxtsnow(iso_eau,j), &2442 & ysnow(j),'pbl_surf_mod 1064')2443 endif !if (iso_eau.gt.0) then2444 enddo !do i=1,klon2445 #endif 2446 2441 !write(*,*) 'pbl_surface_mod 1060: sortie surf_landice' 2442 do j=1,knon 2443 if (iso_eau.gt.0) then 2444 call iso_verif_egalite(yxtsnow(iso_eau,j), & 2445 & ysnow(j),'pbl_surf_mod 1064') 2446 endif !if (iso_eau.gt.0) then 2447 enddo !do i=1,klon 2448 #endif 2449 END IF 2447 2450 CASE(is_oce) 2448 2451 CALL surf_ocean(rlon, rlat, ysolsw, ysollw, yalb_vis, & -
LMDZ6/trunk/libf/phylmdiso/surf_land_mod.F90
r4143 r4285 30 30 USE dimphy 31 31 USE surface_data, ONLY : ok_veget 32 ! >> PC33 32 USE carbon_cycle_mod 34 ! << PC35 33 36 34 ! See comments in each module surf_land_orchidee_xxx for compatiblity with ORCHIDEE … … 51 49 USE surf_land_orchidee_nounstruct_mod 52 50 #else 51 #if ORCHIDEE_NOLIC 52 ! Compilation with cpp key ORCHIDEE_NOLIC 53 USE surf_land_orchidee_nolic_mod 54 #else 55 ! Default version#else 53 56 USE surf_land_orchidee_mod 57 #endif 54 58 #endif 55 59 #endif … … 67 71 #endif 68 72 #endif 69 70 ! >> PC 73 71 74 USE print_control_mod, ONLY: lunout 72 ! << PC73 75 74 76 INCLUDE "dimsoil.h" -
LMDZ6/trunk/libf/phylmdiso/surf_landice_mod.F90
r4143 r4285 144 144 INTEGER :: i,j,nt 145 145 REAL, DIMENSION(klon) :: fqfonte,ffonte 146 REAL, DIMENSION(klon) :: run_off_lic_frac 146 147 #ifdef ISO 147 148 real, parameter :: t_coup = 273.15 … … 484 485 ! Send run-off on land-ice to coupler if coupled ocean. 485 486 ! run_off_lic has been calculated in fonte_neige or surf_inlandsis 486 ! 487 !**************************************************************************************** 488 IF (type_ocean=='couple') THEN 489 CALL cpl_send_landice_fields(itime, knon, knindex, run_off_lic) 487 ! If landice_opt>=2, corresponding call is done from surf_land_orchidee 488 !**************************************************************************************** 489 IF (type_ocean=='couple' .AND. landice_opt .LT. 2) THEN 490 ! Compress fraction where run_off_lic is active (here all pctsrf(is_lic)) 491 run_off_lic_frac(:)=0.0 492 DO j = 1, knon 493 i = knindex(j) 494 run_off_lic_frac(j) = pctsrf(i,is_lic) 495 ENDDO 496 497 CALL cpl_send_landice_fields(itime, knon, knindex, run_off_lic, run_off_lic_frac) 490 498 ENDIF 491 499
Note: See TracChangeset
for help on using the changeset viewer.