Changeset 1258 for LMDZ4


Ignore:
Timestamp:
Nov 9, 2009, 4:24:36 PM (15 years ago)
Author:
idelkadi
Message:

-Rajout des champs des precipitations verticales lsc (liq et ice) et conv (liq et ice)
-Appel dans physiq.F de l'interface avec le simulateur COSP sous la cles CPP_COSP avec une frequence=freq_COSP(s)
-Declaration de freq_COSP dans clesphys.h et lecture dans physiq.def via conf_phys.F90
-Sorie dans newmicro.F des rayons effectifs des particules liq et ice des nuages necessaires pour cosp

Location:
LMDZ4/branches/LMDZ4-dev/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h

    r1229 r1258  
    5454       REAL ecrit_LES
    5555       REAL freq_ISCCP, ecrit_ISCCP
     56       REAL freq_COSP
    5657       INTEGER :: ip_ebil_phy, iflag_rrtm
    5758       LOGICAL :: ok_strato
     
    7172     &     , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day               &
    7273     &     , ecrit_mth, ecrit_tra, ecrit_reg                            &
    73      &     , freq_ISCCP, ecrit_ISCCP, ip_ebil_phy                       &
     74     &     , freq_ISCCP, ecrit_ISCCP, freq_COSP, ip_ebil_phy            &
    7475     &     , ok_lic_melt, cvl_corr, aer_type                            &
    7576     &     , qsol0, iflag_rrtm, ok_strato,ok_hines,ecrit_LES            &
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90

    r1249 r1258  
    7979  REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
    8080  REAL,SAVE           :: freq_ISCCP_omp, ecrit_ISCCP_omp
     81  REAL,SAVE           :: freq_COSP_omp
    8182  real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
    8283  real,SAVE           :: ratqshaut_omp
     
    324325  ecrit_ISCCP_omp = 1.
    325326  call getin('ecrit_ISCCP', ecrit_ISCCP_omp)
     327
     328!Config Key  = freq_COSP
     329!Config Desc = Frequence d'appel du simulateur COSP en secondes;
     330!              par defaut 10800, i.e. 3 heures
     331!Config Def  = 10800.
     332!Config Help = Used in ini_histdayCOSP.h
     333!
     334  freq_COSP_omp = 10800.
     335  call getin('freq_COSP', freq_COSP_omp)
     336
    326337!
    327338!Config Key  = ip_ebil_phy
     
    13721383    freq_ISCCP = freq_ISCCP_omp
    13731384    ecrit_ISCCP = ecrit_ISCCP_omp
     1385    freq_COSP = freq_COSP_omp
    13741386    ok_ade = ok_ade_omp
    13751387    ok_aie = ok_aie_omp
     
    14681480  write(numout,*)' Frequence appel simulateur ISCCP, freq_ISCCP =', freq_ISCCP
    14691481  write(numout,*)' Frequence appel simulateur ISCCP, ecrit_ISCCP =', ecrit_ISCCP
     1482  write(numout,*)' Frequence appel simulateur COSP, freq_COSP =', freq_COSP
    14701483  write(numout,*)' Sortie bilan d''energie, ip_ebil_phy =', ip_ebil_phy
    14711484  write(numout,*)' Excentricite = ',R_ecc
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/newmicro.F

    r1237 r1258  
    88     e                  mass_solu_aero, mass_solu_aero_pi,
    99     e                  bl95_b0, bl95_b1,
    10      s                  cldtaupi, re, fl)
     10     s                  cldtaupi, re, fl, reliq, reice)
     11
    1112      USE dimphy
    1213      IMPLICIT none
     
    119120      REAL rad_chaud_tab(klon, klev), zflwp_var, zfiwp_var
    120121
     122! Abderrahmane oct 2009
     123      Real reliq(klon, klev), reice(klon, klev)
     124
    121125c
    122126c Calculer l'epaisseur optique et l'emmissivite des nuages
     
    164168                                !
    165169                  cdnc_pi(i,k) = 10.**(bl95_b0+bl95_b1*
    166      &             log(MAX(mass_solu_aero_pi(i,k),1.e-4))/log(10.))*1.e6 !-m-3
     170     &               log(MAX(mass_solu_aero_pi(i,k),1.e-4))/log(10.))*1.e6 !-m-3
    167171                  cdnc_pi(i,k)=MIN(1000.e6,MAX(20.e6,cdnc_pi(i,k)))
    168172               ENDDO
     
    178182     &                 *((pqlwp(i,k)*pplay(i,k)/(RD * T(i,k))) 
    179183     &                 /(4./3*RPI*1000.*cdnc(i,k)) )**(1./3.)
    180                   rad_chaud_tab(i,k) = MAX(rad_chaud_tab(i,k) *1.e6, 5.)
     184                  rad_chaud_tab(i,k) = MAX(rad_chaud_tab(i,k) * 1e6, 5.)
    181185               ENDDO           
    182186            ENDDO
     
    220224                  re(i,k) = rad_chaud_tab(i,k)*fl(i,k)
    221225                 
     226                  rel = 0.
     227                  rei = 0.
    222228                  pclc(i,k) = 0.0
    223229                  pcltau(i,k) = 0.0
     
    251257                     cldtaupi(i,k) = 3.0/2.0 * zflwp_var / radius
    252258     &                    + zfiwp_var * (3.448e-03  + 2.431/rei)
     259
    253260                  ENDIF         ! ok_aie
    254261                                ! For output diagnostics
     
    279286c     for ice clouds, Ebert & Curry (1992)]
    280287                 
    281                   if (zflwp_var.eq.0.) rel = 1.
    282                   if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1.
    283                   pcltau(i,k) = 3.0/2.0 * ( zflwp_var/rel )
     288                 if (zflwp_var.eq.0.) rel = 1.
     289                 if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1.
     290                 pcltau(i,k) = 3.0/2.0 * ( zflwp_var/rel )
    284291     &                 + zfiwp_var * (3.448e-03  + 2.431/rei)
    285292c     -- cloud infrared emissivity:
     
    295302
    296303               ENDIF
    297                
     304              reliq(i,k)=rel
     305              reice(i,k)=rei
     306              if (i.eq.1) then
     307              print*,'Dans newmicro rel, rei :',rel, rei
     308              print*,'Dans newmicro reliq, reice :',
     309     $             reliq(i,k),reice(i,k)
     310              endif
     311
    298312            ENDDO
    299313         ENDDO
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90

    r1246 r1258  
    984984 CALL histdef3d(iff,o_cldemi%flag,o_cldemi%name, "Cloud optical emissivity", "1")
    985985!IM: bug ?? dimensionnement variables (klon,klev+1) pmflxr, pmflxs, prfl, psfl
    986 ! CALL histdef3d(iff,o_pr_con_l%flag,o_pmflxr%name, "Convective precipitation lic", " ")
    987 ! CALL histdef3d(iff,o_pr_con_i%flag,o_pmflxs%name, "Convective precipitation ice", " ")
    988 ! CALL histdef3d(iff,o_pr_lsc_l%flag,o_prfl%name, "Large scale precipitation lic", " ")
    989 ! CALL histdef3d(iff,o_pr_lsc_i%flag,o_psfl%name, "Large scale precipitation ice", " ")
    990 
     986 CALL histdef3d(iff,o_pr_con_l%flag,o_pr_con_l%name, "Convective precipitation lic", " ")
     987 CALL histdef3d(iff,o_pr_con_i%flag,o_pr_con_i%name, "Convective precipitation ice", " ")
     988 CALL histdef3d(iff,o_pr_lsc_l%flag,o_pr_lsc_l%name, "Large scale precipitation lic", " ")
     989 CALL histdef3d(iff,o_pr_lsc_i%flag,o_pr_lsc_i%name, "Large scale precipitation ice", " ")
    991990!FH Sorties pour la couche limite
    992991     if (iflag_pbl>1) then
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_write.h

    r1246 r1258  
    743743       ENDIF
    744744
    745 !      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
    746 !      CALL histwrite_phy(nid_files(iff),o_pmflxr%name,itau_w,pmflxr)
    747 !      ENDIF
    748 
    749 !      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
    750 !      CALL histwrite_phy(nid_files(iff),o_pmflxs%name,itau_w,pmflxs)
    751 !      ENDIF
    752 
    753 !      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
    754 !      CALL histwrite_phy(nid_files(iff),o_prfl%name,itau_w,prfl)
    755 !      ENDIF
    756 
    757 !      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
    758 !      CALL histwrite_phy(nid_files(iff),o_psfl%name,itau_w,psfl)
    759 !      ENDIF
     745      IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN
     746      CALL histwrite_phy(nid_files(iff),
     747     s         o_pr_con_l%name,itau_w,pmflxr(:,1:klev))
     748      ENDIF
     749
     750      IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN
     751      CALL histwrite_phy(nid_files(iff),
     752     s         o_pr_con_i%name,itau_w,pmflxs(:,1:klev))
     753      ENDIF
     754
     755      IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN
     756      CALL histwrite_phy(nid_files(iff),
     757     s        o_pr_lsc_l%name,itau_w,prfl(:,1:klev))
     758      ENDIF
     759
     760      IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN
     761      CALL histwrite_phy(nid_files(iff),
     762     s        o_pr_lsc_i%name,itau_w,psfl(:,1:klev))
     763      ENDIF
     764
    760765
    761766      IF (o_rh2m%flag(iff)<=lev_files(iff)) THEN
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F

    r1249 r1258  
    888888      logical ok_newmicro
    889889      save ok_newmicro
     890      real ref_liq(klon,klev), ref_ice(klon,klev)
    890891c$OMP THREADPRIVATE(ok_newmicro)
    891892      save fact_cldcon,facttemps
     
    11151116cIM 100106 END : pouvoir sortir les ctes de la physique
    11161117c
     1118!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1119c Declarations pour Simulateur COSP
     1120c============================================================
     1121      real :: mr_ozone(klon,klev)
    11171122c======================================================================
    11181123! Ecriture eventuelle d'un profil verticale en entree de la physique.
     
    28752880     e            mass_solu_aero, mass_solu_aero_pi,
    28762881     e            bl95_b0, bl95_b1,
    2877      s            cldtaupi, re, fl)
     2882     s            cldtaupi, re, fl, ref_liq, ref_ice)
    28782883      else
    28792884      CALL nuage (paprs, pplay,
     
    31683173c
    31693174c
     3175!====================================================================
     3176! Interface Simulateur COSP (Calipso, ISCCP, MISR, ..)
     3177!====================================================================
     3178! Abderrahmane 24.08.09
     3179
     3180!      IF (ok_cosp) THEN
     3181! adeclarer
     3182#ifdef CPP_COSP
     3183       IF (MOD(itap,NINT(freq_cosp/dtime)).EQ.0) THEN
     3184
     3185       print*,'freq_cosp',freq_cosp
     3186          mr_ozone=wo * dobson_u * 1e3 / zmasse
     3187!       print*,'Dans physiq.F avant appel cosp ref_liq,ref_ice=',
     3188!     s        ref_liq,ref_ice
     3189          call phys_cosp(itap,dtime,freq_cosp,
     3190     $                 ecrit_mth,ecrit_day,ecrit_hf,overlap,
     3191     $                   klon,klev,rlon,rlat,presnivs,
     3192     $                   ref_liq,ref_ice,
     3193     $                   pctsrf(:,is_ter)+pctsrf(:,is_lic),
     3194     $                   zu10m,zv10m,
     3195     $                   zphi,paprs(:,1:klev),pplay,zxtsol,t_seri,
     3196     $                   qx(:,:,ivap),zx_rh,cldfra,rnebcon,flwc,fiwc,
     3197     $                   prfl(:,1:klev),psfl(:,1:klev),
     3198     $                   pmflxr(:,1:klev),pmflxs(:,1:klev),
     3199     $                   mr_ozone,cldtau, cldemi)
     3200!     L          calipso2D,calipso3D,cfadlidar,parasolrefl,atb,betamol,
     3201!     L          cfaddbze,clcalipso2,dbze,cltlidarradar,
     3202!     M          clMISR,
     3203!     R          clisccp2,boxtauisccp,boxptopisccp,tclisccp,ctpisccp,
     3204!     I          tauisccp,albisccp,meantbisccp,meantbclrisccp)
     3205
     3206        ENDIF
     3207
     3208!      ENDIF
     3209#endif
     3210!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    31703211cAA
    31713212cAA Installation de l'interface online-offline pour traceurs
Note: See TracChangeset for help on using the changeset viewer.