Ignore:
Timestamp:
Jul 23, 2012, 1:11:05 PM (12 years ago)
Author:
idelkadi
Message:

Introduction du declenchement stochastique de la convection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_mod.F90

    r1633 r1638  
    260260  type(ctrl_out),save :: o_wape         = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'wape')
    261261
     262!!! nrlmd le 10/04/2012
     263
     264!-------Propriétés du thermiques au LCL
     265  type(ctrl_out),save :: o_zlcl_th        = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'zlcl_th')
     266  type(ctrl_out),save :: o_fraca0         = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'fraca0')
     267  type(ctrl_out),save :: o_w0             = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'w0')
     268  type(ctrl_out),save :: o_w_conv         = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'w_conv')
     269  type(ctrl_out),save :: o_therm_tke_max0 = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'therm_tke_max0')
     270  type(ctrl_out),save :: o_env_tke_max0   = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'env_tke_max0')
     271
     272!-------Spectre de thermiques de type 2 au LCL
     273  type(ctrl_out),save :: o_n2                = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'n2')
     274  type(ctrl_out),save :: o_s2                = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'s2')
     275                                                                             
     276!-------Déclenchement stochastique                                           
     277  type(ctrl_out),save :: o_proba_notrig      = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'proba_notrig')
     278  type(ctrl_out),save :: o_random_notrig     = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'random_notrig')
     279  type(ctrl_out),save :: o_ale_bl_stat       = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'ale_bl_stat')
     280  type(ctrl_out),save :: o_ale_bl_trig       = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'ale_bl_trig')
     281                                                                             
     282!-------Profils de TKE dans et hors du thermique                             
     283  type(ctrl_out),save :: o_therm_tke_max     = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'therm_tke_max')
     284  type(ctrl_out),save :: o_env_tke_max       = ctrl_out((/ 1, 1, 1, 6, 10, 10 /),'env_tke_max')
     285
     286!-------Fermeture statistique
     287  type(ctrl_out),save :: o_alp_bl_det        = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl_det')
     288  type(ctrl_out),save :: o_alp_bl_fluct_m    = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl_fluct_m')
     289  type(ctrl_out),save :: o_alp_bl_fluct_tke  = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl_fluct_tke')
     290  type(ctrl_out),save :: o_alp_bl_conv       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl_conv')
     291  type(ctrl_out),save :: o_alp_bl_stat       = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl_stat')
     292
     293!!! fin nrlmd le 10/04/2012
    262294
    263295  ! Champs interpolles sur des niveaux de pression ??? a faire correctement
     
    432464  type(ctrl_out),save :: o_ovap         = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'ovap')
    433465  type(ctrl_out),save :: o_ovapinit     = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ovapinit')
     466  type(ctrl_out),save :: o_oliq         = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'oliq')
    434467  type(ctrl_out),save :: o_wvapp        = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'wvapp')
    435468  type(ctrl_out),save :: o_geop         = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'geop')
     
    494527  type(ctrl_out),save :: o_dtcon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtcon')
    495528  type(ctrl_out),save :: o_ducon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ducon')
     529  type(ctrl_out),save :: o_dvcon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvcon')
    496530  type(ctrl_out),save :: o_dqcon        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqcon')
    497531  type(ctrl_out),save :: o_dtwak        = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'dtwak')
     
    531565  type(ctrl_out),save :: o_e_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'e_th')
    532566  type(ctrl_out),save :: o_w_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'w_th')
    533   type(ctrl_out),save :: o_lambda_th    = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'lambda_th')
    534567  type(ctrl_out),save :: o_ftime_th     = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_th')
    535568  type(ctrl_out),save :: o_q_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'q_th')
     
    537570  type(ctrl_out),save :: o_d_th         = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'d_th')
    538571  type(ctrl_out),save :: o_f0_th        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'f0_th')
    539   type(ctrl_out),save :: o_zmax_th      = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'zmax_th')
     572  type(ctrl_out),save :: o_zmax_th      = ctrl_out((/ 4,  4,  4,  5, 10, 10 /),'zmax_th')
    540573  type(ctrl_out),save :: o_dqthe        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqthe')
    541574  type(ctrl_out),save :: o_dtajs        = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtajs')
     
    621654    USE infotrac
    622655    USE ioipsl
     656!    USE phys_cal_mod, only : hour
    623657    USE mod_phys_lmdz_para
    624658    USE aero_mod, only : naero_spc,name_aero
     
    682716    !                 entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax]
    683717
    684     logical, dimension(nfiles), save  :: phys_out_regfkey       = (/ .false., .false., .false., .false., .false., .false. /)
    685     real, dimension(nfiles), save     :: phys_out_lonmin        = (/ -180., -180., -180., -180., -180., -180. /)
    686     real, dimension(nfiles), save     :: phys_out_lonmax        = (/ 180., 180., 180., 180., 180., 180. /)
    687     real, dimension(nfiles), save     :: phys_out_latmin        = (/ -90., -90., -90., -90., -90., -90. /)
    688     real, dimension(nfiles), save     :: phys_out_latmax        = (/ 90., 90., 90., 90., 90., 90. /)
     718    logical, dimension(nfiles), save  :: phys_out_regfkey       = (/ .false., .false., .false.,  .false., .false., .false. /)
     719    real, dimension(nfiles), save     :: phys_out_lonmin        = (/   -180.,   -180.,   -180.,    -180.,   -180.,  -180. /)
     720    real, dimension(nfiles), save     :: phys_out_lonmax        = (/    180.,    180.,    180.,     180.,    180.,    180. /)
     721    real, dimension(nfiles), save     :: phys_out_latmin        = (/    -90.,    -90.,    -90.,     -90.,    -90.,    -90. /)
     722    real, dimension(nfiles), save     :: phys_out_latmax        = (/     90.,     90.,     90.,     90.,     90.,    90. /)
    689723
    690724    write(lunout,*) 'Debut phys_output_mod.F90'
     
    805839
    806840          idayref = day_ref
    807           CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
     841          CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)       
     842! correction pour l heure initiale                               !jyg
     843!                                                                !jyg
     844!      CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian)         !jyg
    808845
    809846!!!!!!!!!!!!!!!!! Traitement dans le cas ou l'on veut stocker sur un domaine limite !!
     
    13181355          ! Couplage conv-CL
    13191356          IF (iflag_con.GE.3) THEN
     1357             IF (iflag_coupl>=1) THEN
    13201358                CALL histdef2d(iff,clef_stations(iff), &
    13211359                     o_ale_bl%flag,o_ale_bl%name, "ALE BL", "m2/s2")
    13221360                CALL histdef2d(iff,clef_stations(iff), &
    13231361                     o_alp_bl%flag,o_alp_bl%name, "ALP BL", "m2/s2")
     1362             ENDIF
    13241363          ENDIF !(iflag_con.GE.3)
    13251364
     
    13751414          CALL histdef3d(iff,clef_stations(iff),o_theta%flag,o_theta%name, "Potential air temperature", "K" )
    13761415          CALL histdef3d(iff,clef_stations(iff),o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" )
     1416          CALL histdef3d(iff,clef_stations(iff),o_oliq%flag,o_oliq%name, "Condensed water", "kg/kg" )
    13771417          CALL histdef3d(iff,clef_stations(iff), &
    13781418               o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" )
     
    14801520               o_ducon%flag,o_ducon%name, "Convection du", "m/s2")
    14811521          CALL histdef3d(iff,clef_stations(iff), &
     1522               o_dvcon%flag,o_dvcon%name, "Convection dv", "m/s2")
     1523          CALL histdef3d(iff,clef_stations(iff), &
    14821524               o_dqcon%flag,o_dqcon%name, "Convection dQ", "(kg/kg)/s")
    14831525
     
    14891531                CALL histdef2d(iff,clef_stations(iff), &
    14901532                     o_alp_wk%flag,o_alp_wk%name, "ALP WK", "m2/s2")
     1533                CALL histdef2d(iff,clef_stations(iff), &
     1534                     o_ale%flag,o_ale%name, "ALE", "m2/s2")
     1535                CALL histdef2d(iff,clef_stations(iff), &
     1536                     o_alp%flag,o_alp%name, "ALP", "W/m2")
     1537                CALL histdef2d(iff,clef_stations(iff),o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2")
     1538                CALL histdef2d(iff,clef_stations(iff),o_wape%flag,o_WAPE%name, "WAPE", "m2/s2")
    14911539                CALL histdef2d(iff,clef_stations(iff),o_wake_h%flag,o_wake_h%name, "wake_h", "-")
    14921540                CALL histdef2d(iff,clef_stations(iff),o_wake_s%flag,o_wake_s%name, "wake_s", "-")
     
    14961544                CALL histdef3d(iff,clef_stations(iff),o_wake_deltaq%flag,o_wake_deltaq%name, "wake_deltaq", " ")
    14971545                CALL histdef3d(iff,clef_stations(iff),o_wake_omg%flag,o_wake_omg%name, "wake_omg", " ")
    1498                 CALL histdef2d(iff,clef_stations(iff),o_wape%flag,o_WAPE%name, "WAPE", "m2/s2")
    14991546             ENDIF
    1500              CALL histdef2d(iff,clef_stations(iff), &
    1501                      o_ale%flag,o_ale%name, "ALE", "m2/s2")
    1502              CALL histdef2d(iff,clef_stations(iff), &
    1503                      o_alp%flag,o_alp%name, "ALP", "W/m2")
    1504              CALL histdef2d(iff,clef_stations(iff),o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2")
    15051547             CALL histdef3d(iff,clef_stations(iff),o_Vprecip%flag,o_Vprecip%name, "precipitation vertical profile", "-")
    15061548             CALL histdef3d(iff,clef_stations(iff),o_ftd%flag,o_ftd%name, "tend temp due aux descentes precip", "-")
    15071549             CALL histdef3d(iff,clef_stations(iff),o_fqd%flag,o_fqd%name,"tend vap eau due aux descentes precip", "-")
    15081550          ENDIF !(iflag_con.EQ.3)
     1551
     1552!!! nrlmd le 10/04/2012
     1553
     1554 CALL histdef2d(iff,clef_stations(iff),o_zlcl_th%flag,o_zlcl_th%name, "Altitude du LCL", "m")
     1555 CALL histdef2d(iff,clef_stations(iff),o_fraca0%flag,o_fraca0%name, "Fraction de Thermique au LCL", "")
     1556 CALL histdef2d(iff,clef_stations(iff),o_w0%flag,o_w0%name, "Vitesse thermique au LCL", "m/s")
     1557 CALL histdef2d(iff,clef_stations(iff),o_w_conv%flag,o_w_conv%name, "Vitesse verticale grande échelle au LCL", "m/s")
     1558 CALL histdef2d(iff,clef_stations(iff),o_therm_tke_max0%flag,o_therm_tke_max0%name, "TKE thermique au LCL", "m2/s2")
     1559 CALL histdef2d(iff,clef_stations(iff),o_env_tke_max0%flag,o_env_tke_max0%name, "TKE environnement au LCL", "m2/s2")
     1560
     1561 CALL histdef2d(iff,clef_stations(iff),o_n2%flag,o_n2%name, "Nombre de panaches de type 2", " ")
     1562 CALL histdef2d(iff,clef_stations(iff),o_s2%flag,o_s2%name, "Surface moyenne des panaches de type 2", "m2")
     1563
     1564 CALL histdef2d(iff,clef_stations(iff),o_proba_notrig%flag,o_proba_notrig%name, "Probabilité de non-déclenchement", " ")
     1565 CALL histdef2d(iff,clef_stations(iff),o_random_notrig%flag,o_random_notrig%name, "Tirage aléatoire de non-déclenchement", " ")
     1566 CALL histdef2d(iff,clef_stations(iff),o_ale_bl_trig%flag,o_ale_bl_trig%name, "ALE_BL_STAT + Condition P>Pseuil", "m2/s2")
     1567 CALL histdef2d(iff,clef_stations(iff),o_ale_bl_stat%flag,o_ale_bl_stat%name, "ALE_BL_STAT", "m2/s2")
     1568
     1569 CALL histdef3d(iff,clef_stations(iff),o_therm_tke_max%flag,o_therm_tke_max%name, "TKE thermique", "m2/s2")
     1570 CALL histdef3d(iff,clef_stations(iff),o_env_tke_max%flag,o_env_tke_max%name, "TKE environnement", "m2/s2")
     1571 CALL histdef2d(iff,clef_stations(iff),o_alp_bl_det%flag,o_alp_bl_det%name, "ALP_BL_DET", "W/m2")
     1572 CALL histdef2d(iff,clef_stations(iff),o_alp_bl_fluct_m%flag,o_alp_bl_fluct_m%name, "ALP_BL_FLUCT_M", "W/m2")
     1573 CALL histdef2d(iff,clef_stations(iff),o_alp_bl_fluct_tke%flag,o_alp_bl_fluct_tke%name, "ALP_BL_FLUCT_TKE", "W/m2")
     1574 CALL histdef2d(iff,clef_stations(iff),o_alp_bl_conv%flag,o_alp_bl_conv%name, "ALP_BL_CONV", "W/m2")
     1575 CALL histdef2d(iff,clef_stations(iff),o_alp_bl_stat%flag,o_alp_bl_stat%name, "ALP_BL_STAT", "W/m2")
     1576
     1577!!! fin nrlmd le 10/04/2012
    15091578
    15101579          CALL histdef3d(iff,clef_stations(iff),o_dtlsc%flag,o_dtlsc%name, "Condensation dT", "K/s")
     
    15191588          CALL histdef3d(iff,clef_stations(iff),o_dtthe%flag,o_dtthe%name, "Thermal dT", "K/s")
    15201589
    1521           if(iflag_thermals.gt.1) THEN
     1590          if(iflag_thermals.ge.1) THEN
    15221591             CALL histdef3d(iff,clef_stations(iff),o_dqlscth%flag,o_dqlscth%name, "dQ therm.", "(kg/kg)/s")
    15231592             CALL histdef3d(iff,clef_stations(iff),o_dqlscst%flag,o_dqlscst%name, "dQ strat.", "(kg/kg)/s")
     
    15311600             CALL histdef3d(iff,clef_stations(iff),o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s")
    15321601             CALL histdef3d(iff,clef_stations(iff),o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s")
    1533              CALL histdef3d(iff,clef_stations(iff), &
    1534                   o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s")
    15351602             CALL histdef2d(iff,clef_stations(iff), &
    15361603                  o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ")
     
    15481615             CALL histdef3d(iff,clef_stations(iff), &
    15491616                  o_dqthe%flag,o_dqthe%name, "Thermal dQ", "(kg/kg)/s")
    1550           endif !iflag_thermals.gt.1
     1617          endif !iflag_thermals.ge.1
    15511618          CALL histdef3d(iff,clef_stations(iff), &
    15521619               o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s")
Note: See TracChangeset for help on using the changeset viewer.