Ignore:
Timestamp:
Jun 19, 2008, 12:24:22 PM (16 years ago)
Author:
lmdzadmin
Message:

Version thermique FH/CRio
Ajout tests cas physiques non pris en comptes et ajout/enleve prints
Nouvelle routine thermcell_flux2.F90
IM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/add_phys_tend.F90

    r941 r972  
    1818use phys_state_var_mod
    1919IMPLICIT none
     20#include "iniprint.h"
    2021
    2122! Arguments :
     
    3233INTEGER jadrs(klon*klev), jbad
    3334INTEGER jqadrs(klon*klev), jqbad
     35INTEGER kadrs(klon*klev)
     36INTEGER kqadrs(klon*klev)
    3437
    3538integer debug_level
    36 
     39logical, save :: first=.true.
     40INTEGER, SAVE :: itap
    3741!======================================================================
    3842! Initialisations
    3943
    4044debug_level=10
    41 
     45     if (first) then
     46        itap=0
     47        first=.false.
     48     endif
     49! Incrementer le compteur de la physique
     50     itap   = itap + 1
    4251!======================================================================
    4352! Ajout des tendances sur le vent et l'eau liquide
     
    6271            jbad = jbad + 1
    6372            jadrs(jbad) = i
     73            kadrs(jbad) = k
    6474            ENDIF
    6575            IF ( zq<0. .or. zq>0.1 .or. abs(zdq(i,k))>1.e-2 ) then
    6676            jqbad = jqbad + 1
    6777            jqadrs(jqbad) = i
     78            kqadrs(jqbad) = k
    6879            ENDIF
    6980            t_seri(i,k)=zt
     
    97108         print*,'l    T     dT       Q     dQ    '
    98109         DO k = 1, klev
    99             write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k)
     110           zq=q_seri(i,k)+zdq(i,k)
     111           if (zq.lt.1.e-15) then
     112              if (q_seri(i,k).lt.1.e-15) then
     113!              print*,' cas q_seri<1.e-15 i k q_seri zq zdq :',i,k,q_seri(i,k),zq,zdq(i,k)
     114               q_seri(i,k)=1.e-15
     115               zdq(i,k)=(1.e-15-q_seri(i,k))
     116              endif
     117           endif
    100118!           zq=q_seri(i,k)+zdq(i,k)
    101119!           if (zq.lt.1.e-15) then
     
    103121!           endif
    104122         ENDDO
    105          call print_debug_phys(i,debug_level,text)
    106123      ENDDO
    107124ENDIF
    108125!
    109126
     127!IM ajout memes tests pour reverifier les jbad, jqbad beg
     128      jbad=0
     129      jqbad=0
     130      DO k = 1, klev
     131         DO i = 1, klon
     132            IF ( t_seri(i,k)>370. .or. t_seri(i,k)<130. .or. abs(zdt(i,k))>50. ) then
     133            jbad = jbad + 1
     134            jadrs(jbad) = i
     135!           if(prt_level.ge.10) THEN
     136!             print*,'cas2 i k t_seri zdt',i,k,t_seri(i,k),zdt(i,k)
     137!           endif
     138            ENDIF
     139            IF ( q_seri(i,k)<0. .or. q_seri(i,k)>0.1 .or. abs(zdq(i,k))>1.e-2 ) then
     140            jqbad = jqbad + 1
     141            jqadrs(jqbad) = i
     142            kqadrs(jqbad) = k
     143!           if(prt_level.ge.10) THEN
     144!             print*,'cas2 i k q_seri zdq',i,k,q_seri(i,k),zdq(i,k)
     145!           endif
     146            ENDIF
     147         ENDDO
     148      ENDDO
     149IF (jbad .GT. 0) THEN
     150      DO j = 1, jbad
     151         i=jadrs(j)
     152         k=kadrs(j)
     153         print*,'PLANTAGE2 POUR LE POINT i itap rlon rlat txt jbad zdt t',i,itap,rlon(i),rlat(i),text,jbad, &
     154       &        zdt(i,k),t_seri(i,k)-zdt(i,k)
     155!        if(prt_level.ge.10) THEN
     156         if(prt_level.ge.10.and.itap.GE.229.and.i.EQ.3027) THEN
     157          print*,'l    T     dT       Q     dQ    '
     158          DO k = 1, klev
     159             write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k)
     160          ENDDO
     161          call print_debug_phys(i,debug_level,text)
     162         endif
     163      ENDDO
     164ENDIF
     165!
     166IF (jqbad .GT. 0) THEN
     167      DO j = 1, jqbad
     168         i=jqadrs(j)
     169         k=kqadrs(j)
     170         print*,'WARNING  : EAU2 POUR LE POINT i itap rlon rlat txt jqbad zdq q zdql ql',i,itap,rlon(i),rlat(i),text,jqbad,&
     171       &        zdq(i,k), q_seri(i,k)-zdq(i,k), zdql(i,k), ql_seri(i,k)-zdql(i,k)
     172!        if(prt_level.ge.10) THEN
     173         if(prt_level.ge.10.and.itap.GE.229.and.i.EQ.3027) THEN
     174          print*,'l    T     dT       Q     dQ    '
     175          DO k = 1, klev
     176            write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k)
     177          ENDDO
     178          call print_debug_phys(i,debug_level,text)
     179         endif
     180      ENDDO
     181ENDIF
     182
     183      CALL hgardfou(t_seri,ftsol,text)
    110184      RETURN
    111185      END
Note: See TracChangeset for help on using the changeset viewer.