Changeset 4392


Ignore:
Timestamp:
Jan 23, 2023, 2:36:19 PM (16 months ago)
Author:
evignon
Message:

super session de commentaires pour preparer linclusion des isotopes
dans lscp. Camille, Cecile, Niels, Sebastien et Etienne

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lscp_mod.F90

    r4380 r4392  
    329329fcontrP(:,:) = 0.0
    330330
     331!c_iso: variable initialisation for iso
     332
     333
    331334!===============================================================================
    332335!              BEGINNING OF VERTICAL LOOP FROM TOP TO BOTTOM
     
    341344        zt(i)=t(i,k)
    342345        zq(i)=q(i,k)
     346        !c_iso init of iso
    343347    ENDDO
    344348   
     
    390394    ! --------------------------------------------------------------------
    391395
    392     IF (iflag_evap_prec.GE.1) THEN
     396    IF (iflag_evap_prec.GE.1) THEN ! useless -> to be removed
    393397
    394398        ! Calculation of saturation specific humidity
     
    406410
    407411            ! LTP: we only account for precipitation evaporation in the clear-sky (iflag_evap_prec=4).
     412            ! c_iso: likely important to distinguish cs from neb isotope precipitation
     413
    408414                IF (iflag_evap_prec.EQ.4) THEN
    409415                    zrfl(i) = zrflclr(i)
     
    478484
    479485
    480                 ! New solid and liquid precipitation fluxes
     486                ! New solid and liquid precipitation fluxes after evap and sublimation
    481487                zrfln(i) = Max(0.,zrfl(i) - zqev*(paprs(i,k)-paprs(i,k+1))  &
    482488                         /RG/dtime)
    483489                zifln(i) = Max(0.,zifl(i) - zqevi*(paprs(i,k)-paprs(i,k+1)) &
    484490                         /RG/dtime)
     491
    485492
    486493                ! vapor, temperature, precip fluxes update
     
    501508                zifl(i) = zifln(i)
    502509
     510                ! c_iso here call_reevap that updates isotopic zrfl, zifl (in inout)
     511                !                         due to evap + sublim                                     
     512                                           
     513
    503514                IF (iflag_evap_prec.EQ.4) THEN
    504515                    zrflclr(i) = zrfl(i)
     
    511522                ENDIF
    512523
    513 
    514                 ! CR Be careful: ice melting has been moved
     524                ! c_iso duplicate for isotopes or loop on isotopes
     525
     526                ! Melting:
    515527                zmelt = ((zt(i)-273.15)/(ztfondue-273.15)) ! JYG
    516528                ! precip fraction that is melted
    517529                zmelt = MIN(MAX(zmelt,0.),1.)
     530
    518531                ! Ice melting
    519532                IF (iflag_evap_prec.EQ.4) THEN
     
    524537                    zrfl(i)=zrfl(i)+zmelt*zifl(i)
    525538                ENDIF
     539                ! c_iso: melting of isotopic precipi with zmelt (no fractionation)
    526540
    527541                ! Latent heat of melting with precipitation thermalization
     
    536550                    zifl(i)=zifl(i)*(1.-zmelt)
    537551                ENDIF
     552                !c_iso: same for isotopic precip.
    538553
    539554            ELSE
     
    563578                zq(i)=1.e-15
    564579            ENDIF
     580            ! c_iso: do something similar for isotopes
    565581
    566582     ENDDO
     
    826842            ENDIF
    827843
     844            ! c_iso : routine that computes in-cloud supersaturation
     845            ! c_iso condensation of isotopes (zcond, zsursat, zfice, zq in input)
     846
    828847            ! temperature update due to phase change
    829848            zt(i) = zt(i) + (1.-zfice(i))*zcond(i) &
     
    885904                ziflclr(i) = ziflclr(i) + d_zifl_cld_clr(i) - d_zifl_clr_cld(i)
    886905
     906                ! c_iso  do the same thing for isotopes precip
    887907        ENDDO
    888908    ENDIF
     
    894914            zoliqi(i)= zoliq(i)*zfice(i)
    895915            zoliql(i)= zoliq(i)*(1.-zfice(i))
     916            ! c_iso : initialisation of zoliq* also for isotopes
    896917            zrho(i,k)  = pplay(i,k) / zt(i) / RD
    897918            zdz(i)   = (paprs(i,k)-paprs(i,k+1)) / (zrho(i,k)*RG)
     
    925946                zsnow=0.
    926947                zprecip=0.
     948                ! c_iso same init for isotopes. Externalisation?
    927949
    928950                IF (zneb(i).EQ.seuil_neb) THEN
     
    949971                    ! reduces the in-cloud water).
    950972
     973
     974                    ! warning: here should be zoliql?
    951975                    IF ((iflag_cloudth_vert.GE.3).AND.(iflag_rain_incloud_vol.EQ.1)) THEN
    952976                        zchau = zct   *dtime/REAL(ninter) * zoliq(i) &
     
    966990                zoliqi(i) = MAX(zoliq(i)*zfice(i)-1.*zsnow  , 0.0)
    967991                zoliq(i)  = MAX(zoliq(i)-zprecip , 0.0)
     992
     993                ! c_iso: call isotope_conversion (for readibility) or duplicate
    968994
    969995                radliq(i,k) = radliq(i,k) + zoliq(i)/REAL(ninter+1)
     
    10211047                    zqpreci(i) = max (zqpreci(i) - Deltaqprecl - Deltaq, 0.)
    10221048
     1049                    ! c_iso : mv here condensation of isotopes + redispatchage en precip
     1050
    10231051                IF (iflag_evap_prec.EQ.4) THEN
    10241052                    zrflcld(i) = zrflcld(i)+zqprecl(i) &
     
    10351063                   *(paprs(i,k)-paprs(i,k+1))/(RG*dtime)
    10361064                ENDIF
     1065                ! c_iso : same for isotopes
    10371066 
    10381067           ENDIF ! rneb>0
     
    10761105        d_qi(i,k) = zfice(i)*zoliq(i)
    10771106        d_q(i,k) = zq(i) - q(i,k)
     1107        ! c_iso: same for isotopes
    10781108        d_t(i,k) = zt(i) - t(i,k)
    10791109    ENDDO
     
    11911221      snow(i) = zifl(i)
    11921222      rain(i) = zrfl(i)
     1223      ! c_iso final output
    11931224  ENDDO
    11941225
Note: See TracChangeset for help on using the changeset viewer.