Ignore:
Timestamp:
Jul 18, 2013, 10:20:28 AM (12 years ago)
Author:
Ehouarn Millour
Message:

Version testing basee sur la r1794


Testing release based on r1794

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/physiq.F

    r1750 r1795  
    3131      USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
    3232      USE phys_output_mod
     33      USE phys_output_ctrlout_mod
     34      USE iophy
    3335      use open_climoz_m, only: open_climoz ! ozone climatology from a file
    3436      use regr_pr_av_m, only: regr_pr_av
    3537      use netcdf95, only: nf95_close
    3638cIM for NMC files
    37       use netcdf, only: nf90_fill_real
     39c     use netcdf, only: nf90_fill_real
     40      use netcdf
    3841      use mod_phys_lmdz_mpi_data, only: is_mpi_root
    3942      USE aero_mod
     
    4548      USE CHEM_REP, ONLY : Init_chem_rep_xjour
    4649#endif
    47 
     50      USE indice_sol_mod
    4851
    4952!IM stations CFMIP
    5053      USE CFMIP_point_locations
    5154      IMPLICIT none
    52 c======================================================================
    53 c
    54 c Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
    55 c
    56 c Objet: Moniteur general de la physique du modele
    57 cAA      Modifications quant aux traceurs :
    58 cAA                  -  uniformisation des parametrisations ds phytrac
    59 cAA                  -  stockage des moyennes des champs necessaires
    60 cAA                     en mode traceur off-line
    61 c======================================================================
    62 c   CLEFS CPP POUR LES IO
    63 c   =====================
     55!>======================================================================
     56!!
     57!! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818
     58!!
     59!! Objet: Moniteur general de la physique du modele
     60!!AA      Modifications quant aux traceurs :
     61!!AA                  -  uniformisation des parametrisations ds phytrac
     62!!AA                  -  stockage des moyennes des champs necessaires
     63!!AA                     en mode traceur off-line
     64!!======================================================================
     65!!   CLEFS CPP POUR LES IO
     66!!   =====================
    6467#define histNMC
    6568c#define histISCCP
    66 c======================================================================
    67 c    modif   ( P. Le Van ,  12/10/98 )
    68 c
    69 c  Arguments:
    70 c
    71 c nlon----input-I-nombre de points horizontaux
    72 c nlev----input-I-nombre de couches verticales, doit etre egale a klev
    73 c debut---input-L-variable logique indiquant le premier passage
    74 c lafin---input-L-variable logique indiquant le dernier passage
    75 c jD_cur       -R-jour courant a l'appel de la physique (jour julien)
    76 c jH_cur       -R-heure courante a l'appel de la physique (jour julien)
    77 c pdtphys-input-R-pas d'integration pour la physique (seconde)
    78 c paprs---input-R-pression pour chaque inter-couche (en Pa)
    79 c pplay---input-R-pression pour le mileu de chaque couche (en Pa)
    80 c pphi----input-R-geopotentiel de chaque couche (g z) (reference sol)
    81 c pphis---input-R-geopotentiel du sol
    82 c presnivs-input_R_pressions approximat. des milieux couches ( en PA)
    83 c u-------input-R-vitesse dans la direction X (de O a E) en m/s
    84 c v-------input-R-vitesse Y (de S a N) en m/s
    85 c t-------input-R-temperature (K)
    86 c qx------input-R-humidite specifique (kg/kg) et d'autres traceurs
    87 c d_t_dyn-input-R-tendance dynamique pour "t" (K/s)
    88 c d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s)
    89 c flxmass_w -input-R- flux de masse verticale
    90 c d_u-----output-R-tendance physique de "u" (m/s/s)
    91 c d_v-----output-R-tendance physique de "v" (m/s/s)
    92 c d_t-----output-R-tendance physique de "t" (K/s)
    93 c d_qx----output-R-tendance physique de "qx" (kg/kg/s)
    94 c d_ps----output-R-tendance physique de la pression au sol
    95 cIM
    96 c PVteta--output-R-vorticite potentielle a des thetas constantes
    97 c======================================================================
     69!!======================================================================
     70!!    modif   ( P. Le Van ,  12/10/98 )
     71!!
     72!!  Arguments:
     73!!
     74!! nlon----input-I-nombre de points horizontaux
     75!! nlev----input-I-nombre de couches verticales, doit etre egale a klev
     76!! debut---input-L-variable logique indiquant le premier passage
     77!! lafin---input-L-variable logique indiquant le dernier passage
     78!! jD_cur       -R-jour courant a l'appel de la physique (jour julien)
     79!! jH_cur       -R-heure courante a l'appel de la physique (jour julien)
     80!! pdtphys-input-R-pas d'integration pour la physique (seconde)
     81!! paprs---input-R-pression pour chaque inter-couche (en Pa)
     82!! pplay---input-R-pression pour le mileu de chaque couche (en Pa)
     83!! pphi----input-R-geopotentiel de chaque couche (g z) (reference sol)
     84!! pphis---input-R-geopotentiel du sol
     85!! presnivs-input_R_pressions approximat. des milieux couches ( en PA)
     86!! u-------input-R-vitesse dans la direction X (de O a E) en m/s
     87!! v-------input-R-vitesse Y (de S a N) en m/s
     88!! t-------input-R-temperature (K)
     89!! qx------input-R-humidite specifique (kg/kg) et d'autres traceurs
     90!! d_t_dyn-input-R-tendance dynamique pour "t" (K/s)
     91!! d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s)
     92!! flxmass_w -input-R- flux de masse verticale
     93!! d_u-----output-R-tendance physique de "u" (m/s/s)
     94!! d_v-----output-R-tendance physique de "v" (m/s/s)
     95!! d_t-----output-R-tendance physique de "t" (K/s)
     96!! d_qx----output-R-tendance physique de "qx" (kg/kg/s)
     97!! d_ps----output-R-tendance physique de la pression au sol
     98!!IM
     99!! PVteta--output-R-vorticite potentielle a des thetas constantes
     100!!======================================================================
    98101#include "dimensions.h"
    99102      integer jjmp1
     
    103106
    104107#include "regdim.h"
    105 #include "indicesol.h"
    106108#include "dimsoil.h"
    107109#include "clesphys.h"
     
    218220      REAL u(klon,klev)
    219221      REAL v(klon,klev)
    220       REAL t(klon,klev),theta(klon,klev)
     222      REAL t(klon,klev),theta(klon,klev),thetal(klon,klev)
     223c thetal: ligne suivante a decommenter si vous avez les fichiers     MPL 20130625
     224c fth_fonctions.F90 et parkind1.F90
     225c sinon thetal=theta
     226c     REAL fth_thetae,fth_thetav,fth_thetal
    221227      REAL qx(klon,klev,nqtot)
    222228      REAL flxmass_w(klon,klev)
     
    642648      REAL zw2(klon,klev+1)
    643649      REAL fraca(klon,klev+1)       
    644       REAL ztv(klon,klev) 
     650      REAL ztv(klon,klev),ztva(klon,klev)
    645651      REAL zpspsk(klon,klev)
    646       REAL ztla(klon,klev)
     652      REAL ztla(klon,klev),zqla(klon,klev)
    647653      REAL zthl(klon,klev)
    648654
     
    655661      real w0(klon)                                          ! Vitesse des thermiques au LCL
    656662      real w_conv(klon)                                      ! Vitesse verticale de grande \'echelle au LCL
     663      real tke0(klon,klev+1)                                 ! TKE au début du pas de temps
    657664      real therm_tke_max0(klon)                              ! TKE dans les thermiques au LCL
    658665      real env_tke_max0(klon)                                ! TKE dans l'environnement au LCL
     
    694701cAA
    695702cAA  Pour phytrac
    696 cAA
    697       REAL coefh(klon,klev)     ! coef d'echange pour phytrac, valable pour 2<=k<=klev
    698       REAL coefm(klon,klev)     ! coef d'echange pour U, V
    699703      REAL u1(klon)             ! vents dans la premiere couche U
    700704      REAL v1(klon)             ! vents dans la premiere couche V
     
    722726
    723727      REAL bils(klon) ! bilan de chaleur au sol
     728
    724729      REAL wfbilo(klon,nbsrf) ! bilan d'eau, pour chaque
    725730C                             ! type de sous-surface et pondere par la fraction
     
    751756      SAVE lmt_pas                ! frequence de mise a jour
    752757c$OMP THREADPRIVATE(lmt_pas)
    753       real zmasse(klon, llm)
     758      real zmasse(klon, llm),exner(klon, llm)
    754759C     (column-density of mass of air in a cell, in kg m-2)
    755760      real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
     
    10581063     .           prof2d_av = 3, prof3d_av = 4)
    10591064      character*30 nom_fichier
    1060       character*10 varname
     1065      character*40 varname
    10611066      character*40 vartitle
    10621067      character*20 varunits
     
    11211126      LOGICAL, SAVE :: new_aod
    11221127c$OMP THREADPRIVATE(new_aod)
    1123    
     1128c
     1129c--STRAT AEROSOL
     1130      LOGICAL, SAVE :: flag_aerosol_strat
     1131c$OMP THREADPRIVATE(flag_aerosol_strat)
     1132cc-fin STRAT AEROSOL
    11241133c
    11251134c Declaration des constantes et des fonctions thermodynamiques
     
    12711280     .     iflag_cldcon,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs,
    12721281     .     ok_ade, ok_aie, ok_cdnc, aerosol_couple,
    1273      .     flag_aerosol, new_aod,
     1282     .     flag_aerosol, flag_aerosol_strat, new_aod,
    12741283     .     bl95_b0, bl95_b1,
    12751284c     nv flags pour la convection et les poches froides
     
    12871296          pbase=0
    12881297cIM 180608
    1289 c         pmflxr=0.
    1290 c         pmflxs=0.
    12911298
    12921299        itau_con=0
     
    13951402
    13961403         CALL phyetat0 ("startphy.nc",clesphy0,tabcntr0)
     1404         IF (klon_glo==1) THEN
     1405         coefh=0. ; coefm=0. ; pbl_tke=0.
     1406         coefh(:,2,:)=1.e-2 ; coefm(:,2,:)=1.e-2 ; pbl_tke(:,2,:)=1.e-2
     1407         PRINT*,'FH WARNING : lignes a supprimer'
     1408         ENDIF
    13971409cIM begin
    13981410          print*,'physiq: clwcon rnebcon ratqs',clwcon(1,1),rnebcon(1,1)
     
    15931605     &                       ok_hf,ok_instan,ok_LES,ok_ade,ok_aie,
    15941606     &                       read_climoz, phys_out_filestations,
    1595      &                       new_aod, aerosol_couple
    1596      &                        )
     1607     &                       new_aod, aerosol_couple,
     1608     &                       flag_aerosol_strat )
    15971609c$OMP END MASTER
    15981610c$OMP BARRIER
     
    17691781      d1a(:,:)=0.
    17701782      dam(:,:)=0.
     1783          pmflxr=0.
     1784          pmflxs=0.
    17711785! RomP <<<
    17721786
     
    17841798      ENDDO
    17851799      ENDDO
     1800      tke0(:,:)=pbl_tke(:,:,is_ave)
    17861801      IF (nqtot.GE.3) THEN
    17871802      DO iq = 3, nqtot
     
    20722087     s     albsol1,   albsol2,   sens,    evap, 
    20732088     s     zxtsol,    zxfluxlat, zt2m,    qsat2m,
    2074      s     d_t_vdf,   d_q_vdf,   d_u_vdf, d_v_vdf,
     2089     s     d_t_vdf,   d_q_vdf,   d_u_vdf, d_v_vdf, d_t_diss,
    20752090     s     coefh,     coefm,     slab_wfbils,               
    20762091     d     qsol,      zq2m,      s_pblh,  s_lcl,
     
    20882103!-----------------------------------------------------------------------------------------
    20892104! ajout des tendances de la diffusion turbulente
    2090       CALL add_phys_tend(d_u_vdf,d_v_vdf,d_t_vdf,d_q_vdf,dql0,'vdf')
     2105      CALL add_phys_tend
     2106     s     (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,'vdf')
    20912107!-----------------------------------------------------------------------------------------
    20922108
     
    26582674     s      ,alp_bl_conv,alp_bl_stat
    26592675ccc fin nrlmd le 10/04/2012
    2660      s                )
     2676     s      ,zqla,ztva )
    26612677
    26622678ccc nrlmd le 10/04/2012
     
    29662982         cg_aero(:,:,:,:)  = 0.
    29672983      ENDIF
     2984c
     2985c--STRAT AEROSOL
     2986c--updates tausum_aero,tau_aero,piz_aero,cg_aero
     2987      IF (flag_aerosol_strat) THEN
     2988         PRINT *,'appel a readaerosolstrat', mth_cur
     2989         CALL readaerosolstrato(debut)
     2990      ENDIF
     2991c--fin STRAT AEROSOL
    29682992
    29692993cIM calcul nuages par le simulateur ISCCP
     
    31743198     $                          paprs,
    31753199     $                          pplay,
    3176      $                          coefh,
     3200     $                          coefh(:,:,is_ave),
    31773201     $                          pphi,
    31783202     $                          t_seri,
     
    33533377     e        t_seri,q_seri,wo,
    33543378     e        cldfrarad, cldemirad, cldtaurad,
    3355      e        ok_ade, ok_aie, flag_aerosol,
     3379     e        ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol,
     3380     e        flag_aerosol_strat,
    33563381     e        tau_aero, piz_aero, cg_aero,
    33573382     e        cldtaupirad,new_aod,
     
    33953420     e        t_seri,q_seri,wo,
    33963421     e        cldfra, cldemi, cldtau,
    3397      e        ok_ade, ok_aie, flag_aerosol,
     3422     e        ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol,
     3423     e        flag_aerosol_strat,
    33983424     e        tau_aero, piz_aero, cg_aero,
    33993425     e        cldtaupi,new_aod,
     
    34313457         solsw=0.
    34323458         radsol=0.
     3459         swup=0.    ! MPL 27102011 pour les fichiers AMMA_profiles et AMMA_scalars
     3460         swup0=0.
     3461         swdn=0.
     3462         swdn0=0.
     3463         lwup=0.
     3464         lwup0=0.
     3465         lwdn=0.
     3466         lwdn0=0.
    34333467      END IF
    34343468
     
    36953729     I     paprs,    pplay,     pmfu,     pmfd,
    36963730     I     pen_u,    pde_u,     pen_d,    pde_d,
    3697      I     cdragh,   coefh,     fm_therm, entr_therm,
     3731     I     cdragh,   coefh(:,:,is_ave),     fm_therm, entr_therm,
    36983732     I     u1,       v1,        ftsol,    pctsrf,
    36993733     I     ustar,     u10m,      v10m,
     
    37223756     I                   t,pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    37233757     I                   fm_therm,entr_therm,
    3724      I                   cdragh,coefh,u1,v1,ftsol,pctsrf,
     3758     I                   cdragh,coefh(:,:,is_ave),u1,v1,ftsol,pctsrf,
    37253759     I                   frac_impa, frac_nucl,
    37263760     I                   pphis,airephy,dtime,itap,
     
    37483782c Accumuler les variables a stocker dans les fichiers histoire:
    37493783c
    3750 c+jld ec_conser
    3751       DO k = 1, klev
    3752       DO i = 1, klon
    3753         ZRCPD = RCPD*(1.0+RVTMP2*q_seri(i,k))
    3754         d_t_ec(i,k)=0.5/ZRCPD
    3755      $      *(u(i,k)**2+v(i,k)**2-u_seri(i,k)**2-v_seri(i,k)**2)
    3756       ENDDO
    3757       ENDDO
    3758 
    3759       DO k = 1, klev
    3760       DO i = 1, klon
    3761         t_seri(i,k)=t_seri(i,k)+d_t_ec(i,k)
    3762         d_t_ec(i,k) = d_t_ec(i,k)/dtime
    3763        END DO
    3764       END DO
    3765 c-jld ec_conser
     3784
     3785!================================================================
     3786! Conversion of kinetic and potential energy into heat, for
     3787! parameterisation of subgrid-scale motions
     3788!================================================================
     3789
     3790      d_t_ec(:,:)=0.
     3791      forall (k=1: llm) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA
     3792      CALL ener_conserv(klon,klev,pdtphys,u,v,t,qx(:,:,ivap),
     3793     s        u_seri,v_seri,t_seri,q_seri,pbl_tke(:,:,is_ave)-tke0(:,:),
     3794     s        zmasse,exner,d_t_ec)
     3795      t_seri(:,:)=t_seri(:,:)+d_t_ec(:,:)
     3796
    37663797cIM
    37673798      IF (ip_ebil_phy.ge.1) THEN
     
    38333864      END IF
    38343865
    3835 c=============================================================
     3866
    38363867c
    38373868c Convertir les incrementations en tendances
     
    39463977cJYG/IM theta en fin de pas de temps de physique
    39473978        theta(i,k)=t_seri(i,k)*(100000./pplay(i,k))**(RD/RCPD)
     3979c thetal: 2 lignes suivantes a decommenter si vous avez les fichiers     MPL 20130625
     3980c fth_fonctions.F90 et parkind1.F90
     3981c sinon thetal=theta
     3982c       thetal(i,k)=fth_thetal(pplay(i,k),t_seri(i,k),q_seri(i,k),
     3983c    :         ql_seri(i,k))
     3984        thetal(i,k)=theta(i,k)
    39483985      ENDDO
    39493986      ENDDO
     
    39623999      CALL fonte_neige_get_vars(pctsrf,
    39634000     .     zxfqcalving, zxfqfonte, zxffonte)
     4001
    39644002
    39654003
     
    39934031      endif
    39944032
    3995  
    3996 #include "phys_output_write.h"
     4033#include "phys_output_write_new.h"
     4034
     4035
     4036
    39974037
    39984038#ifdef histISCCP
     
    40724112         ENDIF !if callstats
    40734113     
    4074 
    40754114      IF (lafin) THEN
    40764115         itau_phy = itau_phy + itap
Note: See TracChangeset for help on using the changeset viewer.