Ignore:
Timestamp:
Feb 3, 2009, 11:11:22 AM (16 years ago)
Author:
yann meurdesoif
Message:

Optimisation Othman Bouizi : qminimum

YM

Location:
LMDZ4/branches/LMDZ4-dev/libf
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3d/qminimum.F

    r524 r1088  
    4242c
    4343      DO 1000 k = 1, llm
    44       DO 1040 i = 1, ip1jmp1
    45             zx_defau      = AMAX1( seuil_liq - q(i,k,iq_liq), 0.0 )
    46             q(i,k,iq_vap) = q(i,k,iq_vap) - zx_defau
    47             q(i,k,iq_liq) = q(i,k,iq_liq) + zx_defau
    48  1040 CONTINUE
     44        DO 1040 i = 1, ip1jmp1
     45          if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
     46             q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq
     47             q(i,k,iq_liq) = seuil_liq
     48           endif
     49 1040   CONTINUE
    4950 1000 CONTINUE
    5051c
     
    5657      DO k = llm, 2, -1
    5758ccc      zx_abc = dpres(k) / dpres(k-1)
    58       DO i = 1, ip1jmp1
    59          zx_abc = deltap(i,k)/deltap(i,k-1)
    60          zx_defau    = AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    61          q(i,k-1,iq) =  q(i,k-1,iq) - zx_defau * zx_abc
    62          q(i,k,iq)   =  q(i,k,iq)   + zx_defau 
    63       ENDDO
     59        DO i = 1, ip1jmp1
     60          if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then
     61            q(i,k-1,iq) =  q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) *
     62     &                     deltap(i,k) / deltap(i,k-1)
     63            q(i,k,iq)   =  seuil_vap 
     64          endif
     65        ENDDO
    6466      ENDDO
    6567c
  • LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/qminimum_p.F

    r985 r1088  
    5050      DO 1000 k = 1, llm
    5151      DO 1040 i = ijb, ije
    52             zx_defau      = AMAX1( seuil_liq - q(i,k,iq_liq), 0.0 )
    53             q(i,k,iq_vap) = q(i,k,iq_vap) - zx_defau
    54             q(i,k,iq_liq) = q(i,k,iq_liq) + zx_defau
     52            if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
     53               q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq
     54               q(i,k,iq_liq) = seuil_liq
     55            endif
    5556 1040 CONTINUE
    5657 1000 CONTINUE
     
    6970c$OMP DO SCHEDULE(STATIC)
    7071      DO i = ijb, ije
    71          zx_abc = deltap(i,k)/deltap(i,k-1)
    72          zx_defau    = AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    73          q(i,k-1,iq) =  q(i,k-1,iq) - zx_defau * zx_abc
    74          q(i,k,iq)   =  q(i,k,iq)   + zx_defau 
     72         if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then
     73            q(i,k-1,iq) =  q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) *
     74     &           deltap(i,k) / deltap(i,k-1)
     75            q(i,k,iq)   =  seuil_vap 
     76         endif
    7577      ENDDO
    7678c$OMP END DO NOWAIT
Note: See TracChangeset for help on using the changeset viewer.