Changeset 5717 for LMDZ6/branches/contrails/libf/phylmd/dyn1d
- Timestamp:
- Jun 18, 2025, 5:12:20 PM (5 weeks ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5603,5605,5607,5610-5612,5614,5617,5620,5622,5627-5630,5633,5635-5636,5638,5640,5645-5653
- Property svn:mergeinfo changed
-
LMDZ6/branches/contrails/libf/phylmd/dyn1d/1DUTILS.h
r5392 r5717 415 415 CALL getin('tau_soil_nudge',tau_soil_nudge) 416 416 417 !Config Key = nb_ter_srf 418 !Config Desc = nb_ter_srf 419 !Config Def = 0 420 !Config Help = 421 nb_ter_srf = 0 422 CALL getin('nb_ter_srf',nb_ter_srf) 423 424 !Config Key = alpha_soil_ter_srf 425 !Config Desc = alpha_soil_ter_srf 426 !Config Def = 2. 427 !Config Help = 428 alpha_soil_ter_srf = 2. 429 CALL getin('alpha_soil_ter_srf',alpha_soil_ter_srf) 430 431 !Config Key = period_ter_srf 432 !Config Desc = period_ter_srf 433 !Config Def = 1800. 434 !Config Help = 435 period_ter_srf = 1800. 436 CALL getin('period_ter_srf',period_ter_srf) 437 438 !Config Key = frac_ter_srf 439 !Config Desc = frac_ter_srf 440 !Config Def = 0. 441 !Config Help = 442 frac_ter_srf = 0. 443 CALL getin('frac_ter_srf',frac_ter_srf) 444 445 !Config Key = rugos_ter_srf 446 !Config Desc = rugos_ter_srf 447 !Config Def = 0. 448 !Config Help = 449 rugos_ter_srf = 0. 450 CALL getin('rugos_ter_srf',rugos_ter_srf) 451 452 !Config Key = ratio_z0m_z0h_ter_srf 453 !Config Desc = ratio_z0m_z0h_ter_srf 454 !Config Def = 10. 455 !Config Help = 456 ratio_z0m_z0h_ter_srf = 10. 457 CALL getin('ratio_z0m_z0h_ter_srf',ratio_z0m_z0h_ter_srf) 458 459 !Config Key = albedo_ter_srf 460 !Config Desc = albedo_ter_srf 461 !Config Def = 0. 462 !Config Help = 463 albedo_ter_srf = 0. 464 CALL getin('albedo_ter_srf',albedo_ter_srf) 465 466 !Config Key = beta_ter_srf 467 !Config Desc = beta_ter_srf 468 !Config Def = 0. 469 !Config Help = 470 beta_ter_srf = 0. 471 CALL getin('beta_ter_srf',beta_ter_srf) 472 473 !Config Key = inertie_ter_srf 474 !Config Desc = inertie_ter_srf 475 !Config Def = 0. 476 !Config Help = 477 inertie_ter_srf = 0. 478 CALL getin('inertie_ter_srf',inertie_ter_srf) 479 480 !Config Key = hcond_ter_srf 481 !Config Desc = hcond_ter_srf 482 !Config Def = 0. 483 !Config Help = 484 hcond_ter_srf = 0. 485 CALL getin('hcond_ter_srf',hcond_ter_srf) 486 487 !Config Key = tsurf_ter_srf 488 !Config Desc = tsurf_ter_srf 489 !Config Def = 283. 490 !Config Help = 491 tsurf_ter_srf = 283. 492 CALL getin('tsurf_ter_srf',tsurf_ter_srf) 493 494 !Config Key = tsoil_ter_srf 495 !Config Desc = tsoil_ter_srf 496 !Config Def = 283. 497 !Config Help = 498 tsoil_ter_srf = 283. 499 CALL getin('tsoil_ter_srf',tsoil_ter_srf) 500 501 !Config Key = tsoil_depths 502 !Config Desc = tsoil_depths 503 !Config Def = 0. 504 !Config Help = 505 tsoil_depths = 0. 506 CALL getin('tsoil_depths',tsoil_depths) 507 508 !Config Key = nb_tsoil_depths 509 !Config Desc = nb_tsoil_depths 510 !Config Def = 0 511 !Config Help = 512 nb_tsoil_depths = 0 513 CALL getin('nb_tsoil_depths',nb_tsoil_depths) 514 417 515 !---------------------------------------------------------- 418 516 ! Param??tres de for??age pour les forcages communs: … … 631 729 write(lunout,*)' nudging_t = ', nudging_t 632 730 write(lunout,*)' nudging_qv = ', nudging_qv 731 write(lunout,*)' nb_ter_srf = ', nb_ter_srf 732 write(lunout,*)' alpha_soil_ter_srf = ', alpha_soil_ter_srf 733 write(lunout,*)' period_ter_srf = ', period_ter_srf 734 write(lunout,*)' frac_ter_srf = ', frac_ter_srf 735 write(lunout,*)' rugos_ter_srf = ', rugos_ter_srf 736 write(lunout,*)' ratio_z0m_z0h_ter_srf = ', ratio_z0m_z0h_ter_srf 737 write(lunout,*)' albedo_ter_srf = ', albedo_ter_srf 738 write(lunout,*)' beta_ter_srf = ', beta_ter_srf 739 write(lunout,*)' inertie_ter_srf = ', inertie_ter_srf 740 write(lunout,*)' hcond_ter_srf = ', hcond_ter_srf 741 write(lunout,*)' tsurf_ter_srf = ', tsurf_ter_srf 742 write(lunout,*)' tsoil_ter_srf = ', tsoil_ter_srf 743 633 744 IF (forcing_type .eq.40) THEN 634 745 write(lunout,*) '--- Forcing type GCSS Old --- with:' -
LMDZ6/branches/contrails/libf/phylmd/dyn1d/compar1d_mod_h.f90
r5302 r5717 8 8 iflag_nudge, snowmass, & 9 9 restart, ok_old_disvert, & 10 nb_ter_srf, alpha_soil_ter_srf, period_ter_srf, frac_ter_srf, & 11 rugos_ter_srf, ratio_z0m_z0h_ter_srf, albedo_ter_srf, beta_ter_srf, & 12 inertie_ter_srf, hcond_ter_srf, tsurf_ter_srf, tsoil_ter_srf, & 13 tsoil_depths, nb_tsoil_depths, & 10 14 tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, & 11 15 trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, & … … 44 48 LOGICAL :: ok_old_disvert 45 49 50 INTEGER :: nb_ter_srf 51 REAL :: alpha_soil_ter_srf 52 REAL :: period_ter_srf 53 REAL, DIMENSION(5) :: frac_ter_srf 54 REAL, DIMENSION(5) :: rugos_ter_srf 55 REAL, DIMENSION(5) :: ratio_z0m_z0h_ter_srf 56 REAL, DIMENSION(5) :: albedo_ter_srf 57 REAL, DIMENSION(5) :: beta_ter_srf 58 REAL, DIMENSION(5) :: inertie_ter_srf 59 REAL, DIMENSION(5) :: hcond_ter_srf 60 REAL, DIMENSION(5) :: tsurf_ter_srf 61 REAL, DIMENSION(5*5) :: tsoil_ter_srf 62 REAL, DIMENSION(5*5) :: tsoil_depths 63 INTEGER :: nb_tsoil_depths 64 46 65 ! Pour les forcages communs: ces entiers valent 0 ou 1 47 66 ! tadv= advection tempe, tadvv= adv tempe verticale, tadvh= adv tempe horizontale … … 65 84 !$OMP iflag_nudge, snowmass, & 66 85 !$OMP restart, ok_old_disvert, & 86 !$OMP nb_ter_srf, frac_ter_srf, rugos_ter_srf, albedo_ter_srf, & 87 !$OMP beta_ter_srf, inertie_ter_srf, alpha_soil_ter_srf, & 88 !$OMP period_ter_srf, hcond_ter_srf, ratio_z0m_z0h_ter_srf, & 89 !$OMP tsurf_ter_srf, tsoil_ter_srf, tsoil_depths, nb_tsoil_depths, & 67 90 !$OMP tadv, tadvv, tadvh, qadv, qadvv, qadvh, thadv, thadvv, thadvh, & 68 91 !$OMP trad, forc_omega, forc_u, forc_v, forc_w, forc_geo, forc_ustar, & -
LMDZ6/branches/contrails/libf/phylmd/dyn1d/scm.f90
r5626 r5717 8 8 clwcon, detr_therm, & 9 9 qsol, fevap, z0m, z0h, agesno, & 10 frac_tersrf, z0m_tersrf, ratio_z0m_z0h_tersrf, & 11 albedo_tersrf, beta_tersrf, inertie_tersrf, & 12 alpha_soil_tersrf, period_tersrf, hcond_tersrf, & 13 tsurfi_tersrf, tsoili_tersrf, tsoil_depth, & 10 14 du_gwd_rando, du_gwd_front, entr_therm, f0, fm_therm, & 11 15 falb_dir, falb_dif, & … … 179 183 real :: fder(1),snsrf(1,nbsrf),qsurfsrf(1,nbsrf) 180 184 real :: tsoil(1,nsoilmx,nbsrf) 185 ! AM 186 REAL, ALLOCATABLE, DIMENSION(:,:) :: tsoil_ter_srf2 ! resized initial soil temperature on vertical levels (K) 187 REAL, ALLOCATABLE, DIMENSION(:,:) :: tsoil_depths2 ! resized soil depth at which inititial temperature is given (m) 181 188 182 189 !--------------------------------------------------------------------- … … 223 230 ! <> 0, tendencies of forcing are not added 224 231 INTEGER :: flag_inhib_forcing = 0 225 232 CHARACTER(len=80) :: abort_message 233 CHARACTER(len=20) :: modname = 'scm' 226 234 227 235 print*,'VOUS ENTREZ DANS LE 1D FORMAT STANDARD' … … 386 394 ! call init_phys_lmdz(1,1,llm,1,(/1/)) ! job now done via iniphysiq 387 395 ! but we still need to initialize dimphy module (klon,klev,etc.) here. 388 call init_dimphy1D(1,llm )396 call init_dimphy1D(1,llm,nb_ter_srf,nb_tsoil_depths) 389 397 call suphel 390 398 call init_infotrac … … 561 569 agesno = xagesno 562 570 tsoil(:,:,:)=tsurf 571 572 iflag_hetero_surf = 0 573 CALL getin('iflag_hetero_surf',iflag_hetero_surf) 574 575 IF (iflag_hetero_surf .GT. 0) THEN 576 PRINT*, 'scm iflag_hetero_surf', iflag_hetero_surf 577 IF ((nbtersrf .LT. 2) .OR. (nbtersrf .GT. max_nbtersrf)) THEN 578 abort_message='The number of continental sub-surfaces (nb_ter_srf) must be between 2 and 5' 579 CALL abort_physic(modname,abort_message,1) 580 ENDIF 581 ! resized initial soil temperature on vertical levels and soil depth at which inititial temperature is given 582 ALLOCATE(tsoil_ter_srf2(nbtsoildepths,nbtersrf)) 583 ALLOCATE(tsoil_depths2(nbtsoildepths,nbtersrf)) 584 tsoil_ter_srf2(:,:) = 0. 585 tsoil_depths2(:,:) = 0. 586 DO i=1, nbtersrf 587 DO l=1, nbtsoildepths 588 k = nbtsoildepths*(i-1)+l 589 tsoil_ter_srf2(l,i) = tsoil_ter_srf(k) 590 tsoil_depths2(l,i) = tsoil_depths(k) 591 ENDDO 592 ENDDO 593 ! 594 DO i=1, nbtersrf 595 frac_tersrf(:,i) = frac_ter_srf(i) ! fraction of land surface heterogeneity (-) 596 z0m_tersrf(:,i) = rugos_ter_srf(i) ! roughness length for momentum of land sub-surfaces (m) 597 ratio_z0m_z0h_tersrf(:,i) = ratio_z0m_z0h_ter_srf(i) ! ratio of heat to momentum roughness length of land sub-surfaces (-) 598 albedo_tersrf(:,i) = albedo_ter_srf(i) ! albedo of land sub-surfaces (-) 599 beta_tersrf(:,i) = beta_ter_srf(i) ! evapotranspiration coef of land sub-surfaces (-) 600 inertie_tersrf(:,i) = inertie_ter_srf(i) ! soil thermal inertia of land sub-surfaces (J/m2/K/s1/2) 601 hcond_tersrf(:,i) = hcond_ter_srf(i) ! soil heat conductivity (W/(m.K)) 602 tsurfi_tersrf(:,i) = tsurf_ter_srf(i) ! initial surface temperature (K) 603 DO l=1, nbtsoildepths 604 tsoili_tersrf(:,l,i) = tsoil_ter_srf2(l,i) ! initial soil temperature on vertical levels (K) 605 tsoil_depth(:,l,i) = tsoil_depths2(l,i) 606 ENDDO 607 ENDDO 608 alpha_soil_tersrf = alpha_soil_ter_srf ! ratio between the thicknesses of 2 successive layers (-) 609 period_tersrf = period_ter_srf ! temperature oscillation amplitude period 610 ! 611 DEALLOCATE(tsoil_ter_srf2) 612 DEALLOCATE(tsoil_depths2) 613 ENDIF 614 563 615 !----------------------------------------------------------------------- 564 616 call pbl_surface_init(fder, snsrf, qsurfsrf, tsoil)
Note: See TracChangeset
for help on using the changeset viewer.