Ignore:
Timestamp:
Feb 27, 2025, 2:53:07 PM (6 months ago)
Author:
emoisan
Message:

Titan physics (under MESOSCALE precompiling flag):
Change initialization for microphysics model, to be consistent with
initialization for physics.
The parameters are now defined in callphys.def instead of datagcm.
The new callphys.def with all the parameters is in deftank
(callphys.def.allmuparams).
EMo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/inifis_mod.F90

    r3497 r3657  
    2020  use planete_mod, only: nres
    2121  use planetwide_mod, only: planetwide_sumval
     22  use mm_globals, only: mm_global_init_0
     23  use mmp_globals, only: mmp_w_ps2s, mmp_w_qe
    2224  use callkeys_mod
    2325  use mod_phys_lmdz_para, only : is_parallel
     26  use errors, only: error
    2427
    2528!=======================================================================
     
    7376  integer,intent(in) :: day_ini
    7477  INTEGER ig,ierr
     78  TYPE(error) :: err
    7579 
    7680  EXTERNAL iniorbit,orbite
    7781  EXTERNAL SSUM
    7882  REAL SSUM
    79  
     83
    8084  ! Initialize flags lunout, prt_level, debug (in print_control_mod)
    8185  CALL init_print_control
     
    9397
    9498  ! Initialize some "temporal and calendar" related variables
    95 #ifndef MESOSCALE
     99  ! -- MESOSCALE : we do it for the right print (and avoid crash in debug)
     100  ! -- MESOSCALE : and sporadic use in physiq, e.g. daysec used in soil
    96101  CALL init_time(day_ini,pdaysec,nday,ptimestep)
    97 #endif
    98102
    99103  ! read in some parameters from "run.def" for physics,
     
    503507
    504508     write(*,*) "Equivalent radius production (m) ?"
    505      rc_prod=2.0e-8 ! default value
     509     rc_prod=1.0e-8 ! default value
    506510     call getin_p("rc_prod",rc_prod)
    507511     write(*,*)" rhc_prod = ",rc_prod
     
    513517
    514518     write(*,*) "Path to microphys. config file ?"
    515      config_mufi='datagcm/microphysics/config.cfg' ! default value
     519     ! default path is set in datadir
     520     write(*,*) "microphysics config file data base folder:",trim(datadir),"/microphysics"
     521     config_mufi=trim(datadir)//'/microphysics/config.ne15.cfg' ! default value
    516522     call getin_p("config_mufi",config_mufi)
     523     config_mufi = trim(datadir)//'/microphysics/'//config_mufi
    517524     write(*,*)" config_mufi = ",config_mufi
     525
     526! in mesoscale the following variables are defined in callphys.def
     527! before they were defined in the config file, in datagcm (EMoi)
     528#ifdef MESOSCALE
     529     write(*,*) "Monomer radius (m)"
     530     rm=50e-9 ! default value
     531     call getin_p("rm",rm)
     532     write(*,*)" rm = ",rm
     533 
     534     write(*,*) "Fractal dimension"
     535     df=2.0 ! default value
     536     call getin_p("df",df)
     537     write(*,*)" df = ",df
     538 
     539     write(*,*) "Aerosol density (kg.m-3)"
     540     rho_aer=600. ! default value
     541     call getin_p("rho_aer",rho_aer)
     542     write(*,*)" rho_aer = ",rho_aer
     543 
     544     write(*,*) "Enable/disable Haze production process"
     545     w_h_prod=.true. ! default value
     546     call getin_p("haze_production",w_h_prod)
     547     write(*,*)" haze_production = ",w_h_prod
     548 
     549     write(*,*) "Enable/disable Haze coagulation process"
     550     w_h_coag=.true. ! default value
     551     call getin_p("haze_coagulation",w_h_coag)
     552     write(*,*)" haze_coagulation = ",w_h_coag
     553 
     554     write(*,*) "Coagulation interactions"
     555     coag_choice=7 ! default value
     556     call getin_p("haze_coag_interactions",coag_choice)
     557     write(*,*)" haze_coag_interactions = ",coag_choice
     558 
     559     write(*,*) "Enable/disable Haze sedimentation process"
     560     w_h_sed=.true. ! default value
     561     call getin_p("haze_sedimentation",w_h_sed)
     562     write(*,*)" haze_sedimentation = ",w_h_sed
     563 
     564     write(*,*) "Disable Fiadero correction for sedimentation process"
     565     no_fiadero=.true. ! default value
     566     call getin_p("no_fiadero",no_fiadero)
     567     write(*,*)" no_fiadero = ",no_fiadero
     568 
     569     write(*,*) "Fiadero correction minimum ratio threshold"
     570     fiad_min=0.1 ! default value
     571     call getin_p("fiadero_min_ratio",fiad_min)
     572     write(*,*)" fiadero_min_ratio = ",fiad_min
     573 
     574     write(*,*) "Fiadero correction maximum ratio threshold"
     575     fiad_max=10. ! default value
     576     call getin_p("fiadero_max_ratio",fiad_max)
     577     write(*,*)" fiadero_max_ratio = ",fiad_max
     578 
     579     write(*,*) "Force settling velocity to M0"
     580     fwsed_m0=.true. ! default value
     581     call getin_p("wsed_m0",fwsed_m0)
     582     write(*,*)" wsed_m0 = ",fwsed_m0
     583 
     584     write(*,*) "Force settling velocity to M3"
     585     fwsed_m3=.false. ! default value
     586     call getin_p("wsed_m3",fwsed_m3)
     587     write(*,*)" wsed_m3 = ",fwsed_m3
     588 
     589     write(*,*) "Enable/disable clouds sedimentation process"
     590     w_c_sed=.true. ! default value
     591     call getin_p("clouds_sedimentation",w_c_sed)
     592     write(*,*)" clouds_sedimentation = ",w_c_sed
     593 
     594     write(*,*) "Enable/disable clouds nucleation and condensation processes"
     595     w_c_nucond=.true. ! default value
     596     call getin_p("clouds_nuc_cond",w_c_nucond)
     597     write(*,*)" clouds_nuc_cond = ",w_c_nucond
     598 
     599     write(*,*) "Path to condensible species configuration file"
     600     ! default path is set in datadir
     601     write(*,*) "condensible species config file data base folder:",trim(datadir),"/microphysics"
     602     spcpath=trim(datadir)//"/microphysics/mp2m_species.cfg" ! default value
     603     call getin_p("specie_cfg",spcpath)
     604     spcpath = trim(datadir)//'/microphysics/'//spcpath
     605     write(*,*)" specie_cfg = ",spcpath
     606 
     607     write(*,*) "Enable/disable spherical mode transfert probability"
     608     mmp_w_ps2s=.true. ! default value
     609     call getin_p("transfert_probability",mmp_w_ps2s)
     610     write(*,*)" transfert_probability = ",mmp_w_ps2s
     611 
     612     write(*,*) "Path to spherical mode transfert probability look-up tables file"
     613     ! default path is set in datadir
     614     write(*,*) "spherical mode transfert probability look-up tables file data base folder:",trim(datadir),"/microphysics"
     615     pssfile=trim(datadir)//"/microphysics/mmp_ps2s_rm50_ne15.nc" ! default value
     616     call getin_p("ps2s_file",pssfile)
     617     pssfile = trim(datadir)//'/microphysics/'//pssfile
     618     write(*,*)" ps2s_file = ",pssfile
     619 
     620     write(*,*) "Electric charging coagulation correction"
     621     mmp_w_qe=.true. ! default value
     622     call getin_p("electric_charging",mmp_w_qe)
     623     write(*,*)" electric_charging = ",mmp_w_qe
     624 
     625     write(*,*) "Electric charging correction factor file"
     626     ! default path is set in datadir
     627     write(*,*) "Electric charging correction factor file data base folder:",trim(datadir),"/microphysics"
     628     mqfile=trim(datadir)//"/microphysics/mmp_qmean_rm50_ne15.nc" ! default value
     629     call getin_p("mq_file",mqfile)
     630     mqfile = trim(datadir)//'/microphysics/'//mqfile
     631     write(*,*)" mq_file = ",mqfile
     632 
     633     write(*,*) "Aerosol spherical mode total number min. threshold"
     634     m0as_min=1e-10 ! default value
     635     call getin_p("m0as_min",m0as_min)
     636     write(*,*)" m0as_min = ",m0as_min
     637 
     638     write(*,*) "Aerosol spherical mode min. caracteristic radius threshold"
     639     rcs_min=1e-9 ! default value
     640     call getin_p("rcs_min",rcs_min)
     641     write(*,*)" rcs_min = ",rcs_min
     642 
     643     write(*,*) "Aerosol fractal mode total number min. threshold"
     644     m0af_min=1e-10 ! default value
     645     call getin_p("m0af_min",m0af_min)
     646     write(*,*)" m0af_min = ",m0af_min
     647 
     648     write(*,*) "Aerosol fractal mode min. caracteristic radius threshold (updated to monomer radius at runtime if needed)"
     649     rcf_min=1e-9 ! default value
     650     call getin_p("rcf_min",rcf_min)
     651     write(*,*)" rcf_min = ",rcf_min
     652 
     653     write(*,*) "cloud drop total number min. threshold"
     654     m0n_min=1e-10 ! default value
     655     call getin_p("m0n_min",m0n_min)
     656     write(*,*)" m0n_min = ",m0n_min
     657
     658     write(*,*) "microphysics debug flag"
     659     wdebug=.false. ! default value
     660     call getin_p("wdebug",wdebug)
     661     write(*,*)" wdebug = ",wdebug
     662#endif
    518663
    519664! Soil model
     
    669814  ! allocate "comsoil_h" arrays
    670815  call ini_comsoil_h(ngrid)
    671    
     816
     817#ifdef MESOSCALE
     818  ! YAMMS initialization.
     819  err = mm_global_init_0(ptimestep,df,rm,rho_aer,p_prod,tx_prod,rc_prod,rad,g, &
     820                         air_rad,mugaz,coag_choice,callclouds,spcpath,  &
     821                         w_h_prod,w_h_sed,w_h_coag,w_c_nucond,  &
     822                         w_c_sed,fwsed_m0,fwsed_m3, &
     823                         no_fiadero,fiad_min,fiad_max, &
     824                         m0as_min,rcs_min,m0af_min,rcf_min,m0n_min,wdebug)
     825  IF (ierr /= 0) THEN
     826       PRINT *, "PROBLEM WITH YAMMS INITIATILIZATION"
     827  ENDIF
     828#endif
     829
     830
    672831  END SUBROUTINE inifis
    673832
Note: See TracChangeset for help on using the changeset viewer.