Changeset 44


Ignore:
Timestamp:
Feb 9, 2000, 11:31:18 AM (25 years ago)
Author:
lmdz
Message:

Ajustement de parametres, separation de la routine "nuages diagnostiques" en deux routines (une appelee uniquement dans le cas Tiedtke, l'autre dans le cas ok-stratus) L.Li
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/trunk/libf/phylmd/nuage.F

    r2 r44  
    3737      REAL zflwp, zradef, zfice, zmsac
    3838c
    39       REAL radius, rad_froid, rad_chaud
    40       PARAMETER (rad_chaud=10.0, rad_froid=30.0)
     39      REAL radius, rad_froid, rad_chaud, rad_chau1, rad_chau2
     40      PARAMETER (rad_chau1=13.0, rad_chau2=9.0, rad_froid=35.0)
     41ccc      PARAMETER (rad_chaud=15.0, rad_froid=35.0)
     42c sintex initial      PARAMETER (rad_chaud=10.0, rad_froid=30.0)
    4143      REAL coef, coef_froi, coef_chau
    4244      PARAMETER (coef_chau=0.13, coef_froi=0.09)
     
    5153      DO k = 1, klev
    5254      DO i = 1, klon
     55         rad_chaud = rad_chau1
     56         IF (k.LE.3) rad_chaud = rad_chau2
    5357         pclc(i,k) = MAX(pclc(i,k), seuil_neb)
    5458         zflwp = 1000.*pqlwp(i,k)/RG/pclc(i,k)
     
    127131      RETURN
    128132      END
    129       SUBROUTINE diagcld(paprs,pplay,t,q,rain,snow,kbot,ktop,
     133      SUBROUTINE diagcld1(paprs,pplay,rain,snow,kbot,ktop,
    130134     .                   diafra,dialiq)
    131135      IMPLICIT none
     
    155159      REAL diafra(klon,klev) ! fraction nuageuse diagnostiquee
    156160      REAL dialiq(klon,klev) ! eau liquide nuageuse
    157 c
    158 c Options a choisir:
    159       LOGICAL ok_conv ! prendre en compte les nuages convectifs
    160       PARAMETER (ok_conv=.TRUE.)
    161       LOGICAL ok_inve ! prendre en compte les nuages d'inversion
    162 CCC      PARAMETER (ok_inve=.TRUE.)
    163       PARAMETER (ok_inve=.FALSE.)
    164161c
    165162c Constantes ajustables:
     
    177174      REAL ZEPSCR
    178175      PARAMETER (ZEPSCR=1.0E-10)
    179       REAL CLOIA, CLOIB, CLOIC, CLOID
    180 ccc      PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.6, CLOID=5.0)
    181       PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.9, CLOID=5.0)
    182       REAL RGAMMAS
    183       PARAMETER (RGAMMAS=0.05)
    184       REAL CRHL
    185 ccc      PARAMETER (CRHL=0.15)
    186       PARAMETER (CRHL=0.70)
    187       REAL t_coup
    188       PARAMETER (t_coup=234.0)
    189176c
    190177c Variables locales:
    191       INTEGER i, k, kb, invb(klon)
    192       REAL zcc(klon), zqs, zrhb, zcll, zdthmin(klon), zdthdp
    193       REAL zdelta, zcor
    194 c
    195 c Fonctions thermodynamiques:
    196 #include "YOETHF.h"
    197 #include "FCTTRE.h"
     178      INTEGER i, k
     179      REAL zcc(klon)
    198180c
    199181c Initialisation:
     
    205187      ENDDO
    206188      ENDDO
    207 c
    208       IF (ok_conv) THEN
    209189c
    210190      DO i = 1, klon ! Calculer la fraction nuageuse
     
    215195      ENDIF
    216196      ENDDO
    217 cn
     197c
    218198      DO i = 1, klon ! pour traiter les enclumes
    219          diafra(i,ktop(i)) = zcc(i) * CCFCT
    220 ccc      diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),zcc(i)*CCFCT)
     199      diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),zcc(i)*CCFCT)
    221200      IF ((zcc(i).GE.CANVH) .AND.
    222201     .    (pplay(i,ktop(i)).LE.CETAHB*paprs(i,1)))
    223      .   diafra(i,ktop(i)) = MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB))     
    224 cc     . diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),
    225 cc     .                         MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB)))
     202     . diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),
     203     .                         MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB)))
    226204      dialiq(i,ktop(i))=CCLWMR*diafra(i,ktop(i))
    227205      ENDDO
     
    230208      DO i = 1, klon
    231209      IF (k.LT.ktop(i) .AND. k.GE.kbot(i)) THEN
    232            diafra(i,k)=zcc(i)*CCFCT
    233 cc         diafra(i,k)=MAX(diafra(i,k),zcc(i)*CCFCT)
     210         diafra(i,k)=MAX(diafra(i,k),zcc(i)*CCFCT)
    234211         dialiq(i,k)=CCLWMR*diafra(i,k)
    235212      ENDIF
     
    237214      ENDDO
    238215c
    239       ENDIF ! ok_conv
    240 c
    241       IF (ok_inve) THEN
    242 
     216      RETURN
     217      END
     218      SUBROUTINE diagcld2(paprs,pplay,t,q, diafra,dialiq)
     219      IMPLICIT none
     220c
     221#include "dimensions.h"
     222#include "dimphy.h"
     223#include "YOMCST.h"
     224c
     225c Arguments d'entree:
     226      REAL paprs(klon,klev+1) ! pression (Pa) a inter-couche
     227      REAL pplay(klon,klev) ! pression (Pa) au milieu de couche
     228      REAL t(klon,klev) ! temperature (K)
     229      REAL q(klon,klev) ! humidite specifique (Kg/Kg)
     230c
     231c Arguments de sortie:
     232      REAL diafra(klon,klev) ! fraction nuageuse diagnostiquee
     233      REAL dialiq(klon,klev) ! eau liquide nuageuse
     234c
     235      REAL CETAMB
     236      PARAMETER (CETAMB=0.80)
     237      REAL CLOIA, CLOIB, CLOIC, CLOID
     238      PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.6, CLOID=5.0)
     239ccc      PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.9, CLOID=5.0)
     240      REAL RGAMMAS
     241      PARAMETER (RGAMMAS=0.05)
     242      REAL CRHL
     243      PARAMETER (CRHL=0.15)
     244ccc      PARAMETER (CRHL=0.70)
     245      REAL t_coup
     246      PARAMETER (t_coup=234.0)
     247c
     248c Variables locales:
     249      INTEGER i, k, kb, invb(klon)
     250      REAL zqs, zrhb, zcll, zdthmin(klon), zdthdp
     251      REAL zdelta, zcor
     252c
     253c Fonctions thermodynamiques:
     254#include "YOETHF.h"
     255#include "FCTTRE.h"
     256c
     257c Initialisation:
     258c
     259      DO k = 1, klev
     260      DO i = 1, klon
     261         diafra(i,k) = 0.0
     262         dialiq(i,k) = 0.0
     263      ENDDO
     264      ENDDO
     265c
    243266      DO i = 1, klon
    244267         invb(i) = klev
     
    280303     .   zcll=zcll*(1.-(CRHL-zrhb)*CLOID)
    281304         zcll=MIN(1.0,MAX(0.0,zcll))
    282 cc         diafra(i,kb) = MAX(diafra(i,kb),zcll)
    283 cc         dialiq(i,kb)= diafra(i,kb) * RGAMMAS*zqs
    284          diafra(i,kb) = zcll
    285          dialiq(i,kb)= zcll* RGAMMAS*zqs       
    286       ENDDO
    287 c
    288       ENDIF ! ok_inve
    289 c
     305         diafra(i,kb) = MAX(diafra(i,kb),zcll)
     306         dialiq(i,kb)= diafra(i,kb) * RGAMMAS*zqs
     307      ENDDO
     308c
     309      RETURN
    290310      END
Note: See TracChangeset for help on using the changeset viewer.