Changeset 2316 for trunk/LMDZ.MARS/libf
- Timestamp:
- May 12, 2020, 11:51:22 AM (5 years ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/hdo_surfex_mod.F
r2312 r2316 7 7 subroutine hdo_surfex(ngrid,nlay,nq,ptimestep, 8 8 & zt,zq,pqsurf, 9 & old_h2o_vap,pdqsdif, h2oflux,9 & old_h2o_vap,pdqsdif,dwatercap_dif, 10 10 & hdoflux) 11 11 … … 37 37 REAL, INTENT(IN) :: old_h2o_vap(ngrid) ! traceur d'eau avant 38 38 !traitement de l'eau (kg/kg) 39 REAL, INTENT(IN) :: dwatercap_dif(ngrid) ! trend related to permanent ice 39 40 REAL, INTENT(INOUT) :: pdqsdif(ngrid,nq) ! tendance towards surface 40 41 ! (kg/kg.s-1) 41 REAL, INTENT(IN) :: h2oflux(ngrid) ! value of vapour flux of H2O42 ! same sign as pdqsdif43 42 44 43 c Output: … … 51 50 REAL extrasublim ! sublimation in excess of surface ice 52 51 REAL tmpratio(ngrid) ! D/H ratio in flux to surf 52 REAL h2oflux(ngrid) ! value of vapour flux of H2O 53 ! same sign as pdqsdif 53 54 54 55 INTEGER ig,l … … 62 63 63 64 DO ig=1,ngrid 65 66 h2oflux(ig) = pdqsdif(ig,igcm_h2o_ice) + 67 & dwatercap_dif(ig) 64 68 65 69 !! IF Sublimation … … 87 91 & .gt.pqsurf(ig,igcm_h2o_ice)) then 88 92 89 C Thisis how much we sublimate in excess of93 C dwatercap_dif is how much we sublimate in excess of 90 94 C pqsurf for H2O 91 extrasublim=92 & ( pqsurf(ig,igcm_h2o_ice) /ptimestep93 & +h2oflux(ig))94 c extrasublim has same sign conv. as pdqsdif95 96 95 C hdoflux(ig) is the flux of HDO from atm. to surf. 97 96 c The D/H of the old ice is supposed to be 5 SMOW 98 97 c We need D/H of the flux to be 5, so we need 99 c extrasublim* 5 * 2 * 155.76e-6 (=1 SMOW)98 c dwatercap_dif* 5 * 2 * 155.76e-6 (=1 SMOW) 100 99 hdoflux(ig)= hdoflux(ig) 101 & +(extrasublim*(2.*155.76e-6)*5.) 102 ! & +extrasublim 103 ! hdoflux(ig) = h2oflux(ig) !test 104 endif 105 endif ! watercap 100 & +(dwatercap_dif(ig)*(2.*155.76e-6)*5.) 101 endif 102 endif ! watercap 106 103 107 104 else ! condensation -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r2312 r2316 3688 3688 end do 3689 3689 3690 call WRITEDIAGFI(ngrid,"watercap","Water ice thickness" 3691 & ,"kg.m-2",0,watercap) 3690 3692 call WRITEDIAGFI(ngrid,'zdqcloud_ice','cloud ice', 3691 3693 & 'kg.m-2.s-1',1,zdqcloud(1,:,igcm_h2o_ice)) -
trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F
r2312 r2316 835 835 CALL hdo_surfex(ngrid,nlay,nq,ptimestep, 836 836 & zt,zq,pqsurf, 837 & old_h2o_vap,pdqsdif, h2oflux,837 & old_h2o_vap,pdqsdif,dwatercap_dif, 838 838 & hdoflux) 839 839 DO ig=1,ngrid … … 879 879 if(watercaptag(ig)) then 880 880 c dwatercap_dif same sign as pdqsdif (pos. toward ground) 881 dwatercap_dif(ig) = -pdqsdif(ig,igcm_h2o_ice)882 & -pqsurf(ig,igcm_h2o_ice)/ptimestep881 dwatercap_dif(ig) = pdqsdif(ig,igcm_h2o_ice) 882 & + pqsurf(ig,igcm_h2o_ice)/ptimestep 883 883 pdqsdif(ig,igcm_h2o_ice)= 884 884 & -pqsurf(ig,igcm_h2o_ice)/ptimestep … … 892 892 endif 893 893 894 endif895 894 c write(*,*)'flux vers le sol=',pdqsdif(ig,nq) 896 895 z1(ig)=1./(za(ig,1)+ zb(ig,2)*(1.-zd(ig,2))) 897 896 zc(ig,1)=(za(ig,1)*zq(ig,1,igcm_h2o_vap)+ 898 $ zb(ig,2)*zc(ig,2) + (dwatercap_dif(ig)- 899 c $ zb(ig,2)*zc(ig,2) + (- 900 $ pdqsdif(ig,igcm_h2o_ice)) *ptimestep) *z1(ig) 897 $ zb(ig,2)*zc(ig,2) + 898 $ (-pdqsdif(ig,igcm_h2o_ice)) *ptimestep) *z1(ig) 901 899 zq1temp(ig)=zc(ig,1) 902 endif ! if (.not.watercaptag(ig)) 900 endif !if .not.watercaptag(ig) 901 endif ! if sublim more than surface 902 903 903 c Starting upward calculations for water : 904 904 zq(ig,1,igcm_h2o_vap)=zq1temp(ig) … … 925 925 926 926 if(pqsurf(ig,igcm_h2o_ice) 927 & + (dwatercap_dif(ig)+pdqsdif(ig,igcm_h2o_ice))*ptimestep927 & +pdqsdif(ig,igcm_h2o_ice)*ptimestep 928 928 & .gt.frost_albedo_threshold) ! if there is still ice, T cannot exceed To 929 929 & pdtsrf(ig) = min(pdtsrf(ig),(To-ptsrf(ig))/ptimestep) ! ice melt case
Note: See TracChangeset
for help on using the changeset viewer.