Changeset 3397 for trunk/LMDZ.GENERIC/libf
- Timestamp:
- Jul 17, 2024, 4:30:09 PM (5 months ago)
- Location:
- trunk/LMDZ.GENERIC/libf/phystd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/phystd/ocean_slab_mod.F90
r3364 r3397 459 459 ! CALL calcul_flux_wind(knon, dtime, & 460 460 ! u0, v0, u1, v1, gustiness, cdragm, & 461 ! AcoefU, AcoefV, BcoefU, BcoefV, &462 ! p1lay, temp_air, &463 461 ! flux_u1, flux_v1) 464 462 … … 1055 1053 WHERE ((zmasq==0).and. & 1056 1054 ((fsic.LT.ice_frac_min).OR.(seaice.LT.h_ice_min))) 1055 !! WHERE ((fsic.LT.ice_frac_min).OR.(seaice.LT.h_ice_min)) 1057 1056 tslab(:,1)=tslab(:,1)-fsic*seaice*ice_lat*cyang 1058 1057 tice=t_melt … … 1106 1105 1107 1106 ! Set the output variables 1107 tslab_loc(:,:) = 0. 1108 tice_loc(:)=0. 1109 dt_hdiff_loc(:,:)=0. 1110 dt_ekman_loc(:,:)=0. 1111 dt_gm_loc(:,:)=0. 1108 1112 tslab_loc(:,:) = tslab(:,:) 1109 1113 tice_loc(:)=tice(:) 1110 1114 seaice_loc(:) = seaice(:) 1111 1115 flux_g_loc(:) = slab_bilg(:) 1112 dt_hdiff_loc(:,:)=0.1113 dt_ekman_loc(:,:)=0.1114 dt_gm_loc(:,:)=0.1115 1116 1116 1117 !! dt_hdiff_loc(:,i) = dt_hdiff(:,i)*slabh(i)*1000.*4228. !Convert en W/m2 -
trunk/LMDZ.GENERIC/libf/phystd/phyetat0_mod.F90
r3335 r3397 9 9 day_ini,time,tsurf,tsoil,emis,albedo, & 10 10 q2,qsurf,cloudfrac,totcloudfrac,hice, & 11 rnat,pctsrf_sic,tslab,tsea_ice, sea_ice)11 rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice) 12 12 13 13 ! to use 'getin_p' … … 58 58 real,intent(out) :: tsea_ice(ngrid),sea_ice(ngrid) 59 59 real,intent(out) :: rnat(ngrid) 60 !real,intent(out) :: tice(ngrid)60 real,intent(out) :: tice(ngrid) 61 61 62 62 !====================================================================== … … 363 363 tsea_ice(1:ngrid)=273.15-1.8 364 364 endif ! of if (startphy_file) 365 write(*,*) "phyetat0: Oceanic ice temperature <tsea_ice> range:", &365 write(*,*) "phyetat0: Oceanic ice/snow temperature <tsea_ice> range:", & 366 366 minval(tsea_ice), maxval(tsea_ice) 367 367 368 !if (startphy_file) then368 if (startphy_file) then 369 369 ! Oceanic ice temperature 370 !call get_field("tice",tice,found,indextime)371 !if (.not.found) then372 !write(*,*) "phyetat0: Failed loading <tice>"373 !tice(1:ngrid)=273.15-1.8374 !endif375 !else376 !tice(1:ngrid)=273.15-1.8377 !endif ! of if (startphy_file)378 !write(*,*) "phyetat0: Oceanic ice temperature <tice> range:", &379 !minval(tice), maxval(tice)370 call get_field("tice",tice,found,indextime) 371 if (.not.found) then 372 write(*,*) "phyetat0: Failed loading <tice>" 373 tice(1:ngrid)=273.15-1.8 374 endif 375 else 376 tice(1:ngrid)=273.15-1.8 377 endif ! of if (startphy_file) 378 write(*,*) "phyetat0: Oceanic ice surface temperature <tice> range:", & 379 minval(tice), maxval(tice) 380 380 381 381 if (startphy_file) then -
trunk/LMDZ.GENERIC/libf/phystd/phyredem.F90
r3335 r3397 136 136 phystep,time,tsurf,tsoil,emis,albedo,q2,qsurf, & 137 137 cloudfrac,totcloudfrac,hice, & 138 rnat,pctsrf_sic,tslab,tsea_ice, sea_ice)138 rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice) 139 139 ! write time-dependent variable to restart file 140 140 use iostart, only : open_restartphy, close_restartphy, & … … 171 171 real,intent(in) :: tsea_ice(ngrid) 172 172 real,intent(in) :: sea_ice(ngrid) 173 !real,intent(in) :: tice(ngrid)173 real,intent(in) :: tice(ngrid) 174 174 175 175 integer :: iq … … 208 208 call put_field("tslab","Temperature slab ocean",tslab) 209 209 call put_field("tsea_ice","Temperature of top layer (seaice or snow)",tsea_ice) 210 ! call put_field("tice","Temperature of seaice if snow on top",tice)210 call put_field("tice","Temperature of seaice",tice) 211 211 call put_field("sea_ice","Sea ice mass",sea_ice) 212 212 endif!(ok_slab_ocean) -
trunk/LMDZ.GENERIC/libf/phystd/phys_state_var_mod.F90
r3204 r3397 92 92 real,dimension(:,:),allocatable,save :: tslab ! Slab_ocean temperature (K) 93 93 real,dimension(:),allocatable,save :: tsea_ice ! Temperature of the top layer (K), either snow or ice 94 ! real,dimension(:),allocatable,save :: tice ! Sea ice temperature (K) if there is snow on top of it94 ! real,dimension(:),allocatable,save :: tice ! Sea ice temperature (K) 95 95 real,dimension(:),allocatable,save :: sea_ice 96 96 real,dimension(:),allocatable,save :: zmasq -
trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90
r3364 r3397 395 395 ! local variables for DIAGNOSTICS : (diagfi & stat) 396 396 ! ------------------------------------------------- 397 398 real tice(ngrid) ! Sea ice temperature 399 397 400 real ps(ngrid) ! Surface Pressure. 398 401 real zt(ngrid,nlayer) ! Atmospheric Temperature. … … 596 599 day_ini,time_phys,tsurf,tsoil,emis,albedo, & 597 600 q2,qsurf,cloudfrac,totcloudfrac,hice, & 598 rnat,pctsrf_sic,tslab, tsea_ice,sea_ice)601 rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice) 599 602 600 603 #else … … 605 608 #ifndef MESOSCALE 606 609 if (.not.startphy_file) then 607 ! addition nal "academic" initialization of physics610 ! additional "academic" initialization of physics 608 611 if (is_master) write(*,*) "Physiq: initializing tsurf(:) to pt(:,1) !!" 609 612 tsurf(:)=pt(:,1) … … 664 667 enddo 665 668 666 call ocean_slab_init(ptimestep, pctsrf_sic, tslab, t sea_ice, sea_ice, zmasq)669 call ocean_slab_init(ptimestep, pctsrf_sic, tslab, tice, sea_ice, zmasq) 667 670 668 671 !! CALL init_masquv(ngrid,zmasq) 669 672 ! ensure that "slab" variables match "physiq" ones 670 call ocean_slab_get_vars(ngrid, tslab, t sea_ice, sea_ice, flux_g, &673 call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, & 671 674 dt_hdiff, dt_ekman, dt_gm) 672 675 … … 1989 1992 tsea_ice, -zdqsdif(:,igcm_h2o_vap), taux, tauy, zmasq) 1990 1993 1991 call ocean_slab_frac(pctsrf_sic, zmasq) 1992 1993 call ocean_slab_get_vars(ngrid, tslab, t sea_ice, sea_ice, flux_g, &1994 call ocean_slab_frac(pctsrf_sic, zmasq) 1995 1996 call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, & 1994 1997 dt_hdiff, dt_ekman, dt_gm) 1998 1999 !!! call ocean_slab_get_vars(ngrid, tslab, tsea_ice, sea_ice, flux_g, & 2000 !!! dt_hdiff, dt_ekman, dt_gm) 1995 2001 1996 2002 !! sea_ice defines the sea ice thickness in kg/m2 … … 2389 2395 2390 2396 ! fetch "ocean variables" to ensure they are stored 2391 call ocean_slab_get_vars(ngrid, tslab, t sea_ice, sea_ice, flux_g, &2397 call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, & 2392 2398 dt_hdiff, dt_ekman, dt_gm) 2393 2399 … … 2396 2402 tsurf,tsoil,emis,albedo,q2,qsurf_hist, & 2397 2403 cloudfrac,totcloudfrac,hice, & 2398 rnat,pctsrf_sic,tslab,tsea_ice, sea_ice)2404 rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice) 2399 2405 endif 2400 2406 #endif … … 2485 2491 call wstats(ngrid,"pctsrf_sic","pct ice/sea","",2,pctsrf_sic) 2486 2492 call wstats(ngrid,"tsea_ice","top layer temp, snow/ice","K",2,tsea_ice) 2487 ! call wstats(ngrid,"tice"," ice temp if snow on top","K",2,tice)2493 ! call wstats(ngrid,"tice","sea ice temperature","K",2,tice) 2488 2494 call wstats(ngrid,"sea_ice","sea ice","kg/m2",2,sea_ice) 2489 2495 call wstats(ngrid,"rnat","nature of the surface","",2,rnat) … … 2528 2534 call writediagfi(ngrid,"pctsrf_sic","pct ice/sea","",2,pctsrf_sic) 2529 2535 call writediagfi(ngrid,"tsea_ice","top layer temp, snow/ice","K",2,tsea_ice) 2530 ! call writediagfi(ngrid,"tice"," ice temp if snow on top","K",2,tice)2536 ! call writediagfi(ngrid,"tice","sea ice temperature","K",2,tice) 2531 2537 call writediagfi(ngrid,"sea_ice","sea ice","kg/m2",2,sea_ice) 2532 2538 call writediagfi(ngrid,"tslab1","tslab1","K",2,tslab(:,1))
Note: See TracChangeset
for help on using the changeset viewer.