Changeset 1088
- Timestamp:
- Oct 31, 2013, 2:49:26 PM (11 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r1047 r1088 1941 1941 - Also updated EOF routines, everything is now in eofdump_mod.F90 1942 1942 - Removed unused routine lectfux.F (in dyn3d) 1943 1944 == 31/10/2013 == TN 1945 - Added a freedust mode, to be used with doubleq : 1946 Dust is not lifted, not rescaled, dust opacity is predicted instead of being forced. 1947 A corresponding freedust option is added in newstart to rescale dust to acceptable values 1948 before such a GCM run, although 'q=profile' could be used too. -
trunk/LMDZ.MARS/libf/dyn3d/newstart.F
r1047 r1088 18 18 use ioipsl_getincom, only: getin 19 19 use infotrac, only: iniadvtrac, nqtot, tnom 20 use tracer_mod, only: noms, igcm_h2o_vap, igcm_h2o_ice 20 use tracer_mod, only: noms, igcm_dust_number, igcm_dust_mass, 21 & igcm_h2o_vap, igcm_h2o_ice 21 22 use surfdat_h, only: phisfi, z0, zmea, zstd, zsig, zgam, zthe, 22 23 & albedodat, z0_default … … 497 498 $ tracer' 498 499 write(*,*) 'q=profile : specify a profile for a tracer' 500 write(*,*) 'freedust : rescale dust to a true value' 499 501 write(*,*) 'ini_q : tracers initialization for chemistry 500 502 $ and water vapour' … … 842 844 endif 843 845 846 c q=profile : initialize tracer with a given profile 847 c -------------------------------------------------- 848 else if (trim(modif) .eq. 'freedust') then 849 do l=1,llm 850 do j=1,jjp1 851 do i=1,iip1 852 q(i,j,l,igcm_dust_number)= 853 & q(i,j,l,igcm_dust_number) * 1e-3 ! grosso modo 854 q(i,j,l,igcm_dust_mass)= 855 & q(i,j,l,igcm_dust_mass) * 1e-3 ! grosso modo 856 end do 857 end do 858 end do 859 860 ! We want to have the very same value at lon -180 and lon 180 861 do l = 1,llm 862 do j = 1,jjp1 863 do iq = 1,nqtot 864 q(iip1,j,l,iq) = q(1,j,l,iq) 865 end do 866 end do 867 end do 844 868 845 869 c ini_q : Initialize tracers for chemistry -
trunk/LMDZ.MARS/libf/phymars/aeropacity.F
r1047 r1088 205 205 c Vertical column optical depth at "odpref" Pa 206 206 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 IF(iaervar.eq.1) THEN 207 IF(freedust) THEN 208 tauref(:) = 0. ! tauref is computed after, instead of being forced 209 210 ELSE IF(iaervar.eq.1) THEN 208 211 do ig=1, ngrid 209 212 tauref(ig)=max(tauvis,1.e-9) ! tauvis=cste (set in callphys.def … … 431 434 c ----------------------------------------------------------------- 432 435 433 c Temporary scaling factor 434 taudusttmp(1:ngrid)=0. 435 DO iaer=1,naerdust 436 DO l=1,nlayer 437 DO ig=1,ngrid 438 c Scaling factor 439 taudusttmp(ig) = taudusttmp(ig) + 440 & aerosol(ig,l,iaerdust(iaer)) 441 ENDDO 442 ENDDO 443 ENDDO 444 445 c Saved scaling factor 446 DO ig=1,ngrid 447 tauscaling(ig) = tauref(ig) * 448 & pplev(ig,1) / odpref / taudusttmp(ig) 449 c tauscaling(ig) = 1.e-4 450 ENDDO 436 IF (freedust) THEN 437 tauscaling(:) = 1. 438 439 ELSE 440 c Temporary scaling factor 441 taudusttmp(1:ngrid)=0. 442 DO iaer=1,naerdust 443 DO l=1,nlayer 444 DO ig=1,ngrid 445 c Scaling factor 446 taudusttmp(ig) = taudusttmp(ig) + 447 & aerosol(ig,l,iaerdust(iaer)) 448 ENDDO 449 ENDDO 450 ENDDO 451 452 c Saved scaling factor 453 DO ig=1,ngrid 454 tauscaling(ig) = tauref(ig) * 455 & pplev(ig,1) / odpref / taudusttmp(ig) 456 c tauscaling(ig) = 1.e-4 457 ENDDO 458 459 ENDIF 451 460 452 461 c Opacity computation … … 459 468 ENDDO 460 469 ENDDO 470 471 IF (freedust) THEN 472 ! tauref has been initialized to 0 before. 473 DO l=1,nlayer 474 DO ig=1,ngrid 475 tauref(ig) = tauref(ig) + 476 & aerosol(ig,l,iaerdust(iaer)) 477 ENDDO 478 ENDDO 479 ENDIF 461 480 462 481 c output for debug -
trunk/LMDZ.MARS/libf/phymars/callkeys.h
r1028 r1088 11 11 & ,callmolvis,callmoldiff,thermochem,thermoswater,callemis & 12 12 & ,callg2d,linear,rayleigh,tracer,active,doubleq,submicron & 13 & ,lifting, callddevil,scavenging,sedimentation,activice,water&14 & , tifeedback,microphys,caps,photochem,calltherm&13 & ,lifting,freedust,callddevil,scavenging,sedimentation & 14 & ,activice,water,tifeedback,microphys,caps,photochem,calltherm & 15 15 & ,callrichsl,callslope,tituscap 16 16 … … 53 53 logical tracer 54 54 integer dustbin 55 logical freedust 55 56 logical active,doubleq,submicron,lifting,callddevil,scavenging 56 57 logical sedimentation -
trunk/LMDZ.MARS/libf/phymars/inifis.F
r1047 r1088 401 401 stop 402 402 endif 403 403 404 ! lifting 404 405 write(*,*)"dust lifted by GCM surface winds ?" … … 414 415 stop 415 416 endif 417 418 ! free evolving dust 419 ! freedust=true just says that there is no lifting and no dust opacity scaling. 420 write(*,*)"dust lifted by GCM surface winds ?" 421 freedust=.false. ! default value 422 call getin("freedust",freedust) 423 write(*,*)" freedust = ",freedust 424 if (freedust.and..not.doubleq) then 425 print*,'freedust should be used with doubleq !' 426 stop 427 endif 428 if (freedust.and.lifting) then 429 print*,'if freedust is used, then lifting should not be used' 430 print*,'lifting forced to false !!' 431 lifting=.false. 432 endif 433 416 434 ! callddevil 417 435 write(*,*)" dust lifted by dust devils ?" … … 493 511 call getin("microphys",microphys) 494 512 write(*,*)" microphys = ",microphys 513 if (freedust.and.microphys) then 514 print*,'freedust can not be used with microphys !' 515 print*,'(although that could be improved...)' 516 stop 517 endif 495 518 496 519 ! microphysical parameter contact
Note: See TracChangeset
for help on using the changeset viewer.