Ignore:
Timestamp:
Apr 30, 2020, 5:14:24 PM (5 years ago)
Author:
mvals
Message:

Mars GCM:
follow-up of the commit regarding the dynamical transport of isotopes: new variables for the thresholds for zq(pere) and masseq in the transport of
the isotopic Ratio
MV

Location:
trunk/LMDZ.COMMON/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/vlsplt.F

    r2296 r2307  
    139139      END
    140140      RECURSIVE SUBROUTINE vlx(q,pente_max,masse,u_m,iq)
    141       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     141      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     142     &                     qperemin,masseqmin ! MVals
    142143
    143144c     Auteurs:   P.Le Van, F.Hourdin, F.Forget
     
    459460           !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    460461           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    461            masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    462            if (q(ij,l,iq).gt.1e-16) then
     462           masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     463           if (q(ij,l,iq).gt.qperemin) then
    463464             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    464465           else
     
    481482         DO ij=iip2+1,ip1jm
    482483            !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    483             new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),1e-16)
     484            new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),masseqmin)
    484485            q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+
    485486     &      u_mq(ij-1,l)-u_mq(ij,l))
     
    518519      END
    519520      RECURSIVE SUBROUTINE vly(q,pente_max,masse,masse_adv_v,iq)
    520       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     521      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     522     &                     qperemin,masseqmin ! MVals
    521523      USE comconst_mod, ONLY: pi
    522524c
     
    788790           !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    789791           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    790            masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    791            if (q(ij,l,iq).gt.1e-16) then
     792           masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     793           if (q(ij,l,iq).gt.qperemin) then
    792794             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    793795           else
     
    886888      END
    887889      RECURSIVE SUBROUTINE vlz(q,pente_max,masse,w,iq)
    888       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     890      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     891     &                     qperemin,masseqmin ! MVals
    889892c
    890893c     Auteurs:   P.Le Van, F.Hourdin, F.Forget
     
    10151018           !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    10161019           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    1017            masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    1018            if (q(ij,l,iq).gt.1e-16) then
     1020           masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     1021           if (q(ij,l,iq).gt.qperemin) then
    10191022             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    10201023           else
  • trunk/LMDZ.COMMON/libf/dyn3d_common/infotrac.F90

    r2306 r2307  
    3232  INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE    :: iqfils
    3333  INTEGER, ALLOCATABLE, DIMENSION(:), SAVE    :: iqpere
     34  REAL :: qperemin,masseqmin ! MVals: thresholds for zq(pere) and masseq in the transport of the isotopic Ratio (vlsplt_p.F)
     35  PARAMETER (qperemin=1.e-16)
     36  PARAMETER (masseqmin=1.e-16)
    3437
    3538! conv_flg(it)=0 : convection desactivated for tracer number it
  • trunk/LMDZ.COMMON/libf/dyn3dpar/vlsplt_p.F

    r2296 r2307  
    214214c   --------------------------------------------------------------------
    215215      USE Parallel_lmdz
    216       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     216      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     217     &                     qperemin,masseqmin ! MVals
    217218      IMPLICIT NONE
    218219c
     
    528529           ! les calcule donc que de ijb à ije
    529530           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    530            masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    531            if (q(ij,l,iq).gt.1e-16) then
     531           masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     532           if (q(ij,l,iq).gt.qperemin) then
    532533             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    533534           else
     
    549550         DO ij=ijb+1,ije
    550551            !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    551             new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),1e-16)
     552            new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),masseqmin)
    552553            q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+
    553554     &      u_mq(ij-1,l)-u_mq(ij,l))
     
    601602c   --------------------------------------------------------------------
    602603      USE parallel_lmdz
    603       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     604      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     605     &                     qperemin,masseqmin ! MVals
    604606      USE comconst_mod, ONLY: pi
    605607
     
    918920           !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    919921           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    920            masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    921            if (q(ij,l,iq).gt.1e-16) then
     922           masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     923           if (q(ij,l,iq).gt.qperemin) then
    922924             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    923925           else
     
    10491051c   --------------------------------------------------------------------
    10501052      USE Parallel_lmdz
    1051       USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi
     1053      USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi
     1054     &                     qperemin,masseqmin ! MVals
    10521055      IMPLICIT NONE
    10531056c
     
    12041207           !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    12051208           !MVals: veiller a ce qu'on n'ait pas de denominateur nul
    1206            masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),1e-16)
    1207            if (q(ij,l,iq).gt.1e-16) then
     1209           masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin)
     1210           if (q(ij,l,iq).gt.qperemin) then
    12081211             Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq)
    12091212           else
Note: See TracChangeset for help on using the changeset viewer.