Changeset 2790 for trunk/LMDZ.MARS
- Timestamp:
- Sep 1, 2022, 5:22:23 PM (2 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r2789 r2790 3736 3736 == 31/08/2022 == JN 3737 3737 Added "atm_wat_profile" flag in 1d to force dry and wet atmospheric water vapor profiles. 3738 3739 == 1/09/2022 == JN 3740 "atm_wat_profile" flag change in 1d. It is now a float directly prescribing the desired MMR of water vapor (0<atm_wat_profile=<1). If (atm_wat_profile > qsat) at a given timestep we have : (atm_wat_profile = qsat). 3741 Other options are : 3742 - atm_wat_profile = -1 : water vapor and ice are free in the column. This is the default mode of the 1d model which conserves total water tracers (qsurf + watercap + h2o_ice + h2o_vap) 3743 - atm_wat_profile = 0 : dry atmosphere, where q(h2o_ice) = q(h2o_vap) = 0. -
trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F
r2789 r2790 131 131 Logical paleomars 132 132 c JN : Force atmospheric water profiles 133 INTEGERatm_wat_profile133 REAL atm_wat_profile 134 134 REAL,ALLOCATABLE :: zqsat(:) ! useful for (atm_wat_profile=2) 135 135 … … 692 692 call getin("atm_wat_profile",atm_wat_profile) 693 693 write(*,*) "atm_wat_profile = ", atm_wat_profile 694 if (atm_wat_profile.EQ. 0) then694 if (atm_wat_profile.EQ.-1) then 695 695 write(*,*) "Free atmospheric water vapor profile" 696 else if (atm_wat_profile.EQ.1) then 696 write(*,*) "Total water is conserved on the column" 697 else if (atm_wat_profile.EQ.0) then 697 698 write(*,*) "Dry atmospheric water vapor profile" 698 else if (atm_wat_profile.EQ.2) then 699 write(*,*) "Wet atmospheric water vapor profile" 699 else if ((atm_wat_profile.GT.0).and.(atm_wat_profile.LE.1)) then 700 write(*,*) "Prescribed atmospheric water vapor MMR profile" 701 write(*,*) "Unless it reaches saturation (maximal value)" 702 write(*,*) "MMR chosen : ", atm_wat_profile 700 703 endif 701 704 … … 769 772 call watersat(nlayer,temp,play,zqsat) 770 773 DO iq = 1, nq 771 IF ((iq.eq.igcm_h2o_vap).and.(atm_wat_profile.eq. 1)) THEN774 IF ((iq.eq.igcm_h2o_vap).and.(atm_wat_profile.eq.0)) THEN 772 775 DO ilayer=1,nlayer 773 776 q(ilayer,igcm_h2o_vap)=0. 774 777 c write(*,*) "atm_wat_profile dry" 775 c write(*,*) "iq (igcm_h2o_vap)", iq776 778 ENDDO! ilayer=1,nlayer 777 ELSE IF((iq.eq.igcm_h2o_vap).and.(atm_wat_profile.eq.2)) THEN 779 ELSE IF((iq.eq.igcm_h2o_vap).and.(atm_wat_profile.gt.0) 780 & .and.(atm_wat_profile.le.1)) THEN 778 781 DO ilayer=1,nlayer 779 q(ilayer,igcm_h2o_vap)= zqsat(ilayer)*0.7782 q(ilayer,igcm_h2o_vap)=min(zqsat(ilayer),atm_wat_profile) 780 783 c write(*,*) "atm_wat_profile wet" 781 c write(*,*) "iq (igcm_h2o_vap)", iq782 c q(ilayer,igcm_h2o_vap)=zqsat(ilayer)-0.9*zqsat(ilayer)783 784 ENDDO! ilayer=1,nlayer 784 ELSE IF ((iq.eq.igcm_h2o_ice).and.(atm_wat_profile.ne.0)) THEN 785 ELSE IF ((iq.eq.igcm_h2o_ice).and. 786 & (atm_wat_profile.ne.-1)) THEN 785 787 DO ilayer=1,nlayer 786 788 q(ilayer,igcm_h2o_ice)=0. 787 789 c write(*,*) "atm_wat_profile : reset ice" 788 c write(*,*) "iq (igcm_h2o_ice)", iq789 790 ENDDO! ilayer=1,nlayer 790 791 ENDIF !((iq.eq.igcm_h2o_vap).and.(atm_wat_profile.eq.2)) THEN 791 792 ENDDO 793 CALL WRITEDIAGFI(ngrid,'qsat', 794 & 'qsat', 795 & 'kg/kg',1,zqsat) 796 792 797 793 798
Note: See TracChangeset
for help on using the changeset viewer.