Changeset 3527 for trunk/LMDZ.COMMON/libf/evolution/ice_table_mod.F90
- Timestamp:
- Nov 20, 2024, 3:53:19 PM (26 hours ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/ice_table_mod.F90
r3525 r3527 184 184 do islope = 1,nslope 185 185 call compute_Tice_pem(nsoil,tsoil(ig,:,islope),tsurf(ig,islope),icetable_depth(ig,islope),Tice) 186 rho = -3.5353e-4*Tice**2 + 0.0351*Tice + 933.5030 ! Rottgers, 2012 187 delta_m_h2o(ig) = delta_m_h2o(ig) + porosity*rho*(icetable_thickness(ig,islope) - icetable_thickness_old(ig,islope)) & ! convention > 0. <=> it condenses 186 delta_m_h2o(ig) = delta_m_h2o(ig) + porosity*rho_ice(Tice,'h2o')*(icetable_thickness(ig,islope) - icetable_thickness_old(ig,islope)) & ! convention > 0. <=> it condenses 188 187 *subslope_dist(ig,islope)/cos(def_slope_mean(islope)*pi/180.) 189 188 enddo … … 195 194 do isoil = 1,nsoil 196 195 call compute_Tice_pem(nsoil,tsoil(ig,:,islope),tsurf(ig,islope),mlayer_PEM(isoil - 1),Tice) 197 rho = -3.5353e-4*Tice**2 + 0.0351*Tice + 933.5030 ! Rottgers, 2012 198 delta_m_h2o(ig) = delta_m_h2o(ig) + rho*(ice_porefilling(ig,isoil,islope) - ice_porefilling_old(ig,isoil,islope)) & ! convention > 0. <=> it condenses 196 delta_m_h2o(ig) = delta_m_h2o(ig) + rho_ice(Tice,'h2o')*(ice_porefilling(ig,isoil,islope) - ice_porefilling_old(ig,isoil,islope)) & ! convention > 0. <=> it condenses 199 197 *subslope_dist(ig,islope)/cos(def_slope_mean(islope)*pi/180.) 200 198 enddo … … 258 256 index_tmp = nsoilmx_PEM 259 257 do ilay = 1,nsoilmx_PEM 260 call constriction(porefill(ilay),eta(ilay))258 eta(ilay) = constriction(porefill(ilay)) 261 259 enddo 262 260 else 263 261 index_tmp = index_IS 264 262 do ilay = 1,index_IS - 1 265 call constriction(porefill(ilay),eta(ilay))263 eta(ilay) = constriction(porefill(ilay)) 266 264 enddo 267 265 do ilay = index_IS,nsoilmx_PEM … … 350 348 351 349 !----------------------------------------------------------------------- 352 SUBROUTINE constriction(porefill,eta)350 FUNCTION constriction(porefill) RESULT(eta) 353 351 354 352 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 363 361 364 362 real, intent(in) :: porefill ! pore filling fraction 365 real , intent(out):: eta ! constriction363 real :: eta ! constriction 366 364 367 365 if (porefill <= 0.) then … … 373 371 endif 374 372 375 END SUBROUTINEconstriction373 END FUNCTION constriction 376 374 377 375 !----------------------------------------------------------------------- … … 386 384 387 385 use comsoil_h_PEM, only: layer_PEM, mlayer_PEM 386 use abort_pem_mod, only: abort_pem 388 387 389 388 implicit none … … 422 421 endif 423 422 if (indexice < 0) then 424 call abort_p hysic("compute_Tice_pem","subsurface ice is below the last soil layer",1)423 call abort_pem("compute_Tice_pem","Subsurface ice is below the last soil layer!",1) 425 424 else 426 425 if(indexice >= 1) then ! Linear inteprolation between soil temperature … … 434 433 END SUBROUTINE compute_Tice_pem 435 434 435 !----------------------------------------------------------------------- 436 FUNCTION rho_ice(T,ice) RESULT(rho) 437 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 438 !!! 439 !!! Purpose: Compute subsurface ice density 440 !!! 441 !!! Author: JBC 442 !!! 443 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 444 445 use abort_pem_mod, only: abort_pem 446 447 implicit none 448 449 real, intent(in) :: T 450 character(3), intent(in) :: ice 451 real :: rho 452 453 select case (trim(adjustl(ice))) 454 case('h2o') 455 rho = -3.5353e-4*T**2 + 0.0351*T + 933.5030 ! Rottgers 2012 456 case('co2') 457 rho = (1.72391 - 2.53e-4*T-2.87*1e-7*T**2)*1.e3 ! Mangan et al. 2017 458 case default 459 call abort_pem("rho_ice","Type of ice not known!",1) 460 end select 461 462 END FUNCTION rho_ice 463 436 464 END MODULE ice_table_mod
Note: See TracChangeset
for help on using the changeset viewer.