Changeset 2160


Ignore:
Timestamp:
Sep 23, 2019, 6:02:21 PM (5 years ago)
Author:
mvals
Message:

Mars GCM:
Set adpatable parameters for the rocket dust storm scheme (parameters included in callkeys.h, and adaptable according to the callphys.def with the function "call getin" in conf_phys.F):

  • ti_injection, tf_injection (by default: ti_injection=10. and tf_injection=12., impacted files: compute_dtau_mod.F90, vdifc_mod.F)
  • coeff_detrainment (by default: coeff_detrainment=0., impacted files: rocketduststorm_mod.F90)

MV

Location:
trunk/LMDZ.MARS
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r2159 r2160  
    27372737== 12/09/2019 == MV
    27382738- Update of compute_dtau_mod.F90: dtau is calculated in function of the dust opacity given by the dust scenario the day after
     2739
     2740== 23/09/2019 == MV
     2741Set adpatable parameters for the rocket dust storm scheme (parameters included in callkeys.h, and adaptable according to the callphys.def with the function "call getin" in conf_phys.F):
     2742- ti_injection, tf_injection (by default: ti_injection=10. and tf_injection=12., impacted files: compute_dtau_mod.F90, vdifc_mod.F)
     2743- coeff_detrainment (by default: coeff_detrainment=0., impacted files: rocketduststorm_mod.F90)
     2744
  • trunk/LMDZ.MARS/libf/phymars/callkeys.h

    r2149 r2160  
    2222      COMMON/callkeys_r/topdustref,semi,alphan,euveff,                  &
    2323     &   tke_heat_flux,dustrefir,fixed_euv_value,CLFfixval,             &
    24      &   coeff_injection
     24     &   coeff_injection,ti_injection,tf_injection,coeff_detrainment
    2525     
    2626      LOGICAL callrad,calldifv,calladj,callcond,callsoil,               &
     
    4444      real tke_heat_flux
    4545      real coeff_injection ! dust injection scheme coefficient
     46      real ti_injection ! local time of beginning injection
     47      real tf_injection ! local time of end injection
     48      real coeff_detrainment ! rocket dust detrainment coefficient
    4649      real CLFfixval
    4750
  • trunk/LMDZ.MARS/libf/phymars/compute_dtau_mod.F90

    r2159 r2160  
    33        IMPLICIT NONE
    44
    5         REAL,PARAMETER :: ti_injection=10/24. ! time of beginning injection
    6         REAL,PARAMETER :: tf_injection=18/24. ! time of end injection
    7         REAL,PARAMETER :: t_scenario=14/24.   ! time of tauref_scenario
     5        include "callkeys.h"
     6
     7        REAL,SAVE :: ti_injection_sol ! time of beginning injection
     8        REAL,SAVE :: tf_injection_sol ! time of end injection
     9        REAL,PARAMETER :: t_scenario_sol=14/24.   ! time of tauref_scenario
    810
    911        CONTAINS
     
    5254                ENDDO
    5355                nb_daystep=(daysec/dtphys)
     56                ! Local time in sol fraction
     57                ti_injection_sol=ti_injection/24.
     58                tf_injection_sol=tf_injection/24.
    5459                firstcall=.FALSE.
    5560        ENDIF
    5661       
    57         ! 1. Obtain tauref_scenario from dust scenario
     62        ! 1. Obtain tauref_scenario from dust scenario at zday+1
    5863        zday_scenario=zday-modulo(zday,1.) ! integer value of the day: the scenario opacity is measured at 14:00
    5964        zday_scenario=zday_scenario+1      ! opacity of the dust scenario is read the day after
     
    6671        ! 2. Compute dtau
    6772        DO ig=1,ngrid
    68          IF ((local_time(ig).ge.t_scenario).and.                        &
    69        &          (local_time_prev(ig).lt.(t_scenario)))THEN
     73         IF ((local_time(ig).ge.t_scenario_sol).and.                    &
     74       &          (local_time_prev(ig).lt.(t_scenario_sol)))THEN
    7075                 dtau(ig)=tauref_scenario(ig)-tauref(ig)
    7176         ENDIF
     
    7782         dustliftday(ig)=coeff_injection*                               &
    7883       &                (dtau(ig)*pplev(ig,1)/odpref)                   &
    79        &                /(daysec*(tf_injection-ti_injection))
     84       &                /(daysec*(tf_injection_sol-ti_injection_sol))
    8085        ENDDO
    8186         
  • trunk/LMDZ.MARS/libf/phymars/conf_phys.F

    r2149 r2160  
    292292         call getin("rdstorm",rdstorm)
    293293         write(*,*)" rdstorm = ",rdstorm
     294! rocket dust storm detrainment coefficient       
     295        coeff_detrainment=0. ! default value
     296        call getin("coeff_detrainment",coeff_detrainment)
     297        write(*,*)" coeff_detrainment = ",coeff_detrainment
    294298
    295299         write(*,*)"rad.transfer is computed every iradia",
     
    379383        call getin("coeff_injection",coeff_injection)
    380384        write(*,*)" coeff_in,jection = ",coeff_injection
     385! timing for dust injection       
     386        ti_injection=10. ! default value
     387        tf_injection=12. ! default value
     388        call getin("ti_injection",ti_injection)
     389        write(*,*)" ti_injection = ",ti_injection
     390        call getin("tf_injection",tf_injection)
     391        write(*,*)" tf_injection = ",tf_injection
    381392
    382393! free evolving dust
  • trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90

    r2119 r2160  
    3939      IMPLICIT NONE
    4040
     41      include "callkeys.h"
     42
    4143!--------------------------------------------------------
    4244! Input Variables
     
    126128
    127129      LOGICAL storm(ngrid)    ! true when there is a dust storm (if the opacity is high): trigger the rocket dust storm scheme
    128       REAL coefdetrain(ngrid,nlayer)  ! coefficient for detrainment : % of stormdust detrained
     130      REAL detrain(ngrid,nlayer)  ! coefficient for detrainment : % of stormdust detrained
    129131      INTEGER scheme(ngrid)   ! triggered scheme
    130132           
     
    197199      deltahr(:,:)=0.
    198200      scheme(:)=0
    199       coefdetrain(:,:)=1.
     201      detrain(:,:)=1.
    200202
    201203      !! no update for the stormdust tracer and temperature fields
     
    410412                          wmin) .or. (zq_dust_mass(ig,l) .gt.  &
    411413                                     10000.*zq_stormdust_mass(ig,l))) THEN
    412                coefdetrain(ig,l)=1.
     414               detrain(ig,l)=1.
    413415            ELSE IF (max(abs(wrad(ig,l)),abs(wrad(ig,l+1)))   &
    414416                                                       .le. wmax) THEN
    415                coefdetrain(ig,l)=1.*(((1-coefmin)/(wmin-wmax)**2)*     &
    416                    (max(abs(wrad(ig,l)),abs(wrad(ig,l+1)))-wmax)**2 &
    417                                                                +coefmin)
     417               detrain(ig,l)=coeff_detrainment*                 &
     418                             (((1-coefmin)/(wmin-wmax)**2)*     &
     419                             (max(abs(wrad(ig,l)),abs(wrad(ig,l+1)))-wmax)**2 &
     420                              +coefmin)
    418421            ELSE IF (max(abs(wrad(ig,l)),abs(wrad(ig,l+1))).gt. wmax ) THEN
    419                coefdetrain(ig,l)=coefmin
     422               detrain(ig,l)=coefmin
    420423            ELSE
    421                coefdetrain(ig,l)=coefmin
     424               detrain(ig,l)=coefmin
    422425            ENDIF
    423426          ENDDO ! DO l=1,nlayer
     
    428431        DO ig=1,ngrid
    429432          DO l=1,nlayer
    430             dqdet_stormdust_mass(ig,l)=-coefdetrain(ig,l)*zq_stormdust_mass(ig,l) &
     433            dqdet_stormdust_mass(ig,l)=-detrain(ig,l)*zq_stormdust_mass(ig,l) &
    431434                                                        /ptimestep
    432             dqdet_stormdust_number(ig,l)=-coefdetrain(ig,l)*zq_stormdust_number(ig,l) &
     435            dqdet_stormdust_number(ig,l)=-detrain(ig,l)*zq_stormdust_number(ig,l) &
    433436                                                        /ptimestep
    434437          ENDDO ! DO l=1,nlayer
  • trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F

    r2080 r2160  
    2323      use watersat_mod, only: watersat
    2424      use turb_mod, only: turb_resolved, ustar, tstar
    25       use compute_dtau_mod, only: ti_injection,tf_injection
     25      use compute_dtau_mod, only: ti_injection_sol,tf_injection_sol
    2626      IMPLICIT NONE
    2727
     
    717717              do ig=1,ngrid
    718718               if(co2ice(ig).lt.1) then ! pas de soulevement si glace CO2
    719                 IF((ti_injection.LE.local_time(ig)).and.
    720      &                  (local_time(ig).LE.tf_injection)) THEN
     719                IF((ti_injection_sol.LE.local_time(ig)).and.
     720     &                  (local_time(ig).LE.tf_injection_sol)) THEN
    721721                  if (rdstorm) then !Rocket dust storm scheme
    722722                        pdqsdif(ig,igcm_stormdust_mass) =
Note: See TracChangeset for help on using the changeset viewer.