Ignore:
Timestamp:
Jan 15, 2021, 6:10:56 PM (3 years ago)
Author:
Laurent Fairhead
Message:

Modifications nécessaires pour les isotopes
CRisi

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F

    • Property svn:keywords set to Id
    r2600 r3800  
     1!
     2!     $Id$
     3!
    14      SUBROUTINE qminimum_loc( q,nqtot,deltap )
    25      USE parallel_lmdz
    3       USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif
     6      USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif,             &
     7     &   ratiomin,qperemin ! CRisi 23nov2020
    48      IMPLICIT none
    59c
     
    4953c
    5054
    51         !write(*,*) 'qminimum 52: entree'
     55        !write(lunout,*) 'qminimum 52: entree'
    5256        if (ok_iso_verif) then
    5357           call check_isotopes(q,ij_begin,ij_end,'qminimum 52')   
     
    6064      q_follow(ijb:ije,:,1:2)=q(ijb:ije,:,1:2) 
    6165
    62       !write(*,*) 'qminimum 57'
     66      !write(lunout,*) 'qminimum 57'
    6367c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
    6468      DO 1000 k = 1, llm
     
    8589c le defaut en prennant de l'eau vapeur de la couche au-dessous.
    8690c
    87       !write(*,*) 'qminimum 81'
     91      !write(lunout,*) 'qminimum 81'
    8892      iq = iq_vap
    8993c
     
    113117c doit imprimer un message d'avertissement (saturation possible).
    114118c
    115       !write(*,*) 'qminimum 106'
     119      !write(lunout,*) 'qminimum 106'
    116120      nb_pump=0
    117121c$OMP DO SCHEDULE(STATIC)
     
    135139      ENDIF
    136140
    137       !write(*,*) 'qminimum 128'
     141      !write(lunout,*) 'qminimum 128'
    138142      if (ok_isotopes) then
     143              !write(lunout,*) 'qminimum 140'
    139144      ! CRisi: traiter de même les traceurs d'eau
    140145      ! Mais il faut les prendre à l'envers pour essayer de conserver la
     
    144149      ! rien ici et on croise les doigts pour que ça ne soit pas trop
    145150      ! génant
     151      ! en fait, si, c'est genant quand les isotopes doivent eux même transporter des
     152      ! traceurs -> apporter aussi un peu d'isotopes... Combien?
     153      ! Essayer tnat/2 = -500 permil? C'est déjà mieux que -1000
     154      ! permil...
     155      ! pb: que faire pour les traceurs?
     156c$OMP DO SCHEDULE(STATIC)     
    146157      DO i = ijb, ije
    147158        if (zx_pump(i).gt.0.0) then
     
    149160        endif !if (zx_pump(i).gt.0.0) then
    150161      enddo !DO i = ijb, ije 
     162c$OMP END DO
    151163
    152164      ! 2) transfert de vap vers les couches plus hautes
    153       !write(*,*) 'qminimum 139'
     165      !write(lunout,*) 'qminimum 158'
    154166      do k=2,llm
     167c$OMP DO SCHEDULE(STATIC)     
    155168        DO i = ijb, ije
    156169          if (zx_defau_diag(i,k,iq_vap).gt.0.0) then             
    157               ! on ajoute la vapeur en k             
    158               do ixt=1,ntraciso
     170              ! on ajoute la vapeur en k     
     171!              write(lunout,*) 'i,k,q_follow(i,k-1,iq_vap)=',
     172!     :                 i,k,q_follow(i,k-1,iq_vap)         
     173              if (q_follow(i,k-1,iq_vap).lt.qperemin) then
     174                write(lunout,*) 'tmp qmin: on stoppe'
     175                write(lunout,*) 'zx_pump(i)=',zx_pump(i)
     176                write(lunout,*) 'q_follow(i,:,iq_vap)=',
     177     :                   q_follow(i,:,iq_vap)
     178                write(lunout,*) 'k=',k
     179                call abort_gcm("qminimum","not enough vapor",1)
     180              endif 
     181            do ixt=1,ntraciso
     182!                write(lunout,*) 'qmin 168: ixt=',ixt
     183!                write(lunout,*) 'q(i,k,iqiso(ixt,iq_vap)=',
     184!     :             q(i,k,iqiso(ixt,iq_vap))
     185!                write(lunout,*) 'zx_defau_diag(i,k,iq_vap)=',
     186!     :                  zx_defau_diag(i,k,iq_vap)
     187!                write(lunout,*) 'q(i,k-1,iqiso(ixt,iq_vap)=',
     188!     :                   q(i,k-1,iqiso(ixt,iq_vap))     
     189
    159190               q(i,k,iqiso(ixt,iq_vap))=q(i,k,iqiso(ixt,iq_vap))
    160191     :              +zx_defau_diag(i,k,iq_vap)
     
    207238          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    208239        enddo !DO i = 1, ip1jmp1       
    209        enddo !do k=2,llm
     240c$OMP END DO
     241        enddo !do k=2,llm
    210242
    211243        if (ok_iso_verif) then
     
    217249        !write(*,*) 'qminimum 164'
    218250        do k=1,llm
     251c$OMP DO SCHEDULE(STATIC)
    219252        DO i = ijb, ije
    220253          if (zx_defau_diag(i,k,iq_liq).gt.0.0) then
     
    235268     :               -zx_defau_diag(i,k,iq_liq)
    236269          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    237         enddo !DO i = 1, ip1jmp1
     270        enddo !DO i = ijb, ije
     271c$OMP END DO       
    238272       enddo !do k=2,llm 
    239273
Note: See TracChangeset for help on using the changeset viewer.