Ignore:
Timestamp:
Dec 15, 2003, 6:50:41 PM (20 years ago)
Author:
lmdzadmin
Message:

Phasage avec la version de Ionela
IM/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F

    r475 r486  
    77     .                  jour, rmu0, co2_ppm,
    88     .                  ok_veget, ocean, npas, nexca, ts,
    9      .                  soil_model,cdmmax, cdhmax, ftsoil,qsol,
     9     .                  soil_model,cdmmax, cdhmax,
     10     .                  ksta, ksta_ter, ok_kzmin, ftsoil,qsol,
    1011     .                  paprs,pplay,radsol,snow,qsurf,evap,albe,alblw,
    1112     .                  fluxlat,
     
    143144cIM ajout seuils cdrm, cdrh
    144145      REAL cdmmax, cdhmax
     146cIM: 261103
     147      REAL ksta, ksta_ter
     148      LOGICAL ok_kzmin
     149cIM: 261103
    145150      REAL ftsoil(klon,nsoilmx,nbsrf)
    146151      REAL ytsoil(klon,nsoilmx)
     
    472477c calculer Cdrag et les coefficients d'echange
    473478      CALL coefkz(nsrf, knon, ypaprs, ypplay,
     479cIM 261103
     480     .     ksta, ksta_ter,
     481cIM 261103
    474482     .            yts, yrugos, yu, yv, yt, yq,
    475483     .            yqsurf,
     
    494502      endif
    495503
     504c
     505cIM: 261103
     506      if (ok_kzmin) THEN
     507cIM cf FH: 201103 BEG
     508c   Calcul d'une diffusion minimale pour les conditions tres stables.
     509      call coefkzmin(knon,ypaprs,ypplay,yu,yv,yt,yq,ycoefm
     510     .   ,ycoefm0,ycoefh0)
     511c      call dump2d(iim,jjm-1,ycoefm(2:klon-1,2), 'KZ         ')
     512c      call dump2d(iim,jjm-1,ycoefm0(2:klon-1,2),'KZMIN      ')
     513 
     514       if ( 1.eq.1 ) then
     515       DO k = 1, klev
     516       DO i = 1, knon
     517          ycoefm(i,k) = MAX(ycoefm(i,k),ycoefm0(i,k))
     518          ycoefh(i,k) = MAX(ycoefh(i,k),ycoefh0(i,k))
     519       ENDDO
     520       ENDDO
     521       endif
     522cIM cf FH: 201103 END
     523      endif !ok_kzmin
     524cIM: 261103
     525
     526c
    496527c calculer la diffusion des vitesses "u" et "v"
    497528      CALL clvent(knon,dtime,yu1,yv1,ycoefm,yt,yu,ypaprs,ypplay,ydelp,
     
    503534      ytaux = y_flux_u(:,1)
    504535      ytauy = y_flux_v(:,1)
    505 
    506       if (nsrf.eq.is_oce) then
    507          do j=1,knon
    508             ycoefm(j,1)=1.e-3
    509 c            ycoefh(j,1)=0.8*ycoefm(j,1)
    510          enddo
    511       endif
    512536
    513537c FH modif sur le cdrag temperature
     
    737761#else
    738762       DO j=1, knon
     763         i = ni(j)
    739764         t2m(i,nsrf)=0.
    740765         q2m(i,nsrf)=0.
     
    12191244      END
    12201245      SUBROUTINE coefkz(nsrf, knon, paprs, pplay,
     1246cIM 261103
     1247     .                  ksta, ksta_ter,
     1248cIM 261103
    12211249     .                  ts, rugos,
    12221250     .                  u,v,t,q,
     
    12791307      PARAMETER (prandtl=0.4)
    12801308      REAL kstable ! diffusion minimale (situation stable)
    1281       PARAMETER (kstable=1.0e-10)
     1309      ! GKtest
     1310      ! PARAMETER (kstable=1.0e-10)
     1311      REAL ksta, ksta_ter
     1312cIM: 261103     REAL kstable_ter, kstable_sinon
     1313cIM: 211003 cf GK   PARAMETER (kstable_ter = 1.0e-6)
     1314cIM: 261103     PARAMETER (kstable_ter = 1.0e-8)
     1315cIM: 261103   PARAMETER (kstable_ter = 1.0e-10)
     1316cIM: 261103   PARAMETER (kstable_sinon = 1.0e-10)
     1317      ! fin GKtest
    12821318      REAL mixlen ! constante controlant longueur de melange
    12831319      PARAMETER (mixlen=35.0)
     
    13711407         gamt(2) = -2.5E-03
    13721408      ENDIF
     1409cIM cf JLD/ GKtest
     1410      IF ( nsrf .EQ. is_ter ) THEN
     1411cIM 261103     kstable = kstable_ter
     1412        kstable = ksta_ter
     1413      ELSE
     1414cIM 261103     kstable = kstable_sinon
     1415        kstable = ksta
     1416      ENDIF
     1417cIM cf JLD/ GKtest fin
    13731418c
    13741419c Calculer les geopotentiels de chaque couche
     
    16141659      DO k = 2, klev
    16151660      DO i = 1, knon
    1616       IF ( (nsrf.NE.is_oce) .OR.  ! si ce n'est pas sur l'ocean
    1617      .     (invb(i).EQ.klev) .OR. ! s'il n'y a pas d'inversion
    1618      .     (zdthmin(i).GT.seuil) )THEN ! si l'inversion est trop faible
     1661cIM cf FH/GK   IF ( (nsrf.NE.is_oce) .OR.  ! si ce n'est pas sur l'ocean
     1662cIM cf FH/GK  .     (invb(i).EQ.klev) .OR. ! s'il n'y a pas d'inversion
     1663      !IM cf JLD/ GKtest TERkz2
     1664      ! IF ( (nsrf.EQ.is_ter) .OR.  ! si on est sur la terre
     1665      ! fin GKtest
     1666      IF ( (nsrf.EQ.is_oce) .AND.  ! si on est sur ocean et si
     1667     .     ( (invb(i).EQ.klev) .OR.      ! s'il n'y a pas d'inversion
     1668     .     (zdthmin(i).GT.seuil) ) )THEN ! si l'inversion est trop faible
    16191669         zl2(i)=(mixlen*MAX(0.0,(paprs(i,k)-paprs(i,klev+1))
    16201670     .                       /(paprs(i,2)-paprs(i,klev+1)) ))**2
Note: See TracChangeset for help on using the changeset viewer.