Changeset 234
- Timestamp:
- Jul 19, 2011, 5:25:58 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 3 deleted
- 16 edited
- 1 copied
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/DOC/chantiers/commit_importants.log
r156 r234 944 944 changements pour pouvoir faire tourner le LES sans appel a la physique martienne 945 945 -- non teste mais fonctionne a priori egalement avec le MESOSCALE 946 947 ********************* 948 **** commit_v234 **** 949 ********************* 950 plus de meso_ files dans la physique martienne. physiq et inifis sont communs au GCM avec des precompiler flags. -
trunk/LMDZ.MARS/README
r228 r234 819 819 - Added a MESOSCALE flag to writediagfi so that mesoscale simulations 820 820 are not bothered with calls put in routines by GCM people 821 822 == 19/07/2011 == AS 823 - Finished converging meso_physiq.F and meso_inifis.F towards physiq.F and inifis.F 824 --> see previous point 15/07/2011 825 --> meso_ routines no longer exist (everything is in meso_inc and transparent to GCM users) 826 --> GCM routines include mesoscale parts within MESOSCALE precompiler commands 827 --> MESOSCALE parts are as hidden as possible not to mess up with GCM users/developers 828 - Cleaned inelegant or useless #ifdef [or] #ifndef MESOSCALE in physiq and inifis so that 829 a minimum amount of such precompiler commands is now reached [mainly related to I/O] 830 - Added the SF08 slope insolation model in the general physics parameterizations. 831 Added a callslope keyword in inifis.F and callkeys.h 832 --> This keyword is False by default / True if you use -DMESOSCALE 833 - Removed the obsolete call to Viking Lander 1 diagnostic 834 Replaced it with a diagnostic for opacity at the domain center [valid for GCM and mesoscale] -
trunk/LMDZ.MARS/libf/phymars/callkeys.h
r161 r234 12 12 & ,callg2d,linear,rayleigh,tracer,active,doubleq,submicron & 13 13 & ,lifting,callddevil,scavenging,sedimentation,activice,water & 14 & ,caps,photochem,calltherm,outptherm 14 & ,caps,photochem,calltherm,outptherm,callslope 15 15 16 16 COMMON/callkeys_i/iradia,iaervar,iddist,ilwd,ilwb,ilwn,ncouche & … … 24 24 & ,callnirco2,callnlte,callthermos,callconduct, & 25 25 & calleuv,callmolvis,callmoldiff,thermochem,thermoswater & 26 & ,calltherm,outptherm 26 & ,calltherm,outptherm,callslope 27 27 28 28 -
trunk/LMDZ.MARS/libf/phymars/inifis.F
r233 r234 1 SUBROUTINE meso_inifis(1 SUBROUTINE inifis( 2 2 $ ngrid,nlayer 3 #ifdef MESOSCALE4 $ ,nq,wdt,wday_ini,wdaysec,wappel_phys5 #else6 3 $ ,day_ini,pdaysec,ptimestep 7 #endif8 4 $ ,plat,plon,parea 9 5 $ ,prad,pg,pr,pcpp … … 28 24 ! stored in the q(:,:,:,:) array 29 25 ! E.M. (june 2009) use getin routine to load parameters 30 ! adapted to the WRF use - Aymeric Spiga - Jan 2009 - Jan 200726 ! adapted to the mesoscale use - Aymeric Spiga - 01/2007-07/2011 31 27 ! 32 28 ! … … 64 60 #include "yomaer.h" 65 61 #include "datafile.h" 62 #include "slope.h" 66 63 #ifdef MESOSCALE 67 #include "slope.h"68 64 #include "comsoil.h" !!MESOSCALE -- needed to fill volcapa 69 65 #include "meso_inc/meso_inc_inifisvar.F" 70 66 #endif 71 67 REAL prad,pg,pr,pcpp,pdaysec 72 #ifndef MESOSCALE 68 73 69 REAL ptimestep 74 70 INTEGER day_ini 75 #endif 71 76 72 INTEGER ngrid,nlayer 77 73 REAL plat(ngrid),plon(ngrid),parea(ngridmx) … … 95 91 r=pr 96 92 rcp=r/cpp 97 #ifndef MESOSCALE98 93 daysec=pdaysec 99 94 dtphys=ptimestep 100 # else95 #ifdef MESOSCALE 101 96 #include "meso_inc/meso_inc_inifisini.F" 102 97 #endif … … 210 205 call getin("callrad",callrad) 211 206 write(*,*) " callrad = ",callrad 207 208 write(*,*) "call slope insolation scheme ?", 209 & "(matters only if callrad=T)" 210 #ifdef MESOSCALE 211 callslope=.true. ! default value 212 #else 213 callslope=.false. ! default value (not supported yet) 214 #endif 215 call getin("callslope",callslope) 216 write(*,*) " callslope = ",callslope 212 217 213 218 write(*,*) "call NLTE radiative schemes ?", -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisini.F
r227 r234 8 8 c 9 9 ! in 'comcstfi.h' 10 daysec=wdaysec11 10 omeg=womeg 12 11 mugaz=wmugaz … … 89 88 c It must be set now, because it is used afterwards 90 89 c***************************************************** 91 dtphys=wdt*float( wappel_phys)90 dtphys=wdt*float(ptimestep) 92 91 print*,'Physical timestep (s) ',dtphys -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisinvar.F
r226 r234 1 $ ,nq,wdt 1 2 $ ,womeg,wmugaz 2 3 $ ,wyear_day,wperiheli,waphelie,wperi_day,wobliquit -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_inifisvar.F
r226 r234 1 INTEGER nq,wday_ini 1 INTEGER nq 2 REAL wdt 2 3 3 REAL womeg,wmugaz ,wdaysec4 REAL womeg,wmugaz 4 5 REAL wyear_day,wperiheli,waphelie,wperi_day,wobliquit 5 6 REAL wz0,wemin_turb,wlmixmin … … 12 13 REAL wtheta(ngrid),wpsi(ngrid) 13 14 REAL wvolcapa 14 REAL wdt15 INTEGER wappel_phys -
trunk/LMDZ.MARS/libf/phymars/meso_inc/meso_inc_var.F
r226 r234 10 10 REAL output_tab2d(ngridmx,n2d) 11 11 REAL output_tab3d(ngridmx,nlayer,n3d) 12 REAL sl_ls, sl_lct, sl_lat, sl_tau, sl_alb, sl_the, sl_psi13 REAL sl_fl0, sl_flu14 REAL sl_ra, sl_di015 REAL sky16 12 REAL hfx(ngridmx) !! pour LES avec isfflx!=0 17 13 REAL ust(ngridmx) !! pour LES avec isfflx!=0 -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r233 r234 1 SUBROUTINE meso_physiq(1 SUBROUTINE physiq( 2 2 $ ngrid,nlayer,nq 3 3 $ ,firstcall,lastcall … … 64 64 c Radiatively active tracers: J.-B. Madeleine (10/2008-06/2009) 65 65 c Nb: See callradite.F for more information. 66 c Mesoscale version: Aymeric Spiga (2007 - 2011) -- check MESOSCALE flags66 c Mesoscale lines: Aymeric Spiga (2007 - 2011) -- check MESOSCALE flags 67 67 c 68 68 c arguments: … … 135 135 #include "netcdf.inc" 136 136 137 #include "slope.h" 138 137 139 #ifdef MESOSCALE 138 #include "slope.h"139 140 #include "wrf_output_2d.h" 140 141 #include "wrf_output_3d.h" … … 191 192 REAL qsurf(ngridmx,nqmx) ! tracer on surface (e.g. kg.m-2) 192 193 REAL q2(ngridmx,nlayermx+1) ! Turbulent Kinetic Energy 193 INTEGER ig_vl1 ! Grid Point near VL1 (for diagnostic)194 194 195 195 c Variables used by the water ice microphysical scheme: … … 201 201 REAL, PARAMETER :: alb_surfice = 0.45 !!TESTS_JB 202 202 203 c Variables used by the slope model 204 REAL sl_ls, sl_lct, sl_lat 205 REAL sl_tau, sl_alb, sl_the, sl_psi 206 REAL sl_fl0, sl_flu 207 REAL sl_ra, sl_di0 208 REAL sky 209 203 210 SAVE day_ini, icount 204 211 SAVE aerosol, tsurf,tsoil 205 212 SAVE co2ice,albedo,emis, q2 206 213 SAVE capcal,fluxgrd,dtrad,fluxrad,fluxrad_sky,qsurf 207 SAVE ig_vl1208 214 209 215 REAL stephan … … 316 322 REAL lmax_th_out(ngridmx),zmax_th(ngridmx) 317 323 REAL wmax_th(ngridmx) 318 REAL ,SAVE :: hfmax_th(ngridmx)324 REAL, SAVE :: hfmax_th(ngridmx) 319 325 REAL pdu_th(ngridmx,nlayermx),pdv_th(ngridmx,nlayermx) 320 326 REAL pdt_th(ngridmx,nlayermx),pdq_th(ngridmx,nlayermx,nqmx) … … 390 396 #ifdef MESOSCALE 391 397 #include "meso_inc/meso_inc_caps.F" 392 #endif393 394 #ifndef MESOSCALE395 c Determining gridpoint near Viking Lander 1 (used for diagnostic only)396 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~397 398 if(ngrid.ne.1) then399 latvl1= 22.27400 lonvl1= -47.94401 ig_vl1= 1+ int( (1.5-(latvl1-90.)*jjm/180.) -2 )*iim +402 & int(1.5+(lonvl1+180)*iim/360.)403 write(*,*) 'Viking Lander 1 GCM point: lat,lon',404 & lati(ig_vl1)*180/pi, long(ig_vl1)*180/pi405 end if406 398 #endif 407 399 … … 515 507 IF( MOD(icount-1,iradia).EQ.0) THEN 516 508 517 #ifdef MESOSCALE518 write (*,*) 'call radiative transfer'519 #endif520 509 c Local Solar zenith angle 521 510 c ~~~~~~~~~~~~~~~~~~~~~~~~ … … 558 547 & tauref,tau,aerosol,ccn,rdust,rice,nuice) 559 548 560 #ifdef MESOSCALE 561 #include "meso_inc/meso_inc_slope.F" 562 #endif 549 c Outputs for basic check (middle of domain) 550 c ------------------------------------------ 551 print*, 'check lat lon', lati(igout)*180/pi, 552 . long(igout)*180/pi 553 print*, 'Ls =',zls*180./pi 554 print*, 'tauref(700 Pa) =',tauref(igout) 555 print*, 'tau(700 Pa) =',tau(igout,1)*700./pplev(igout,1) 556 557 c --------------------------------------------------------- 558 c Call slope parameterization for direct and scattered flux 559 c --------------------------------------------------------- 560 IF(callslope) THEN 561 print *, 'Slope scheme is on and computing...' 562 DO ig=1,ngrid 563 sl_the = theta_sl(ig) 564 IF (sl_the .ne. 0.) THEN 565 ztim1=fluxsurf_sw(ig,1)+fluxsurf_sw(ig,2) 566 DO l=1,2 567 sl_lct = ptime*24. + 180.*long(ig)/pi/15. 568 sl_ra = pi*(1.0-sl_lct/12.) 569 sl_lat = 180.*lati(ig)/pi 570 sl_tau = tau(ig,1) 571 sl_alb = albedo(ig,l) 572 sl_psi = psi_sl(ig) 573 sl_fl0 = fluxsurf_sw(ig,l) 574 sl_di0 = 0. 575 if (mu0(ig) .gt. 0.) then 576 sl_di0 = mu0(ig)*(exp(-sl_tau/mu0(ig))) 577 sl_di0 = sl_di0*1370./dist_sol/dist_sol 578 sl_di0 = sl_di0/ztim1 579 sl_di0 = fluxsurf_sw(ig,l)*sl_di0 580 endif 581 ! you never know (roundup concern...) 582 if (sl_fl0 .lt. sl_di0) sl_di0=sl_fl0 583 !!!!!!!!!!!!!!!!!!!!!!!!!! 584 CALL param_slope( mu0(ig), declin, sl_ra, sl_lat, 585 & sl_tau, sl_alb, sl_the, sl_psi, 586 & sl_di0, sl_fl0, sl_flu ) 587 !!!!!!!!!!!!!!!!!!!!!!!!!! 588 fluxsurf_sw(ig,l) = sl_flu 589 ENDDO 590 !!! compute correction on IR flux as well 591 sky= (1.+cos(pi*theta_sl(ig)/180.))/2. 592 fluxsurf_lw(ig)= fluxsurf_lw(ig)*sky 593 ENDIF 594 ENDDO 595 ENDIF 563 596 564 597 c CO2 near infrared absorption … … 606 639 $ stephan*zplanck(ig)*zplanck(ig) 607 640 fluxrad(ig)=fluxrad_sky(ig)-zplanck(ig) 608 #ifdef MESOSCALE 609 !!!! param slope 610 sky= (1.+cos(pi*theta_sl(ig)/180.))/2. 611 fluxrad(ig)=fluxrad(ig)+(1.-sky)*zplanck(ig) 612 #endif 641 IF(callslope) THEN 642 sky= (1.+cos(pi*theta_sl(ig)/180.))/2. 643 fluxrad(ig)=fluxrad(ig)+(1.-sky)*zplanck(ig) 644 ENDIF 613 645 ENDDO 614 646 … … 621 653 ENDIF ! of IF (callrad) 622 654 623 #ifndef MESOSCALE624 655 c----------------------------------------------------------------------- 625 656 c 3. Gravity wave and subgrid scale topography drag : … … 640 671 ENDDO 641 672 ENDIF 642 #endif 673 643 674 c----------------------------------------------------------------------- 644 675 c 4. Vertical diffusion (turbulent mixing): … … 1145 1176 ENDDO 1146 1177 ENDDO 1147 if(min(pt(igmin,lmin),zt(igmin,lmin)).lt.70.) then 1178 if(min(pt(igmin,lmin),zt(igmin,lmin)).lt.70.) then 1148 1179 write(*,*) 'PHYSIQ: stability WARNING :' 1149 1180 write(*,*) 'pt, zt Tmin = ', pt(igmin,lmin), zt(igmin,lmin), … … 1172 1203 1173 1204 IF (ngrid.NE.1) THEN 1174 print*,'Ls =',zls*180./pi1175 & ,' tauref(700 Pa,lat=0) =',tauref(ngrid/2)1176 #ifndef MESOSCALE1177 & ,' tau(Viking1) =',tau(ig_vl1,1)1178 #endif1179 1205 1180 1206 #ifndef MESOSCALE … … 1241 1267 endif ! of if (tracer) 1242 1268 1243 #ifndef MESOSCALE1244 1269 c ----------------------------------------------------------------- 1245 1270 c WSTATS: Saving statistics … … 1354 1379 CALL eofdump(ngrid, nlayer, zu, zv, zt, rho, ps) 1355 1380 ENDIF 1356 #endif 1381 1357 1382 1358 1383 #ifdef MESOSCALE 1384 !!! 1385 !!! OUTPUT FIELDS 1386 !!! 1359 1387 wtsurf(1:ngrid) = tsurf(1:ngrid) !! surface temperature 1360 1388 wco2ice(1:ngrid) = co2ice(1:ngrid) !! co2 ice … … 1579 1607 ELSE ! if(ngrid.eq.1) 1580 1608 1581 #ifndef MESOSCALE1582 1609 print*,'Ls =',zls*180./pi, 1583 1610 & ' tauref(700 Pa) =',tauref … … 1669 1696 & log(pplay(1,nlayer)/pplay(1,nlayer-1))* 1670 1697 & rnew(1,nlayer)*tmean/g 1671 #endif1672 1698 1673 1699 END IF ! if(ngrid.ne.1) 1674 1700 1675 1701 icount=icount+1 1676 #ifdef MESOSCALE1677 write(*,*) 'now, back to the dynamical core...'1678 #endif1679 1702 RETURN 1680 1703 END -
trunk/MESOSCALE/LMDZ.MARS.new/in_lmdz_mars_newphys/compile
r226 r234 34 34 nz=25 35 35 ################## 36 37 36 scatterers=2 37 scatterers=1 38 38 39 39 … … 62 62 echo compile gcm 63 63 echo check in $PWD/libo/log_compile_gcm 64 makegcm -t ${tracers} -p mars -d ${nx}x${ny}x${nz} gcm | tee libo/log_compile_gcm | grep 'warnings' >> libo/log_compile_gcm64 makegcm -t ${tracers} -p mars -d ${nx}x${ny}x${nz} -s ${scatterers} gcm | tee libo/log_compile_gcm | grep 'warnings' >> libo/log_compile_gcm 65 65 66 66 echo well, OK. -
trunk/MESOSCALE/LMDZ.MARS.new/in_lmdz_mars_newphys/physiq.F
r226 r234 7 7 $ ,pw 8 8 $ ,pdu,pdv,pdt,pdq,pdpsrf,tracerdyn 9 #ifdef MESOSCALE 10 #include "meso_inc/meso_inc_invar.F" 11 #endif 9 12 $ ) 10 13 … … 61 64 c Radiatively active tracers: J.-B. Madeleine (10/2008-06/2009) 62 65 c Nb: See callradite.F for more information. 66 c Mesoscale lines: Aymeric Spiga (2007 - 2011) -- check MESOSCALE flags 63 67 c 64 68 c arguments: … … 131 135 #include "netcdf.inc" 132 136 133 137 #include "slope.h" 138 139 #ifdef MESOSCALE 140 #include "wrf_output_2d.h" 141 #include "wrf_output_3d.h" 142 #include "advtrac.h" !!! this is necessary for tracers (in dyn3d) 143 #include "meso_inc/meso_inc_var.F" 144 #endif 134 145 135 146 c Arguments : … … 181 192 REAL qsurf(ngridmx,nqmx) ! tracer on surface (e.g. kg.m-2) 182 193 REAL q2(ngridmx,nlayermx+1) ! Turbulent Kinetic Energy 183 INTEGER ig_vl1 ! Grid Point near VL1 (for diagnostic)184 194 185 195 c Variables used by the water ice microphysical scheme: … … 191 201 REAL, PARAMETER :: alb_surfice = 0.45 !!TESTS_JB 192 202 203 c Variables used by the slope model 204 REAL sl_ls, sl_lct, sl_lat 205 REAL sl_tau, sl_alb, sl_the, sl_psi 206 REAL sl_fl0, sl_flu 207 REAL sl_ra, sl_di0 208 REAL sky 209 193 210 SAVE day_ini, icount 194 211 SAVE aerosol, tsurf,tsoil 195 212 SAVE co2ice,albedo,emis, q2 196 213 SAVE capcal,fluxgrd,dtrad,fluxrad,fluxrad_sky,qsurf 197 SAVE ig_vl1198 214 199 215 REAL stephan … … 306 322 REAL lmax_th_out(ngridmx),zmax_th(ngridmx) 307 323 REAL wmax_th(ngridmx) 308 REAL ,SAVE :: hfmax_th(ngridmx)324 REAL, SAVE :: hfmax_th(ngridmx) 309 325 REAL pdu_th(ngridmx,nlayermx),pdv_th(ngridmx,nlayermx) 310 326 REAL pdt_th(ngridmx,nlayermx),pdq_th(ngridmx,nlayermx,nqmx) … … 330 346 c read startfi 331 347 c ~~~~~~~~~~~~ 332 348 #ifndef MESOSCALE 333 349 ! Read netcdf initial physical parameters. 334 350 CALL phyetat0 ("startfi.nc",0,0, … … 336 352 & day_ini,time_phys, 337 353 & tsurf,tsoil,emis,q2,qsurf,co2ice) 354 #else 355 #include "meso_inc/meso_inc_ini.F" 356 #endif 338 357 339 358 if (pday.ne.day_ini) then … … 375 394 ENDIF ! end tracer 376 395 377 c Determining gridpoint near Viking Lander 1 (used for diagnostic only) 378 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 379 380 if(ngrid.ne.1) then 381 latvl1= 22.27 382 lonvl1= -47.94 383 ig_vl1= 1+ int( (1.5-(latvl1-90.)*jjm/180.) -2 )*iim + 384 & int(1.5+(lonvl1+180)*iim/360.) 385 write(*,*) 'Viking Lander 1 GCM point: lat,lon', 386 & lati(ig_vl1)*180/pi, long(ig_vl1)*180/pi 387 end if 388 396 #ifdef MESOSCALE 397 #include "meso_inc/meso_inc_caps.F" 398 #endif 399 400 #ifndef MESOSCALE 389 401 c Initialize thermospheric parameters 390 402 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 403 392 404 if (callthermos) call param_read 393 405 #endif 394 406 c Initialize R and Cp as constant 395 407 … … 478 490 ENDDO 479 491 492 #ifndef MESOSCALE 480 493 c----------------------------------------------------------------------- 481 494 c 1.2.5 Compute mean mass, cp, and R … … 485 498 call concentrations(pplay,pt,pdt,pq,pdq,ptimestep) 486 499 endif 500 #endif 487 501 c----------------------------------------------------------------------- 488 502 c 2. Compute radiative tendencies : … … 532 546 $ zdtlw,zdtsw,fluxsurf_lw,fluxsurf_sw,fluxtop_lw,fluxtop_sw, 533 547 & tauref,tau,aerosol,ccn,rdust,rice,nuice) 548 549 c Outputs for basic check (middle of domain) 550 c ------------------------------------------ 551 print*, 'check lat lon', lati(igout)*180/pi, 552 . long(igout)*180/pi 553 print*, 'Ls =',zls*180./pi 554 print*, 'tauref(700 Pa) =',tauref(igout) 555 print*, 'tau(700 Pa) =',tau(igout,1)*700./pplev(igout,1) 556 557 c --------------------------------------------------------- 558 c Call slope parameterization for direct and scattered flux 559 c --------------------------------------------------------- 560 IF(callslope) THEN 561 print *, 'Slope scheme is on and computing...' 562 DO ig=1,ngrid 563 sl_the = theta_sl(ig) 564 IF (sl_the .ne. 0.) THEN 565 ztim1=fluxsurf_sw(ig,1)+fluxsurf_sw(ig,2) 566 DO l=1,2 567 sl_lct = ptime*24. + 180.*long(ig)/pi/15. 568 sl_ra = pi*(1.0-sl_lct/12.) 569 sl_lat = 180.*lati(ig)/pi 570 sl_tau = tau(ig,1) 571 sl_alb = albedo(ig,l) 572 sl_psi = psi_sl(ig) 573 sl_fl0 = fluxsurf_sw(ig,l) 574 sl_di0 = 0. 575 if (mu0(ig) .gt. 0.) then 576 sl_di0 = mu0(ig)*(exp(-sl_tau/mu0(ig))) 577 sl_di0 = sl_di0*1370./dist_sol/dist_sol 578 sl_di0 = sl_di0/ztim1 579 sl_di0 = fluxsurf_sw(ig,l)*sl_di0 580 endif 581 ! you never know (roundup concern...) 582 if (sl_fl0 .lt. sl_di0) sl_di0=sl_fl0 583 !!!!!!!!!!!!!!!!!!!!!!!!!! 584 CALL param_slope( mu0(ig), declin, sl_ra, sl_lat, 585 & sl_tau, sl_alb, sl_the, sl_psi, 586 & sl_di0, sl_fl0, sl_flu ) 587 !!!!!!!!!!!!!!!!!!!!!!!!!! 588 fluxsurf_sw(ig,l) = sl_flu 589 ENDDO 590 !!! compute correction on IR flux as well 591 sky= (1.+cos(pi*theta_sl(ig)/180.))/2. 592 fluxsurf_lw(ig)= fluxsurf_lw(ig)*sky 593 ENDIF 594 ENDDO 595 ENDIF 534 596 535 597 c CO2 near infrared absorption … … 577 639 $ stephan*zplanck(ig)*zplanck(ig) 578 640 fluxrad(ig)=fluxrad_sky(ig)-zplanck(ig) 641 IF(callslope) THEN 642 sky= (1.+cos(pi*theta_sl(ig)/180.))/2. 643 fluxrad(ig)=fluxrad(ig)+(1.-sky)*zplanck(ig) 644 ENDIF 579 645 ENDDO 580 646 … … 633 699 & zdqdif,zdqsdif) 634 700 701 #ifdef MESOSCALE 702 #include "meso_inc/meso_inc_les.F" 703 #endif 635 704 DO l=1,nlayer 636 705 DO ig=1,ngrid … … 668 737 s (fluxrad(ig)+fluxgrd(ig))/capcal(ig) 669 738 ENDDO 739 #ifdef MESOSCALE 740 IF (flag_LES) THEN 741 write(*,*) 'LES mode !' 742 write(*,*) 'Please set calldifv to T in callphys.def' 743 STOP 744 ENDIF 745 #endif 670 746 ENDIF ! of IF (calldifv) 671 747 … … 840 916 c ------------------ 841 917 918 #ifndef MESOSCALE 842 919 c -------------- 843 920 c photochemistry : … … 884 961 885 962 END IF ! of IF (photochem.or.thermochem) 963 #endif 886 964 887 965 c 7c. Aerosol particles … … 955 1033 endif ! of if (tracer) 956 1034 957 1035 #ifndef MESOSCALE 958 1036 c----------------------------------------------------------------------- 959 1037 c 8. THERMOSPHERE CALCULATION … … 980 1058 981 1059 endif ! of if (callthermos) 1060 #endif 982 1061 983 1062 c----------------------------------------------------------------------- … … 998 1077 999 1078 IF (tracer.AND.water.AND.(ngridmx.NE.1)) THEN 1079 #ifndef MESOSCALE 1000 1080 if (caps.and.(obliquit.lt.27.)) then 1001 1081 ! NB: Updated surface pressure, at grid point 'ngrid', is … … 1004 1084 & (pplev(ngrid,1)+pdpsrf(ngrid)*ptimestep))) 1005 1085 endif 1086 #endif 1006 1087 c ------------------------------------------------------------- 1007 1088 c Change of surface albedo (set to 0.4) in case of ground frost … … 1095 1176 ENDDO 1096 1177 ENDDO 1097 if(min(pt(igmin,lmin),zt(igmin,lmin)).lt.70.) then 1178 if(min(pt(igmin,lmin),zt(igmin,lmin)).lt.70.) then 1098 1179 write(*,*) 'PHYSIQ: stability WARNING :' 1099 1180 write(*,*) 'pt, zt Tmin = ', pt(igmin,lmin), zt(igmin,lmin), … … 1122 1203 1123 1204 IF (ngrid.NE.1) THEN 1124 print*,'Ls =',zls*180./pi 1125 & ,' tauref(700 Pa,lat=0) =',tauref(ngrid/2) 1126 & ,' tau(Viking1) =',tau(ig_vl1,1) 1127 1128 1205 1206 #ifndef MESOSCALE 1129 1207 c ------------------------------------------------------------------- 1130 1208 c Writing NetCDF file "RESTARTFI" at the end of the run … … 1145 1223 . zgam,zthe) 1146 1224 ENDIF 1225 #endif 1147 1226 1148 1227 c ------------------------------------------------------------------- … … 1300 1379 CALL eofdump(ngrid, nlayer, zu, zv, zt, rho, ps) 1301 1380 ENDIF 1381 1382 1383 #ifdef MESOSCALE 1384 !!! 1385 !!! OUTPUT FIELDS 1386 !!! 1387 wtsurf(1:ngrid) = tsurf(1:ngrid) !! surface temperature 1388 wco2ice(1:ngrid) = co2ice(1:ngrid) !! co2 ice 1389 mtot(1:ngrid) = mtot(1:ngrid) * 1.e6 / rho_ice 1390 IF (igcm_h2o_ice .ne. 0) THEN 1391 qsurfice(1:ngrid) = qsurf(1:ngrid,igcm_h2o_ice) 1392 vmr=1.e6 * zq(1:ngrid,1:nlayer,igcm_h2o_ice) 1393 . * mugaz / mmol(igcm_h2o_ice) 1394 ENDIF 1395 c AUTOMATICALLY GENERATED FROM REGISTRY 1396 #include "fill_save.inc" 1397 #else 1302 1398 1303 1399 c ========================================================== … … 1526 1622 c END OF WRITEDIAGFI 1527 1623 c ========================================================== 1624 #endif 1528 1625 1529 1626 ELSE ! if(ngrid.eq.1) -
trunk/MESOSCALE/LMD_MM_MARS/SIMU/runmeso
r228 r234 29 29 #scenario="storm" 30 30 31 if [[ "${ LMDMOD}" = "" ]]32 then 33 echo "Please initialize the variable LMDMODin your environnement (or modify scripts)"31 if [[ "${MESO}" = "" ]] 32 then 33 echo "Please initialize the variable MESO in your environnement (or modify scripts)" 34 34 exit 35 35 fi … … 37 37 # A FEW DEFINITIONS YOU CAN MODIFY # 38 38 #################################### 39 main_folder=$ LMDMOD39 main_folder=$MESO 40 40 meso_folder=${main_folder}'/LMD_MM_MARS' 41 41 calendar=${main_folder}'/LMD_MM_MARS/SIMU/calendar' 42 42 simu_folder=$PWD 43 44 43 45 44 ################ -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis1.inc
r226 r234 5 5 6 6 7 CALL meso_inifis(ngridmx,nlayer,nqmx,dt,&7 CALL inifis(ngridmx,nlayer, & 8 8 wday_ini,wdaysec, & 9 9 wappel_phys, & 10 10 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 11 nqmx,dt, & 11 12 womeg,wmugaz, & 12 13 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis2.inc
r226 r234 8 8 9 9 CASE(1) 10 CALL meso_inifis(ngridmx,nlayer,nqmx,dt, &10 CALL inifis(ngridmx,nlayer, & 11 11 wday_ini,wdaysec, & 12 12 wappel_phys, & 13 13 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 14 nqmx,dt, & 14 15 womeg,wmugaz, & 15 16 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & … … 27 28 28 29 CASE(2) 29 CALL d2_ meso_inifis(ngridmx,nlayer,nqmx,dt, &30 CALL d2_inifis(ngridmx,nlayer, & 30 31 wday_ini,wdaysec, & 31 32 wappel_phys, & 32 33 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 34 nqmx,dt, & 33 35 womeg,wmugaz, & 34 36 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_inifis3.inc
r226 r234 8 8 9 9 CASE(1) 10 CALL meso_inifis(ngridmx,nlayer,nqmx,dt, &10 CALL inifis(ngridmx,nlayer, & 11 11 wday_ini,wdaysec, & 12 12 wappel_phys, & 13 13 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 14 nqmx,dt, & 14 15 womeg,wmugaz, & 15 16 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & … … 26 27 27 28 CASE(2) 28 CALL d2_ meso_inifis(ngridmx,nlayer,nqmx,dt, &29 CALL d2_inifis(ngridmx,nlayer, & 29 30 wday_ini,wdaysec, & 30 31 wappel_phys, & 31 32 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 33 nqmx,dt, & 32 34 womeg,wmugaz, & 33 35 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & … … 44 46 45 47 CASE(3) 46 CALL d3_ meso_inifis(ngridmx,nlayer,nqmx,dt, &48 CALL d3_inifis(ngridmx,nlayer, & 47 49 wday_ini,wdaysec, & 48 50 wappel_phys, & 49 51 lat_vec,lon_vec,aire_vec,1/reradius,g,r_d,cp, & 52 nqmx,dt, & 50 53 womeg,wmugaz, & 51 54 wyear_day,wperiheli,waphelie,wperi_day,wobliquit, & -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq1.inc
r226 r234 5 5 6 6 7 CALL meso_physiq (ngrid,nlayer,nq, &7 CALL physiq (ngrid,nlayer,nq, & 8 8 firstcall,lastcall,pday,ptime,ptimestep, & 9 9 pplev,pplay,pphi,pu, pv, pt, pq, pw, & -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq2.inc
r226 r234 8 8 9 9 CASE(1) 10 CALL meso_physiq (ngrid,nlayer,nq, &10 CALL physiq (ngrid,nlayer,nq, & 11 11 firstcall,lastcall,pday,ptime,ptimestep, & 12 12 pplev,pplay,pphi,pu, pv, pt, pq, pw, & … … 20 20 21 21 CASE(2) 22 CALL d2_ meso_physiq (ngrid,nlayer,nq, &22 CALL d2_physiq (ngrid,nlayer,nq, & 23 23 firstcall,lastcall,pday,ptime,ptimestep, & 24 24 pplev,pplay,pphi,pu, pv, pt, pq, pw, & -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/call_meso_physiq3.inc
r226 r234 8 8 9 9 CASE(1) 10 CALL meso_physiq (ngrid,nlayer,nq, &10 CALL physiq (ngrid,nlayer,nq, & 11 11 firstcall,lastcall,pday,ptime,ptimestep, & 12 12 pplev,pplay,pphi,pu, pv, pt, pq, pw, & … … 20 20 21 21 CASE(2) 22 CALL d2_ meso_physiq (ngrid,nlayer,nq, &22 CALL d2_physiq (ngrid,nlayer,nq, & 23 23 firstcall,lastcall,pday,ptime,ptimestep, & 24 24 pplev,pplay,pphi,pu, pv, pt, pq, pw, & … … 32 32 33 33 CASE(3) 34 CALL meso_physiq (ngrid,nlayer,nq, &34 CALL d3_physiq (ngrid,nlayer,nq, & 35 35 firstcall,lastcall,pday,ptime,ptimestep, & 36 36 pplev,pplay,pphi,pu, pv, pt, pq, pw, &
Note: See TracChangeset
for help on using the changeset viewer.