Changeset 2160
- Timestamp:
- Sep 23, 2019, 6:02:21 PM (5 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r2159 r2160 2737 2737 == 12/09/2019 == MV 2738 2738 - 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 2741 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): 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 22 22 COMMON/callkeys_r/topdustref,semi,alphan,euveff, & 23 23 & tke_heat_flux,dustrefir,fixed_euv_value,CLFfixval, & 24 & coeff_injection 24 & coeff_injection,ti_injection,tf_injection,coeff_detrainment 25 25 26 26 LOGICAL callrad,calldifv,calladj,callcond,callsoil, & … … 44 44 real tke_heat_flux 45 45 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 46 49 real CLFfixval 47 50 -
trunk/LMDZ.MARS/libf/phymars/compute_dtau_mod.F90
r2159 r2160 3 3 IMPLICIT NONE 4 4 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 8 10 9 11 CONTAINS … … 52 54 ENDDO 53 55 nb_daystep=(daysec/dtphys) 56 ! Local time in sol fraction 57 ti_injection_sol=ti_injection/24. 58 tf_injection_sol=tf_injection/24. 54 59 firstcall=.FALSE. 55 60 ENDIF 56 61 57 ! 1. Obtain tauref_scenario from dust scenario 62 ! 1. Obtain tauref_scenario from dust scenario at zday+1 58 63 zday_scenario=zday-modulo(zday,1.) ! integer value of the day: the scenario opacity is measured at 14:00 59 64 zday_scenario=zday_scenario+1 ! opacity of the dust scenario is read the day after … … 66 71 ! 2. Compute dtau 67 72 DO ig=1,ngrid 68 IF ((local_time(ig).ge.t_scenario ).and. &69 & (local_time_prev(ig).lt.(t_scenario )))THEN73 IF ((local_time(ig).ge.t_scenario_sol).and. & 74 & (local_time_prev(ig).lt.(t_scenario_sol)))THEN 70 75 dtau(ig)=tauref_scenario(ig)-tauref(ig) 71 76 ENDIF … … 77 82 dustliftday(ig)=coeff_injection* & 78 83 & (dtau(ig)*pplev(ig,1)/odpref) & 79 & /(daysec*(tf_injection -ti_injection))84 & /(daysec*(tf_injection_sol-ti_injection_sol)) 80 85 ENDDO 81 86 -
trunk/LMDZ.MARS/libf/phymars/conf_phys.F
r2149 r2160 292 292 call getin("rdstorm",rdstorm) 293 293 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 294 298 295 299 write(*,*)"rad.transfer is computed every iradia", … … 379 383 call getin("coeff_injection",coeff_injection) 380 384 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 381 392 382 393 ! free evolving dust -
trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90
r2119 r2160 39 39 IMPLICIT NONE 40 40 41 include "callkeys.h" 42 41 43 !-------------------------------------------------------- 42 44 ! Input Variables … … 126 128 127 129 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 detrained130 REAL detrain(ngrid,nlayer) ! coefficient for detrainment : % of stormdust detrained 129 131 INTEGER scheme(ngrid) ! triggered scheme 130 132 … … 197 199 deltahr(:,:)=0. 198 200 scheme(:)=0 199 coefdetrain(:,:)=1.201 detrain(:,:)=1. 200 202 201 203 !! no update for the stormdust tracer and temperature fields … … 410 412 wmin) .or. (zq_dust_mass(ig,l) .gt. & 411 413 10000.*zq_stormdust_mass(ig,l))) THEN 412 coefdetrain(ig,l)=1.414 detrain(ig,l)=1. 413 415 ELSE IF (max(abs(wrad(ig,l)),abs(wrad(ig,l+1))) & 414 416 .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) 418 421 ELSE IF (max(abs(wrad(ig,l)),abs(wrad(ig,l+1))).gt. wmax ) THEN 419 coefdetrain(ig,l)=coefmin422 detrain(ig,l)=coefmin 420 423 ELSE 421 coefdetrain(ig,l)=coefmin424 detrain(ig,l)=coefmin 422 425 ENDIF 423 426 ENDDO ! DO l=1,nlayer … … 428 431 DO ig=1,ngrid 429 432 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) & 431 434 /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) & 433 436 /ptimestep 434 437 ENDDO ! DO l=1,nlayer -
trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F
r2080 r2160 23 23 use watersat_mod, only: watersat 24 24 use turb_mod, only: turb_resolved, ustar, tstar 25 use compute_dtau_mod, only: ti_injection ,tf_injection25 use compute_dtau_mod, only: ti_injection_sol,tf_injection_sol 26 26 IMPLICIT NONE 27 27 … … 717 717 do ig=1,ngrid 718 718 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 )) THEN719 IF((ti_injection_sol.LE.local_time(ig)).and. 720 & (local_time(ig).LE.tf_injection_sol)) THEN 721 721 if (rdstorm) then !Rocket dust storm scheme 722 722 pdqsdif(ig,igcm_stormdust_mass) =
Note: See TracChangeset
for help on using the changeset viewer.