Changeset 34
- Timestamp:
- Jan 26, 2011, 3:37:26 AM (14 years ago)
- 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 22 22 #cd LMD_LES_MARS 23 23 #ln -sf ../LMD_LES_MARS_patches modif_mars 24 25 cd modif_mars 26 ln -sf ../../LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F 27 cd .. 24 28 25 29 cd dyn_em … … 56 60 57 61 62 ### create a fake directory 63 mkdir -p mars_lmd/libf/phymars 64 -
trunk/mesoscale/LMD_LES_MARS/modif_mars/Registry.EM
r17 r34 71 71 ################################################################################ 72 72 73 73 74 ####MARS MARS MARS MARS MARS 74 75 ####MARS MARS MARS MARS MARS … … 115 116 ####MARS MARS MARS MARS MARS 116 117 ####MARS MARS MARS MARS MARS 118 119 120 117 121 118 122 … … 185 189 endif 186 190 187 188 ###MARS MARS MARS MARS MARS 191 ####MARS MARS MARS MARS MARS 189 192 ####MARS MARS MARS MARS MARS 190 193 #### … … 197 200 state real slpx_gc ij dyn_em 1 - i1 "SLPX" "slope x direction" "rad" 198 201 state 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" 202 state real hv_gc igj dyn_em 1 Z i1 "HV" "water vapor" "kg/kg" 200 203 state real hi_gc igj dyn_em 1 Z i1 "HI" "water ice" "kg/kg" 201 204 state real tsoil_gc igj dyn_em 1 Z i1 "TSOIL" "soil temperatures" "K" 205 state real isoil_gc igj dyn_em 1 Z i1 "ISOIL" "soil thermal inertia" "tiu" 206 state real dsoil_gc igj dyn_em 1 Z i1 "DSOIL" "soil depths" "m" 202 207 #### 203 208 #### variables dans wrf … … 210 215 state real mars_cice ij misc 1 - i012rd "MARS_CICE" "co2 ice" "kg" 211 216 state real mars_tsoil ilj misc 1 - i012rd "MARS_TSOIL" "soil temperatures" "K" 217 state real mars_isoil ilj misc 1 - i012rd "MARS_ISOIL" "soil thermal inertia" "tiu" 218 state real mars_dsoil ilj misc 1 - i012rd "MARS_DSOIL" "soil depths" "m" 212 219 state real mars_gw ilj misc 1 - i012rd "MARS_GW" "gwparam" " " 213 220 #### … … 218 225 219 226 220 221 227 #----------------------------------------------------------------------------------------------------------------------------------------------------------------- 222 228 # 223 229 # Variables for Eulerian mass coordinate dynamics 224 230 # 225 226 231 227 232 # Velocities … … 260 265 state real ph ikjb dyn_em 2 Z \ 261 266 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"267 state real phb ikj dyn_em 1 Z irdus "phb" "base-state geopotential" "m2 s-2" 263 268 state real phb_fine ikj dyn_em 1 Z - "phb_fine" "for nesting, temp holding interpolated coarse grid phb" "m2 s-2" 264 269 state real ph0 ikj dyn_em 1 Z r "ph0" "initial geopotential" "m2 s-2" … … 282 287 i1 real t_2save ikj dyn_em 1 - 283 288 state real t_save ikj dyn_em 1 - "t_save" 284 # 289 # 285 290 286 291 … … 288 293 state real mu ijb dyn_em 2 - \ 289 294 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"295 state real mub ij dyn_em 1 - irdus "mub" "base state dry air mass in column" "Pa" 291 296 state real mub_fine ij dyn_em 1 - - "mub_fine" "nest temp, holds interpolated coarse grid mub" "Pa" 292 297 state real mub_save ij dyn_em 1 - - "mub_save" "nest temp, holds orig fine grid mub" "Pa" … … 315 320 316 321 # Pressure and Density 317 state real p ikj dyn_em 1 - r "p" "perturbation pressure" "Pa"322 state real p ikj dyn_em 1 - r "p" "perturbation pressure" "Pa" 318 323 state real al ikj dyn_em 1 - r "al" "inverse perturbation density" "m3 kg-1" 319 324 state real alt ikj dyn_em 1 - r "alt" "inverse density" "m3 kg-1" … … 323 328 state real rdz ikj dyn_em 1 Z - " " " " " " 324 329 state real rdzw ikj dyn_em 1 Z - " " " " " " 325 state real pb ikj dyn_em 1 - rdus "pb" "BASE STATE PRESSURE " "Pa"330 state real pb ikj dyn_em 1 - rdus "pb" "BASE STATE PRESSURE " "Pa" 326 331 ## 327 332 ## MARS: TO GET LIGHTER HISTORY FILES 328 333 ## 329 334 state 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... 336 state real uave ikj dyn_em 1 - ir "UAVE" "average zonal wind" "m/s" 337 state real ustd ikj dyn_em 1 - ir "USTD" "std dev zonal wind" "m/s" 338 state real vave ikj dyn_em 1 - ir "VAVE" "average meridional wind" "m/s" 339 state real vstd ikj dyn_em 1 - ir "VSTD" "std dev meridional wind" "m/s" 340 state real wave ikj dyn_em 1 - ir "WAVE" "average vertical wind" "m/s" 341 state real wstd ikj dyn_em 1 - ir "WSTD" "std dev vertical wind" "m/s" 342 state real tave ikj dyn_em 1 - ir "TAVE" "average pert. potential temperature" "K" 343 state 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... 330 346 331 347 # -
trunk/mesoscale/LMD_LES_MARS/modif_mars/makeles
r24 r34 8 8 # A. Spiga 01/2009 9 9 #------------------------------ 10 11 12 echo "Use -n if you don't want to recompile physics" 10 13 11 14 … … 50 53 echo $libphys_folder 51 54 cp -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/ 56 cp -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/ 59 cp -rf ${folder}/call_meso_inifis.inc ${here}/ 60 cp -rf ${folder}/call_meso_physiq.inc ${here}/ 61 #cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/ 62 cp -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/ 65 cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/mars_lmd/libf/phymars/ 66 cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/mars_lmd/libf/phymars/ 59 67 fi 60 68 ############################################################## -
trunk/mesoscale/LMD_LES_MARS/modif_mars/makeles_ciclad
r17 r34 50 50 echo $libphys_folder 51 51 cp -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/ 53 cp -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/ 56 cp -rf ${folder}/call_meso_inifis.inc ${here}/ 57 cp -rf ${folder}/call_meso_physiq.inc ${here}/ 58 #cp -rf ${folder}/inc/module_lmd_driver_output*.inc ${here}/modif_mars/ 59 cp -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/ 62 cp -rf ${phymars_folder}/wrf_output_2d.h ${here}/mars_lmd/libf/phymars/ 63 cp -rf ${phymars_folder}/wrf_output_3d.h ${here}/mars_lmd/libf/phymars/ 59 64 fi 60 65 ############################################################## -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_big_step_utilities_em.F
r17 r34 4347 4347 4348 4348 SUBROUTINE phy_prep ( config_flags, & ! input 4349 mu, muu, muv, u, v, p, pb, alt, ph,& ! input4349 mu, muu, muv, u, v, w, p, pb, alt, ph, & ! input 4350 4350 phb, t, tsk, moist, n_moist, & ! input 4351 4351 mu_3d, rho, th_phy, p_phy , pi_phy , & ! output 4352 u_phy, v_phy, p8w, t_phy, t8w,& ! output4352 u_phy, v_phy, w_phy, p8w, t_phy, t8w, & ! output 4353 4353 z, z_at_w, dz8w, & ! output 4354 4354 fzm, fzp, & ! params … … 4383 4383 INTENT( OUT) :: u_phy, & 4384 4384 v_phy, & 4385 w_phy, & 4385 4386 pi_phy, & 4386 4387 p_phy, & … … 4400 4401 u, & 4401 4402 v, & 4403 w, & 4402 4404 alt, & 4403 4405 ph, & … … 4512 4514 do k = k_start, k_end 4513 4515 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) ) 4515 4519 enddo 4516 4520 enddo … … 4640 4644 IF ( (config_flags%bl_pbl_physics .gt. 0) & 4641 4645 .OR. (config_flags%modif_wrf) ) THEN 4642 4646 !****MARS 4643 4647 DO J=j_start,j_end 4644 4648 DO K=k_start,k_end -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_first_rk_step_part1.F
r17 r34 78 78 REAL ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: u_phy 79 79 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 80 81 REAL ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: dz8w 81 82 REAL ,DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(INOUT) :: p8w … … 147 148 CALL phy_prep ( config_flags, & 148 149 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, & 150 151 grid%ph_2, grid%phb, grid%t_2, grid%tsk, moist, num_moist, & 151 152 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, & 153 154 p8w, t_phy, t8w, grid%z, z_at_w, & 154 155 dz8w, grid%fnm, grid%fnp, & … … 594 595 ! ... (cf phy_prep in module_big_step_utilities_em) 595 596 & ,HT=grid%ht & 596 & ,U=u_phy ,V=v_phy 597 & ,U=u_phy ,V=v_phy, W=w_phy & 597 598 & ,TH=th_phy ,T=t_phy & 598 599 & ,P=p_phy ,EXNER=pi_phy ,RHO=rho & … … 621 622 & ,CST_TI=config_flags%init_TI & 622 623 & ,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) & 623 636 !------------------! 624 637 ! OUTPUT VARIABLES ! 625 638 !------------------! 626 #include " ../modif_mars/module_lmd_driver_output4.inc"639 #include "module_lmd_driver_output4.inc" 627 640 & ,SLPX=grid%slpx,SLPY=grid%slpy) 628 641 ENDIF -
trunk/mesoscale/LMD_LES_MARS/modif_mars/module_model_constants.F
r17 r34 1 1 !WRF:MODEL_LAYER:CONSTANTS 2 2 ! 3 !PLANET MARS 3 4 4 5 MODULE module_model_constants … … 18 19 19 20 #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 22 23 #else 23 24 REAL , PARAMETER :: r_d = 192. … … 25 26 #endif 26 27 27 REAL , PARAMETER :: r_v = 461.6 28 REAL , PARAMETER :: r_v = 461.6 ! gas constant for water vapor 28 29 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 30 31 REAL , PARAMETER :: cvv = cpv-r_v 31 32 REAL , PARAMETER :: cvpm = -cv/cp … … 40 41 41 42 REAL , PARAMETER :: p1000mb = 610. 42 REAL , PARAMETER :: t0 = 220. 43 REAL , PARAMETER :: t0 = 220. ! earth : 300 ... remplacer par 220 ? 43 44 REAL , PARAMETER :: p0 = 610. 44 45 REAL , PARAMETER :: cpovcv = cp/(cp-r_d) … … 46 47 REAL , PARAMETER :: rvovrd = r_v/r_d 47 48 48 REAL , PARAMETER :: reradius = 1./3397200. 49 REAL , PARAMETER :: reradius = 1./3397200. ! Rayon de mars (m) ~3397200 m 49 50 50 51 !------------------------------- … … 75 76 !------------------------------- 76 77 77 78 79 78 REAL , PARAMETER :: asselin = .025 80 79 ! REAL , PARAMETER :: asselin = .0 … … 92 91 REAL , PARAMETER :: rhowater = 1000. 93 92 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 96 95 REAL , PARAMETER :: DEGRAD = 3.1415926/180. 97 REAL , PARAMETER :: DPD = 360./669. 96 REAL , PARAMETER :: DPD = 360./669. ! longitude solaire d'un jour? 98 97 99 98 REAL , PARAMETER :: SVP1=0.6112 … … 103 102 REAL , PARAMETER :: EP_1=R_v/R_d-1. 104 103 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 108 111 109 112 REAL , PARAMETER :: prandtl = 1./3.0 -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
r28 r34 863 863 & ,CST_AL=config_flags%init_AL & 864 864 & ,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 & 865 868 ! additional diagnostics 866 869 & ,UAVE=grid%em_uave, USTD=grid%em_ustd & -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
r28 r34 38 38 CST_AL, & 39 39 CST_TI, & 40 isfflx, & 41 diff_opt, & 42 km_opt, & 40 43 UAVE, USTD, & 41 44 VAVE, VSTD, & … … 46 49 SLPX,SLPY) 47 50 ! NB: module_lmd_driver_output1.inc : output arguments generated from Registry 51 52 53 54 48 55 49 56 !================================================================== … … 92 99 ! Scalars 93 100 INTEGER, INTENT(IN ) :: JULDAY, itimestep, julyr,id,max_dom,MARS_MODE 101 INTEGER, INTENT(IN ) :: isfflx,diff_opt,km_opt 94 102 REAL, INTENT(IN ) :: GMT,dt,dx,dy,RADT,CUDT 95 103 REAL, INTENT(IN ) :: CST_AL, CST_TI … … 110 118 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 111 119 REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN ) :: & 112 MARS_TSOIL 120 MARS_TSOIL 113 121 #ifdef NEWPHYS 114 122 REAL, DIMENSION( ims:ime, NUM_SOIL_LAYERS, jms:jme ), INTENT(IN ) :: & … … 165 173 ! v--- can they be modified ? 166 174 REAL,DIMENSION(:),ALLOCATABLE :: wtsurf,wco2ice,wemis 167 REAL,DIMENSION(:,:),ALLOCATABLE :: wq2,wqsurf,wtsoil 175 REAL,DIMENSION(:,:),ALLOCATABLE :: wq2,wqsurf,wtsoil 168 176 #ifdef NEWPHYS 169 177 REAL,DIMENSION(:,:),ALLOCATABLE :: wisoil,wdsoil … … 220 228 !================================================================== 221 229 222 flag_LES = .false. ! "True" LES is not available in this version 230 IF (JULYR .ne. 9999) THEN 231 flag_LES = .false. ! "True" LES is not available in this version 232 PRINT *, '*** REAL-CASE SIMULATION ***' 233 ELSE 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 250 ENDIF 251 252 223 253 print *,'** Mars ** DOMAIN',id 224 254 … … 231 261 jte = j_end(num_tiles) 232 262 !! 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 ... 263 IF (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 ... 267 ENDIF 236 268 ips=its 237 269 ipe=ite 238 270 jps=jts 239 271 jpe=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 272 IF (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 277 ENDIF 244 278 kps=kts !! start at surface 245 kpe=kte-sponge_top 279 IF (flag_LES .eq. .false.) THEN 280 kpe=kte-sponge_top 281 ELSE 282 PRINT *, '*** IDEALIZED SIMULATION: LES *** kpe=kte' 283 kpe=kte !-sponge_top 284 ENDIF 246 285 247 286 !----------------------------! … … 267 306 268 307 308 PRINT *, ips, ipe, jps, jpe 309 PRINT *, ngrid 310 311 312 269 313 elaps = (float(itimestep)-1.)*dt ! elapsed seconds of simulation 270 314 !----------------------------------------------! … … 287 331 !! put here some general information you'd like to print just once 288 332 print *, 'TILES: ', i_start,i_end, j_start, j_end ! numbers for simple runs, arrays for parallel runs 289 print *, 'DOMAIN: ', id e, ids, jds, jde290 print *, 'MEMORY: ', im e, ims, jms, jme333 print *, 'DOMAIN: ', ids, ide, jds, jde 334 print *, 'MEMORY: ', ims, ime, jms, jme 291 335 print *, 'ADVECTED TRACERS: ', num_3d_s-1 292 336 print *, 'PHYSICS IS CALLED EACH...',wappel_phys … … 328 372 ! 329 373 PRINT *,'** Mars ** IDEALIZED SIMULATION' 374 PRINT *,'** Mars ** BEWARE: input_coord must be here' 330 375 open(unit=14,file='input_coord',form='formatted',status='old') 331 376 rewind(14) … … 352 397 ! PRINT *,'****************** CRASH *******************' 353 398 ! PRINT *,'Irrealistic temperature...', MAXLOC(t), MINLOC(t) 399 !PRINT *, t 354 400 ! PRINT *,'************************************************' 355 401 ! STOP … … 411 457 ! PRINT *,'OK OK OK OK' 412 458 !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 413 469 414 470 … … 536 592 !th_prof(:) = th(i,kps:kpe,j) ! pot. temperature half level (K) 537 593 538 539 594 !--------------------------------! 540 595 ! specific treatment for tracers ! … … 567 622 ! Mass-point latitude and longitude (radians) ! 568 623 !---------------------------------------------! 569 lat_val = XLAT(i,j)*DEGRAD 570 lon_val = XLONG(i,j)*DEGRAD 624 IF (JULYR .ne. 9999) THEN 625 lat_val = XLAT(i,j)*DEGRAD 626 lon_val = XLONG(i,j)*DEGRAD 627 ELSE 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 633 ENDIF 571 634 572 635 !-----------------------------------------! … … 574 637 ! NB: usually 0 in mesoscale applications ! 575 638 !-----------------------------------------! 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) 639 IF (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) 645 ELSE 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. 652 ENDIF 581 653 582 654 !---------------------------------! 583 655 ! Ground albedo & Thermal Inertia ! 584 656 !---------------------------------! 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 657 IF (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 670 ELSE 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 596 675 ENDIF 597 676 … … 612 691 ! Deep soil temperatures ! 613 692 !------------------------! 614 IF (MARS_TSOIL(i,1,j) .gt. 0.) THEN 615 tsoil_val(:)=MARS_TSOIL(i,:,j) 693 IF (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 616 699 ELSE 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 704 ENDIF 705 619 706 #ifdef NEWPHYS 620 707 isoil_val(:)=MARS_ISOIL(i,:,j) … … 625 712 ! Slope inclination ! 626 713 !-------------------! 627 theta_val=atan(sqrt( (1000.*SLPX(i,j))**2 + (1000.*SLPY(i,j))**2 )) 628 theta_val=theta_val/DEGRAD 714 IF (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 717 ELSE 718 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION slope inclination is 0' 719 theta_val=0. 720 ENDIF 629 721 630 722 !-------------------------------------------! 631 723 ! Slope orientation; 0 is north, 90 is east ! 632 724 !-------------------------------------------! 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.) 725 IF (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.) 733 ELSE 734 IF ( (i == ips) .AND. (j == jps) ) PRINT *,'** Mars ** IDEALIZED SIMULATION slope orientation is 0 (well, whatever)' 735 psi_val=0. 736 ENDIF 640 737 641 738 !-----------------! … … 643 740 !-----------------! 644 741 IF ( (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 742 PRINT *,'lat/lon ', lat_val/DEGRAD, lon_val/DEGRAD 743 PRINT *,'emiss ', emis_val 744 PRINT *,'albedo ', albedodat_val 745 PRINT *,'inertie ', inertiedat_val 746 PRINT *,'phi ',phisfi_val 747 PRINT *,'tsurf ',tsurf_val 748 PRINT *,'aire ',aire_val 749 PRINT *,'z_prof ',z_prof 750 PRINT *,'dz8w_prof',dz8w_prof 751 PRINT *,'p8w_prof ',p8w_prof 752 PRINT *,'p_prof ',p_prof 753 PRINT *,'t_prof ',t_prof 754 PRINT *,'t8w_prof ',t8w_prof 755 PRINT *,'u_prof ',u_prof 756 PRINT *,'v_prof ',v_prof 757 PRINT *,'tsoil ',tsoil_val 659 758 #ifdef NEWPHYS 660 661 759 PRINT *,'isoil ',isoil_val 760 PRINT *,'dsoil ',dsoil_val 662 761 #endif 663 762 ENDIF … … 719 818 pv(subs,:) = v_prof(:) 720 819 pw(subs,:) = 0 !! NB: not used in the physics, only diagnostic... 721 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 820 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 722 821 !! for IDEALIZED CASES ONLY 723 822 IF (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 725 828 726 829 !---------! … … 847 950 #include "module_lmd_driver_output3.inc" 848 951 ! ^-- generated from Registry 952 !TSK(i,j) = output_tab2d(subs,ind_TSURF) 849 953 ENDDO 850 954 ENDDO 851 955 DEALLOCATE(output_tab2d) 852 956 DEALLOCATE(output_tab3d) 853 854 957 855 958 !---------------------------------------------------------------------------------! … … 955 1058 DEALLOCATE(pdq) 956 1059 957 ! ---------!958 ! display !959 ! ---------!1060 !!---------! 1061 !! display ! 1062 !!---------! 960 1063 PRINT *, '** Mars ** Results from LMD physics' 961 1064 PRINT *, 'u non-zero tendencies' … … 995 1098 !c Local: 996 1099 double precision xref,zx0,zteta,zz 997 !c 1100 !c xref: mean anomaly, zteta: true anomaly, zx0: eccentric anomaly 998 1101 double precision year_day 999 1102 double precision peri_day,timeperi,e_elips … … 1030 1133 1031 1134 END MODULE module_lmd_driver 1135 -
trunk/mesoscale/NOTES.txt
r32 r34 1 -il faut run.def nouvelle physique 1 RESTE a ADAPTER le LES a la NOUVELLE PHYSIQUE 2 il y a normalement peu a faire 3 reste a faire egalement le -DNEWPHYS pour le LES 4 5 attention pb d'affichage des valeurs dans le fichier texte avec LES ??? 6 bien que les valeurs du fichier soient tout a fait raisonnables 7 ... n'est-ce pas un effet de bord cache ???? 8 9 10 apres 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 .... 2 16 3 17 ATTENTION NOUVELLE PHYSIQUE
Note: See TracChangeset
for help on using the changeset viewer.