Changeset 34


Ignore:
Timestamp:
Jan 26, 2011, 3:37:26 AM (14 years ago)
Author:
aslmd
Message:

LMD_MM_MARS et LMD_LES_MARS convergence maintenant complete pour l'interface lmd_driver qui reconnait le cas LES avec les options de run; il y a desormais une seule version de la routine lmd_driver en commun entre MM et LES\n LMD_LES_MARS fonctionnement ameliore sans ecriture de fichiers dans modif_mars, adaptation de makeles en consequence\n LMD_LES_MARS cas test verifie\n LMD_LES_MARS ne fonctionne pas encore avec la nouvelle physique mais adaptation a priori rapide de par le travail effectue sur LMD_MM_MARS via la methode -DNEWPHYS

Location:
trunk/mesoscale
Files:
1 added
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/mesoscale/LMD_LES_MARS/LMD_LES_MARS_install

    r17 r34  
    2222#cd LMD_LES_MARS
    2323#ln -sf ../LMD_LES_MARS_patches modif_mars
     24
     25cd modif_mars
     26ln -sf ../../LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
     27cd ..
    2428
    2529cd dyn_em
     
    5660
    5761
     62### create a fake directory
     63mkdir -p mars_lmd/libf/phymars
     64
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/Registry.EM

    r17 r34  
    7171################################################################################
    7272
     73
    7374####MARS MARS MARS MARS MARS
    7475####MARS MARS MARS MARS MARS
     
    115116####MARS MARS MARS MARS MARS
    116117####MARS MARS MARS MARS MARS
     118
     119
     120
    117121
    118122
     
    185189endif
    186190
    187 
    188 ###MARS MARS MARS MARS MARS
     191####MARS MARS MARS MARS MARS
    189192####MARS MARS MARS MARS MARS     
    190193####
     
    197200state  real   slpx_gc         ij   dyn_em  1  -  i1  "SLPX"             "slope x direction"       "rad"
    198201state  real   slpy_gc         ij   dyn_em  1  -  i1  "SLPY"             "slope y direction"       "rad"
    199 state  real   hv_gc          igj   dyn_em  1  Z  i1  "HV"               "water vapor"             "kg/kg"
     202state  real   hv_gc          igj   dyn_em  1  Z  i1  "HV"               "water vapor"             "kg/kg" 
    200203state  real   hi_gc          igj   dyn_em  1  Z  i1  "HI"               "water ice"               "kg/kg"
    201204state  real   tsoil_gc       igj   dyn_em  1  Z  i1  "TSOIL"            "soil temperatures"       "K"
     205state  real   isoil_gc       igj   dyn_em  1  Z  i1  "ISOIL"            "soil thermal inertia"    "tiu"
     206state  real   dsoil_gc       igj   dyn_em  1  Z  i1  "DSOIL"            "soil depths"             "m"
    202207####
    203208#### variables dans wrf
     
    210215state  real   mars_cice       ij   misc  1  -  i012rd  "MARS_CICE"   "co2 ice"                 "kg"
    211216state  real   mars_tsoil     ilj   misc  1  -  i012rd  "MARS_TSOIL"  "soil temperatures"       "K"
     217state  real   mars_isoil     ilj   misc  1  -  i012rd  "MARS_ISOIL"  "soil thermal inertia"    "tiu"
     218state  real   mars_dsoil     ilj   misc  1  -  i012rd  "MARS_DSOIL"  "soil depths"             "m"
    212219state  real   mars_gw        ilj   misc  1  -  i012rd  "MARS_GW"     "gwparam"                 " "
    213220####
     
    218225
    219226
    220 
    221227#-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    222228#                                               
    223229# Variables for Eulerian mass coordinate dynamics                                           
    224230#                                               
    225 
    226231
    227232# Velocities
     
    260265state    real   ph             ikjb     dyn_em      2         Z     \
    261266       irusdf=(bdy_interp:dt)   "ph"   "perturbation geopotential"  "m2 s-2"
    262 state    real   phb            ikj     dyn_em      1         Z     irdus "phb"  "base-state geopotential"  "m2 s-2"
     267state    real   phb            ikj     dyn_em      1         Z     irdus  "phb"  "base-state geopotential"  "m2 s-2"
    263268state    real   phb_fine       ikj     dyn_em      1         Z      -     "phb_fine"  "for nesting, temp holding interpolated coarse grid phb"  "m2 s-2"
    264269state    real   ph0            ikj     dyn_em      1         Z      r     "ph0"  "initial geopotential"     "m2 s-2"
     
    282287i1       real   t_2save        ikj     dyn_em      1         -   
    283288state    real   t_save         ikj     dyn_em      1         -               "t_save"
    284 #
     289#                                               
    285290
    286291
     
    288293state    real   mu              ijb     dyn_em      2         -     \
    289294     irusdf=(bdy_interp:dt)   "mu"  "perturbation dry air mass in column" "Pa"
    290 state    real   mub             ij     dyn_em      1         -     irdus       "mub" "base state dry air mass in column" "Pa"
     295state    real   mub             ij     dyn_em      1         -     irdus        "mub" "base state dry air mass in column" "Pa"
    291296state    real   mub_fine        ij     dyn_em      1         -      -           "mub_fine" "nest temp, holds interpolated coarse grid mub" "Pa"
    292297state    real   mub_save        ij     dyn_em      1         -      -           "mub_save" "nest temp, holds orig fine grid mub" "Pa"
     
    315320
    316321# Pressure and Density
    317 state    real   p              ikj     dyn_em      1         -      r        "p"           "perturbation pressure"         "Pa"
     322state    real   p              ikj     dyn_em      1         -      r         "p"           "perturbation pressure"         "Pa"
    318323state    real   al             ikj     dyn_em      1         -      r         "al"          "inverse perturbation density"  "m3 kg-1"
    319324state    real   alt            ikj     dyn_em      1         -      r         "alt"         "inverse density"               "m3 kg-1"
     
    323328state    real   rdz            ikj     dyn_em      1         Z      -         " "  " "  " "   
    324329state    real   rdzw           ikj     dyn_em      1         Z       -        " "  " "  " "   
    325 state    real   pb             ikj     dyn_em      1         -      rdus     "pb"          "BASE STATE PRESSURE "          "Pa"
     330state    real   pb             ikj     dyn_em      1         -      rdus      "pb"          "BASE STATE PRESSURE "          "Pa"
    326331##
    327332## MARS: TO GET LIGHTER HISTORY FILES
    328333##
    329334state    real   ptot           ikj     dyn_em      1         -      irh       "PTOT"        "total pressure"      "Pa"
     335####### if you choose h here, you will probably want not to output u,v,w,t,etc...
     336state    real   uave           ikj     dyn_em      1         -      ir       "UAVE"        "average zonal wind"  "m/s"
     337state    real   ustd           ikj     dyn_em      1         -      ir       "USTD"        "std dev zonal wind"  "m/s"
     338state    real   vave           ikj     dyn_em      1         -      ir       "VAVE"        "average meridional wind"  "m/s"
     339state    real   vstd           ikj     dyn_em      1         -      ir       "VSTD"        "std dev meridional wind"  "m/s"
     340state    real   wave           ikj     dyn_em      1         -      ir       "WAVE"        "average vertical wind"  "m/s"
     341state    real   wstd           ikj     dyn_em      1         -      ir       "WSTD"        "std dev vertical wind"  "m/s"
     342state    real   tave           ikj     dyn_em      1         -      ir       "TAVE"        "average pert. potential temperature"  "K"
     343state    real   tstd           ikj     dyn_em      1         -      ir       "TSTD"        "std dev pert. potential temperature"  "K"
     344#######
     345## ajouter tk, ptot, phtot ??? les deux derniers sont assez smooth...
    330346
    331347#                                               
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/makeles

    r24 r34  
    88# A. Spiga 01/2009
    99#------------------------------
     10
     11
     12echo "Use -n if you don't want to recompile physics"
    1013
    1114
     
    5053echo $libphys_folder
    5154cp -rf ${libphys_folder}/liblmd.a ${whereliblmd}/
    52 cp -rf ${phymars_folder}/dimphys.h ${here}/modif_mars/
    53 cp -rf ${folder}/call_meso_inifis.inc ${here}/modif_mars/
    54 cp -rf ${folder}/call_meso_physiq.inc ${here}/modif_mars/
    55 cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/
    56 cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/modif_mars/
    57 cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/modif_mars/
    58 
     55#cp -rf ${phymars_folder}/dimphys.h ${here}/modif_mars/
     56cp -rf ${phymars_folder}/dimphys.h ${here}/mars_lmd/libf/phymars/
     57#cp -rf ${folder}/call_meso_inifis.inc ${here}/modif_mars/
     58#cp -rf ${folder}/call_meso_physiq.inc ${here}/modif_mars/
     59cp -rf ${folder}/call_meso_inifis.inc ${here}/
     60cp -rf ${folder}/call_meso_physiq.inc ${here}/
     61#cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/
     62cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/inc/
     63#cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/modif_mars/
     64#cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/modif_mars/
     65cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/mars_lmd/libf/phymars/
     66cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/mars_lmd/libf/phymars/
    5967fi
    6068##############################################################
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/makeles_ciclad

    r17 r34  
    5050echo $libphys_folder
    5151cp -rf ${libphys_folder}/liblmd.a ${whereliblmd}/
    52 cp -rf ${phymars_folder}/dimphys.h ${here}/modif_mars/
    53 cp -rf ${folder}/call_meso_inifis.inc ${here}/modif_mars/
    54 cp -rf ${folder}/call_meso_physiq.inc ${here}/modif_mars/
    55 cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/
    56 cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/modif_mars/
    57 cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/modif_mars/
    58 
     52#cp -rf ${phymars_folder}/dimphys.h ${here}/modif_mars/
     53cp -rf ${phymars_folder}/dimphys.h ${here}/mars_lmd/libf/phymars/
     54#cp -rf ${folder}/call_meso_inifis.inc ${here}/modif_mars/
     55#cp -rf ${folder}/call_meso_physiq.inc ${here}/modif_mars/
     56cp -rf ${folder}/call_meso_inifis.inc ${here}/
     57cp -rf ${folder}/call_meso_physiq.inc ${here}/
     58#cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/
     59cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/inc/
     60#cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/modif_mars/
     61#cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/modif_mars/
     62cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/mars_lmd/libf/phymars/
     63cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/mars_lmd/libf/phymars/
    5964fi
    6065##############################################################
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/module_big_step_utilities_em.F

    r17 r34  
    43474347
    43484348   SUBROUTINE phy_prep ( config_flags,                                &  ! input
    4349                          mu, muu, muv, u, v, p, pb, alt, ph,          &  ! input
     4349                         mu, muu, muv, u, v, w, p, pb, alt, ph,       &  ! input
    43504350                         phb, t, tsk, moist, n_moist,                 &  ! input
    43514351                         mu_3d, rho, th_phy, p_phy , pi_phy ,         &  ! output
    4352                          u_phy, v_phy, p8w, t_phy, t8w,               &  ! output
     4352                         u_phy, v_phy, w_phy, p8w, t_phy, t8w,        &  ! output
    43534353                         z, z_at_w, dz8w,                             &  ! output
    43544354                         fzm, fzp,                                    &  ! params
     
    43834383          INTENT(  OUT)                                  ::   u_phy, &
    43844384                                                              v_phy, &
     4385                                                              w_phy, &
    43854386                                                             pi_phy, &
    43864387                                                              p_phy, &
     
    44004401                                                                  u, &
    44014402                                                                  v, &
     4403                                                                  w, &
    44024404                                                                alt, &
    44034405                                                                 ph, &
     
    45124514    do k = k_start, k_end
    45134515    do i = i_start, i_end
    4514       z(i,k,j) = 0.5*(z_at_w(i,k,j) +z_at_w(i,k+1,j) )
     4516      z(i,k,j) = 0.5*(z_at_w(i,k,j) + z_at_w(i,k+1,j) )
     4517!!!! MARS MARS ajout aymeric (ainsi que les arguments de cette routine)
     4518      w_phy(i,k,j) = 0.5*(w(i,k,j) + w(i,k+1,j) )
    45154519    enddo
    45164520    enddo
     
    46404644   IF ( (config_flags%bl_pbl_physics .gt. 0) &
    46414645        .OR. (config_flags%modif_wrf) ) THEN
    4642 
     4646!****MARS
    46434647      DO J=j_start,j_end
    46444648      DO K=k_start,k_end
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/module_first_rk_step_part1.F

    r17 r34  
    7878    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: u_phy
    7979    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: v_phy
     80    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme) :: w_phy  !!MARS aymeric var loc
    8081    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: dz8w
    8182    REAL    ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: p8w
     
    147148        CALL phy_prep ( config_flags,                           &
    148149                        grid%mut, grid%muu, grid%muv, grid%u_2, &
    149                         grid%v_2, grid%p, grid%pb, grid%alt,              &
     150                        grid%v_2, grid%w_2, grid%p, grid%pb, grid%alt,              &
    150151                        grid%ph_2, grid%phb, grid%t_2, grid%tsk, moist, num_moist,   &
    151152                        mu_3d, rho,                             &
    152                         th_phy, p_phy, pi_phy, u_phy, v_phy,    &
     153                        th_phy, p_phy, pi_phy, u_phy, v_phy, w_phy,   &
    153154                        p8w, t_phy, t8w, grid%z, z_at_w,             &
    154155                        dz8w, grid%fnm, grid%fnp,                         &   
     
    594595                        ! ... (cf phy_prep in module_big_step_utilities_em)
    595596     &        ,HT=grid%ht                                                 &
    596      &        ,U=u_phy            ,V=v_phy                                &
     597     &        ,U=u_phy            ,V=v_phy,         W=w_phy               &
    597598     &        ,TH=th_phy          ,T=t_phy                                &
    598599     &        ,P=p_phy            ,EXNER=pi_phy               ,RHO=rho    &
     
    621622     &        ,CST_TI=config_flags%init_TI                                &
    622623     &        ,ISFFLX=config_flags%isfflx                                 &
     624     &        ,DIFF_OPT=config_flags%diff_opt                             &
     625     &        ,KM_OPT=config_flags%km_opt                                 &
     626           ! additional diagnostics
     627!     &        ,UAVE=grid%em_uave, USTD=grid%em_ustd &
     628!     &        ,VAVE=grid%em_vave, VSTD=grid%em_vstd &
     629!     &        ,WAVE=grid%em_wave, WSTD=grid%em_wstd &
     630!     &        ,TAVE=grid%em_tave, TSTD=grid%em_tstd &
     631     &        ,UAVE=grid%uave, USTD=grid%ustd &
     632     &        ,VAVE=grid%vave, VSTD=grid%vstd &
     633     &        ,WAVE=grid%wave, WSTD=grid%wstd &
     634     &        ,TAVE=grid%tave, TSTD=grid%tstd &
     635     &        ,HISTORY_INTERVAL=model_config_rec%history_interval(1)  &
    623636          !------------------!
    624637          ! OUTPUT VARIABLES !
    625638          !------------------!
    626 #include "../modif_mars/module_lmd_driver_output4.inc"
     639#include "module_lmd_driver_output4.inc"
    627640     &        ,SLPX=grid%slpx,SLPY=grid%slpy)
    628641ENDIF
  • trunk/mesoscale/LMD_LES_MARS/modif_mars/module_model_constants.F

    r17 r34  
    11!WRF:MODEL_LAYER:CONSTANTS
    22!
     3!PLANET MARS
    34
    45 MODULE module_model_constants
     
    1819
    1920#if ( NMM_CORE == 1 )
    20    REAL    , PARAMETER :: r_d          = 192.
    21    REAL    , PARAMETER :: cp           = 844.6
     21   REAL    , PARAMETER :: r_d          = 192.  ! gas constant m2 s-2 K-1
     22   REAL    , PARAMETER :: cp           = 844.6   ! r= 8.314511E+0 *1000.E+0/mugaz
    2223#else
    2324   REAL    , PARAMETER :: r_d          = 192.
     
    2526#endif
    2627
    27    REAL    , PARAMETER :: r_v          = 461.6
     28   REAL    , PARAMETER :: r_v          = 461.6  ! gas constant for water vapor
    2829   REAL    , PARAMETER :: cv           = cp-r_d
    29    REAL    , PARAMETER :: cpv          = 4.4*r_v
     30   REAL    , PARAMETER :: cpv          = 4.4*r_v  ! cp / R = 4.4 ?? ! rcp = r/cp  ~0.256793
    3031   REAL    , PARAMETER :: cvv          = cpv-r_v
    3132   REAL    , PARAMETER :: cvpm         = -cv/cp
     
    4041
    4142   REAL    , PARAMETER :: p1000mb      = 610.
    42    REAL    , PARAMETER :: t0           = 220.
     43   REAL    , PARAMETER :: t0           = 220. ! earth : 300 ...  remplacer par 220 ?
    4344   REAL    , PARAMETER :: p0           = 610.
    4445   REAL    , PARAMETER :: cpovcv       = cp/(cp-r_d)
     
    4647   REAL    , PARAMETER :: rvovrd       = r_v/r_d
    4748
    48    REAL    , PARAMETER :: reradius     = 1./3397200. 
     49   REAL    , PARAMETER :: reradius     = 1./3397200.    ! Rayon de mars (m)  ~3397200 m
    4950
    5051!-------------------------------
     
    7576!-------------------------------
    7677
    77 
    78 
    7978   REAL    , PARAMETER :: asselin      = .025
    8079!   REAL    , PARAMETER :: asselin      = .0
     
    9291   REAL    , PARAMETER :: rhowater     = 1000.
    9392   REAL    , PARAMETER :: rhosnow      = 100.
    94    REAL    , PARAMETER :: rhoair0      = 0.02
    95 
     93   REAL    , PARAMETER :: rhoair0      = 0.02   !Earth Surface density: 1.217 kg/m3
     94                                                !Mars Surface density: 0.020 kg/m3
    9695   REAL    , PARAMETER :: DEGRAD       = 3.1415926/180.
    97    REAL    , PARAMETER :: DPD          = 360./669.
     96   REAL    , PARAMETER :: DPD          = 360./669. ! longitude solaire d'un jour?
    9897
    9998   REAL    , PARAMETER ::  SVP1=0.6112
     
    103102   REAL    , PARAMETER ::  EP_1=R_v/R_d-1.
    104103   REAL    , PARAMETER ::  EP_2=R_d/R_v
    105    REAL    , PARAMETER ::  KARMAN=0.4
    106    REAL    , PARAMETER ::  EOMEG=7.0721E-5
    107    REAL    , PARAMETER ::  STBOLT=5.67051E-8
     104   REAL    , PARAMETER ::  KARMAN=0.4  ! von karman constant
     105   REAL    , PARAMETER ::  EOMEG=7.0721E-5 ! angular rotation rate (rad.s-1)
     106   REAL    , PARAMETER ::  STBOLT=5.67051E-8 ! stefan-boltzmann constant
     107
     108
     109
     110
    108111
    109112   REAL    , PARAMETER ::  prandtl = 1./3.0
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F

    r28 r34  
    863863     &        ,CST_AL=config_flags%init_AL  &
    864864     &        ,CST_TI=config_flags%init_TI  &
     865     &        ,ISFFLX=config_flags%isfflx   &
     866     &        ,DIFF_OPT=config_flags%diff_opt     &
     867     &        ,KM_OPT=config_flags%km_opt         &
    865868           ! additional diagnostics
    866869     &        ,UAVE=grid%em_uave, USTD=grid%em_ustd &
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r28 r34  
    3838        CST_AL, &
    3939        CST_TI, &
     40        isfflx, &
     41        diff_opt, &
     42        km_opt, &
    4043        UAVE, USTD, &
    4144        VAVE, VSTD, &
     
    4649        SLPX,SLPY)
    4750! NB: module_lmd_driver_output1.inc : output arguments generated from Registry
     51
     52
     53
     54
    4855
    4956!==================================================================
     
    9299! Scalars
    93100INTEGER, INTENT(IN  ) :: JULDAY, itimestep, julyr,id,max_dom,MARS_MODE
     101INTEGER, INTENT(IN  ) :: isfflx,diff_opt,km_opt
    94102REAL, INTENT(IN  ) :: GMT,dt,dx,dy,RADT,CUDT
    95103REAL, INTENT(IN  ) :: CST_AL, CST_TI
     
    110118!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    111119REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN   )  :: &
    112      MARS_TSOIL
     120     MARS_TSOIL 
    113121#ifdef NEWPHYS
    114122REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN   )  :: &
     
    165173   ! v--- can they be modified ?
    166174   REAL,DIMENSION(:),ALLOCATABLE :: wtsurf,wco2ice,wemis
    167    REAL,DIMENSION(:,:),ALLOCATABLE :: wq2,wqsurf,wtsoil
     175   REAL,DIMENSION(:,:),ALLOCATABLE :: wq2,wqsurf,wtsoil 
    168176#ifdef NEWPHYS
    169177   REAL,DIMENSION(:,:),ALLOCATABLE :: wisoil,wdsoil
     
    220228!==================================================================
    221229
    222 flag_LES = .false.  ! "True" LES is not available in this version
     230IF (JULYR .ne. 9999) THEN
     231    flag_LES = .false.  ! "True" LES is not available in this version
     232    PRINT *, '*** REAL-CASE SIMULATION ***'
     233ELSE
     234     PRINT *, '*** IDEALIZED SIMULATION ***'
     235     IF ((diff_opt .eq. 2) .and. (km_opt .eq. 2)) THEN
     236          PRINT *, '*** type: LES ***'
     237          PRINT *, '*** diff_opt = 2 *** km_opt = 2'
     238          PRINT *, '*** forcing is isfflx = ',isfflx
     239          flag_LES = .true.
     240          !! SPECIAL LES
     241     ELSE
     242          PRINT *, '*** type: not LES ***'
     243          PRINT *, '*** diff_opt = ',diff_opt
     244          PRINT *, '*** km_opt = ',km_opt
     245          flag_LES = .false.
     246          !! IDEALIZED, no LES
     247          !! cependant, ne veut-on pas pouvoir
     248          !! prescrire un flux en idealise ??
     249     ENDIF
     250ENDIF
     251
     252
    223253print *,'** Mars ** DOMAIN',id
    224254
     
    231261jte = j_end(num_tiles)
    232262!!
    233 relax=0
    234 sponge_top=0               ! another value than 0 triggers instabilities 
    235 IF (id .gt. 1) relax=2     ! fix to avoid noise in nesting simulations ; 1 >> too much noise ...
     263IF (flag_LES .eq. .false.) THEN
     264 relax=0
     265 sponge_top=0               ! another value than 0 triggers instabilities 
     266 IF (id .gt. 1) relax=2     ! fix to avoid noise in nesting simulations ; 1 >> too much noise ...
     267ENDIF
    236268ips=its
    237269ipe=ite
    238270jps=jts
    239271jpe=jte
    240 IF (ips .eq. ids)   ips=its+relax !! IF tests necesary for parallel runs
    241 IF (ipe .eq. ide-1) ipe=ite-relax
    242 IF (jps .eq. jds)   jps=jts+relax
    243 IF (jpe .eq. jde-1) jpe=jte-relax
     272IF (flag_LES .eq. .false.) THEN
     273 IF (ips .eq. ids)   ips=its+relax !! IF tests necesary for parallel runs
     274 IF (ipe .eq. ide-1) ipe=ite-relax
     275 IF (jps .eq. jds)   jps=jts+relax
     276 IF (jpe .eq. jde-1) jpe=jte-relax
     277ENDIF
    244278kps=kts         !! start at surface
    245 kpe=kte-sponge_top
     279IF (flag_LES .eq. .false.) THEN
     280 kpe=kte-sponge_top
     281ELSE
     282 PRINT *, '*** IDEALIZED SIMULATION: LES *** kpe=kte'
     283 kpe=kte !-sponge_top
     284ENDIF
    246285
    247286!----------------------------!
     
    267306
    268307
     308PRINT *, ips, ipe, jps, jpe
     309PRINT *, ngrid
     310
     311
     312
    269313elaps = (float(itimestep)-1.)*dt  ! elapsed seconds of simulation
    270314!----------------------------------------------!
     
    287331!! put here some general information you'd like to print just once
    288332    print *, 'TILES: ', i_start,i_end, j_start, j_end  ! numbers for simple runs, arrays for parallel runs
    289     print *, 'DOMAIN: ', ide, ids, jds, jde
    290     print *, 'MEMORY: ', ime, ims, jms, jme
     333    print *, 'DOMAIN: ', ids, ide, jds, jde
     334    print *, 'MEMORY: ', ims, ime, jms, jme
    291335    print *, 'ADVECTED TRACERS: ', num_3d_s-1
    292336    print *, 'PHYSICS IS CALLED EACH...',wappel_phys
     
    328372  !
    329373  PRINT *,'** Mars ** IDEALIZED SIMULATION'
     374  PRINT *,'** Mars ** BEWARE: input_coord must be here'
    330375  open(unit=14,file='input_coord',form='formatted',status='old')
    331376  rewind(14)
     
    352397!        PRINT *,'******************   CRASH   *******************'
    353398!        PRINT *,'Irrealistic temperature...', MAXLOC(t), MINLOC(t)
     399!PRINT *, t
    354400!        PRINT *,'************************************************'
    355401!        STOP
     
    411457!        PRINT *,'OK OK OK OK'
    412458!ENDIF
     459!ENDIF
     460        !IF (          ANY(isNaN(u)) &
     461        !         .OR. ANY(isNaN(v)) &
     462        !         .OR. ANY(isNaN(t)) ) THEN
     463        ! >>> ne marche qu'avec g95
     464!print *, 'check dynamics'
     465!print *, 'u', MAXVAL(u), MINVAL(u)
     466!print *, 'v', MAXVAL(v), MINVAL(v)
     467!print *, 't', MAXVAL(t), MINVAL(t, MASK = t > 0)
     468
    413469
    414470
     
    536592!th_prof(:) = th(i,kps:kpe,j)       ! pot. temperature half level (K)
    537593
    538 
    539594!--------------------------------!
    540595! specific treatment for tracers !
     
    567622! Mass-point latitude and longitude (radians) !
    568623!---------------------------------------------!
    569 lat_val = XLAT(i,j)*DEGRAD
    570 lon_val = XLONG(i,j)*DEGRAD
     624IF (JULYR .ne. 9999) THEN
     625 lat_val = XLAT(i,j)*DEGRAD
     626 lon_val = XLONG(i,j)*DEGRAD
     627ELSE
     628 !!! IDEALIZED CASE
     629 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION lat: ',lat_input
     630 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION lon: ',lon_input
     631 lat_val = lat_input*DEGRAD
     632 lon_val = lon_input*DEGRAD
     633ENDIF
    571634
    572635!-----------------------------------------!
     
    574637! NB: usually 0 in mesoscale applications !
    575638!-----------------------------------------!
    576 zmea_val=MARS_GW(i,1,j)
    577 zstd_val=MARS_GW(i,2,j)
    578 zsig_val=MARS_GW(i,3,j)
    579 zgam_val=MARS_GW(i,4,j)
    580 zthe_val=MARS_GW(i,5,j)
     639IF (JULYR .ne. 9999) THEN
     640 zmea_val=MARS_GW(i,1,j)
     641 zstd_val=MARS_GW(i,2,j)
     642 zsig_val=MARS_GW(i,3,j)
     643 zgam_val=MARS_GW(i,4,j)
     644 zthe_val=MARS_GW(i,5,j)
     645ELSE
     646 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION GWdrag OFF'
     647 zmea_val=0.
     648 zstd_val=0.
     649 zsig_val=0.
     650 zgam_val=0.
     651 zthe_val=0.
     652ENDIF
    581653
    582654!---------------------------------!
    583655! Ground albedo & Thermal Inertia !
    584656!---------------------------------!
    585 IF (CST_AL == 0) THEN
    586 albedodat_val=MARS_ALB(i,j)
    587 ELSE
    588 albedodat_val=CST_AL
    589 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** SET CONSTANT ALBEDO ', albedodat_val
    590 ENDIF
    591 IF (CST_TI == 0) THEN
    592 inertiedat_val=MARS_TI(i,j)
    593 ELSE
    594 inertiedat_val=CST_TI
    595 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** SET CONSTANT THERMAL INERTIA ', inertiedat_val
     657IF (JULYR .ne. 9999) THEN
     658 IF (CST_AL == 0) THEN
     659 albedodat_val=MARS_ALB(i,j)
     660 ELSE
     661 albedodat_val=CST_AL
     662 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** SET CONSTANT ALBEDO ', albedodat_val
     663 ENDIF
     664 IF (CST_TI == 0) THEN
     665 inertiedat_val=MARS_TI(i,j)
     666 ELSE
     667 inertiedat_val=CST_TI
     668 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** SET CONSTANT THERMAL INERTIA ', inertiedat_val
     669 ENDIF
     670ELSE
     671 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION albedo: ', CST_AL
     672 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION inertia: ',CST_TI
     673 albedodat_val=CST_AL
     674 inertiedat_val=CST_TI
    596675ENDIF
    597676
     
    612691! Deep soil temperatures !
    613692!------------------------!
    614 IF (MARS_TSOIL(i,1,j) .gt. 0.) THEN
    615 tsoil_val(:)=MARS_TSOIL(i,:,j)
     693IF (JULYR .ne. 9999) THEN
     694  IF (MARS_TSOIL(i,1,j) .gt. 0.) THEN
     695   tsoil_val(:)=MARS_TSOIL(i,:,j)
     696  ELSE
     697   tsoil_val = tsoil_val*0. + tsurf_val
     698  ENDIF
    616699ELSE
    617 tsoil_val = tsoil_val*0. + tsurf_val
    618 ENDIF
     700  IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION tsoil is set to tsurf'
     701  do k=1,nsoil
     702   tsoil_val(k) = tsurf_val
     703  enddo
     704ENDIF
     705
    619706#ifdef NEWPHYS
    620707isoil_val(:)=MARS_ISOIL(i,:,j)
     
    625712! Slope inclination !
    626713!-------------------!
    627 theta_val=atan(sqrt( (1000.*SLPX(i,j))**2 + (1000.*SLPY(i,j))**2 ))
    628 theta_val=theta_val/DEGRAD
     714IF (JULYR .ne. 9999) THEN
     715  theta_val=atan(sqrt( (1000.*SLPX(i,j))**2 + (1000.*SLPY(i,j))**2 ))
     716  theta_val=theta_val/DEGRAD
     717ELSE
     718  IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION slope inclination is 0'
     719  theta_val=0.
     720ENDIF
    629721
    630722!-------------------------------------------!
    631723! Slope orientation; 0 is north, 90 is east !
    632724!-------------------------------------------!
    633 psi_val=-90.*DEGRAD-atan(SLPY(i,j)/SLPX(i,j))
    634 if (SLPX(i,j) .ge. 0.) then
    635    psi_val=psi_val-180.*DEGRAD
    636 endif
    637 psi_val=360.*DEGRAD+psi_val
    638 psi_val=psi_val/DEGRAD
    639 psi_val = MODULO(psi_val+180.,360.)
     725IF (JULYR .ne. 9999) THEN
     726  psi_val=-90.*DEGRAD-atan(SLPY(i,j)/SLPX(i,j))
     727  if (SLPX(i,j) .ge. 0.) then
     728    psi_val=psi_val-180.*DEGRAD
     729  endif
     730  psi_val=360.*DEGRAD+psi_val
     731  psi_val=psi_val/DEGRAD
     732  psi_val = MODULO(psi_val+180.,360.)
     733ELSE
     734  IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION slope orientation is 0 (well, whatever)'
     735  psi_val=0.
     736ENDIF
    640737
    641738!-----------------!
     
    643740!-----------------!
    644741IF ( (i == ips) .AND. (j == jps) ) THEN
    645  PRINT *,'lat/lon ', lat_val/DEGRAD, lon_val/DEGRAD
    646  PRINT *,'emiss ', emis_val
    647  PRINT *,'phi ',phisfi_val
    648  PRINT *,'tsurf ',tsurf_val
    649  PRINT *,'aire ',aire_val
    650  PRINT *,'z_prof ',z_prof
    651  PRINT *,'dz8w_prof',dz8w_prof
    652  PRINT *,'p8w_prof ',p8w_prof
    653  PRINT *,'p_prof ',p_prof
    654  PRINT *,'t_prof ',t_prof
    655  PRINT *,'t8w_prof ',t8w_prof
    656  PRINT *,'u_prof ',u_prof
    657  PRINT *,'v_prof ',v_prof
    658  PRINT *,'tsoil ',tsoil_val
     742PRINT *,'lat/lon ', lat_val/DEGRAD, lon_val/DEGRAD
     743PRINT *,'emiss ', emis_val
     744PRINT *,'albedo ', albedodat_val
     745PRINT *,'inertie ', inertiedat_val
     746PRINT *,'phi ',phisfi_val
     747PRINT *,'tsurf ',tsurf_val
     748PRINT *,'aire ',aire_val
     749PRINT *,'z_prof ',z_prof
     750PRINT *,'dz8w_prof',dz8w_prof
     751PRINT *,'p8w_prof ',p8w_prof
     752PRINT *,'p_prof ',p_prof
     753PRINT *,'t_prof ',t_prof
     754PRINT *,'t8w_prof ',t8w_prof
     755PRINT *,'u_prof ',u_prof
     756PRINT *,'v_prof ',v_prof
     757PRINT *,'tsoil ',tsoil_val
    659758#ifdef NEWPHYS
    660  PRINT *,'isoil ',isoil_val
    661  PRINT *,'dsoil ',dsoil_val
     759PRINT *,'isoil ',isoil_val
     760PRINT *,'dsoil ',dsoil_val
    662761#endif
    663762ENDIF
     
    719818pv(subs,:) = v_prof(:)
    720819pw(subs,:) = 0   !! NB: not used in the physics, only diagnostic...
    721 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     820!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    722821!! for IDEALIZED CASES ONLY
    723822IF (JULYR .eq. 9999) pplev(subs,nlayer+1)=0.  !! pplev(subs,nlayer+1)=ptop >> NO !
    724 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     823!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     824
     825! NOTE:
     826! IF ( pplev(subs,nlayer+1) .le. 0 ) pplev(subs,nlayer+1)=ptop
     827! cree des diagnostics delirants et aleatoires dans le transfert radiatif
    725828
    726829!---------!
     
    847950#include "module_lmd_driver_output3.inc" 
    848951       !  ^-- generated from Registry
     952!TSK(i,j) = output_tab2d(subs,ind_TSURF)
    849953ENDDO
    850954ENDDO
    851955DEALLOCATE(output_tab2d)
    852956DEALLOCATE(output_tab3d)
    853 
    854957
    855958!---------------------------------------------------------------------------------!
     
    9551058DEALLOCATE(pdq)
    9561059
    957 !---------!
    958 ! display !
    959 !---------!
     1060!!---------!
     1061!! display !
     1062!!---------!
    9601063PRINT *, '** Mars ** Results from LMD physics'
    9611064PRINT *, 'u non-zero tendencies'
     
    9951098!c  Local:
    9961099      double precision xref,zx0,zteta,zz
    997 !c      xref: mean anomaly, zteta: true anomaly, zx0: eccentric anomaly
     1100!c      xref: mean anomaly, zteta: true anomaly, zx0: eccentric anomaly
    9981101      double precision year_day
    9991102      double precision peri_day,timeperi,e_elips
     
    10301133
    10311134END MODULE module_lmd_driver
     1135
  • trunk/mesoscale/NOTES.txt

    r32 r34  
    1 -il faut run.def nouvelle physique
     1RESTE a ADAPTER le LES a la NOUVELLE PHYSIQUE
     2il y a normalement peu a faire
     3reste a faire egalement le -DNEWPHYS pour le LES
     4
     5attention pb d'affichage des valeurs dans le fichier texte avec LES ???
     6bien que les valeurs du fichier soient tout a fait raisonnables
     7... n'est-ce pas un effet de bord cache ????
     8
     9
     10apres fusion, le LES est reconnu par module_lmd_driver lorsque diff_opt=2 km_opt=2
     11
     12
     13-attention PB si on ne sort pas HFX et USTM (note dans le Registry)
     14-il faut run.def nouvelle physique [c est meme ce qui est utilise par runmeso]
     15- IL FAUT SE PENCHER SUR LE FAIT QU'ON INDIQUE q2val=0 dans lmd_driver ....
    216
    317ATTENTION NOUVELLE PHYSIQUE
Note: See TracChangeset for help on using the changeset viewer.