Changeset 1650 for trunk/LMDZ.COMMON/libf/dyn3d_common
- Timestamp:
- Jan 25, 2017, 4:02:54 PM (8 years ago)
- Location:
- trunk/LMDZ.COMMON/libf/dyn3d_common
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d_common/comconst_mod.F90
r1572 r1650 12 12 REAL r ! Reduced Gas constant r=R/mu 13 13 ! with R=8.31.. J.K-1.mol-1, mu: mol mass of atmosphere (kg/mol) 14 REAL cpp ! Cp15 REAL kappa ! kappa= R/Cp14 REAL cpp ! Specific heat Cp (J.kg-1.K-1) 15 REAL kappa ! kappa=r/Cp 16 16 REAL cotot 17 17 REAL unsim ! = 1./iim … … 23 23 REAL dissip_fac_mid,dissip_fac_up,dissip_deltaz,dissip_hdelta 24 24 REAL dissip_pupstart 25 INTEGER iflag_top_bound,mode_top_bound 25 ! top_bound sponge: 26 INTEGER iflag_top_bound ! sponge type 26 27 INTEGER ngroup ! parameter to group points (along longitude) near poles 27 REAL tau_top_bound 28 INTEGER mode_top_bound ! sponge mode 29 REAL tau_top_bound ! inverse of sponge characteristic time scale (Hz) 28 30 REAL daylen ! length of solar day, in 'standard' day length 31 REAL year_day ! Number of standard days in a year 29 32 REAL molmass ! (g/mol) molar mass of the atmosphere 30 33 -
trunk/LMDZ.COMMON/libf/dyn3d_common/comvert_mod.F90
r1422 r1650 3 3 IMPLICIT NONE 4 4 5 include "dimensions.h" 6 include "paramet.h"5 PRIVATE 6 INCLUDE "dimensions.h" 7 7 8 REAL ap(llm+1),bp(llm+1),presnivs(llm),dpres(llm),pa,preff, & 9 nivsigs(llm),nivsig(llm+1),scaleheight 10 ! Mars Ce qui suit vient de gcm 11 REAL sig(llm+1),ds(llm),aps(llm),bps(llm),pseudoalt(llm) 8 PUBLIC :: ap,bp,presnivs,dpres,sig,ds,pa,preff,nivsigs,nivsig, & 9 aps,bps,scaleheight,pseudoalt,disvert_type, pressure_exner 10 11 REAL ap(llm+1) ! hybrid pressure contribution at interlayers 12 REAL bp (llm+1) ! hybrid sigma contribution at interlayer 13 REAL presnivs(llm) ! (reference) pressure at mid-layers 14 REAL dpres(llm) 15 REAL sig(llm+1) 16 REAL ds(llm) 17 REAL pa ! reference pressure (Pa) at which hybrid coordinates 18 ! become purely pressure (more or less) 19 REAL preff ! reference surface pressure (Pa) 20 REAL nivsigs(llm) 21 REAL nivsig(llm+1) 22 REAL aps(llm) ! hybrid pressure contribution at mid-layers 23 REAL bps(llm) ! hybrid sigma contribution at mid-layers 24 REAL scaleheight ! atmospheric (reference) scale height (km) 25 REAL pseudoalt(llm) ! pseudo-altitude of model levels (km), based on presnivs(), 26 ! preff and scaleheight 27 12 28 INTEGER disvert_type ! type of vertical discretization: 13 ! 1: Earth (default for planet_type==earth), 14 ! automatic generation 15 ! 2: Planets (default for planet_type!=earth), 16 ! using 'z2sig.def' (or 'esasig.def) file 29 ! 1: Earth (default for planet_type==earth), 30 ! automatic generation 31 ! 2: Planets (default for planet_type!=earth), 32 ! using 'z2sig.def' (or 'esasig.def) file 33 17 34 LOGICAL pressure_exner 18 35 ! compute pressure inside layers using Exner function, else use mean -
trunk/LMDZ.COMMON/libf/dyn3d_common/conf_planete.F90
r1422 r1650 10 10 USE ioipsl_getincom 11 11 #endif 12 USE comvert_mod, ONLY: preff,pa 13 USE comconst_mod, ONLY: daysec,daylen,kappa,cpp,omeg,rad,g,ihf,pi,molmass 12 USE comconst_mod, ONLY: pi, g, molmass, kappa, cpp, omeg, rad, & 13 year_day, daylen, daysec, ihf 14 USE comvert_mod, ONLY: preff, pa 14 15 IMPLICIT NONE 15 16 ! … … 17 18 ! Declarations : 18 19 ! -------------- 19 #include "dimensions.h" 20 20 21 ! 21 22 ! local: 22 23 ! ------ 23 24 real :: year_day_dyn25 24 26 25 ! --------------------------------------------- … … 59 58 CALL getin('daylen',daylen) 60 59 ! Number of days (standard) per year: 61 year_day _dyn= 365.2562 CALL getin('year_day',year_day _dyn)60 year_day = 365.25 61 CALL getin('year_day',year_day) 63 62 ! Omega 64 63 ! omeg=2.*pi/86400. 65 omeg=2.*pi/daysec*(1./daylen+1./year_day _dyn)64 omeg=2.*pi/daysec*(1./daylen+1./year_day) 66 65 CALL getin('omeg',omeg) 67 66 68 ! Intrinsic heat flux [default is none] 69 ! Aymeric -- for giant planets 70 ! [matters only if planet_type="giant"] 67 ! Intrinsic heat flux (default: none) (only used if planet_type="giant") 71 68 ihf = 0. 72 CALL getin('ihf',ihf) 73 74 69 call getin('ihf',ihf) 75 70 76 71 END SUBROUTINE conf_planete -
trunk/LMDZ.COMMON/libf/dyn3d_common/infotrac.F90
r1575 r1650 45 45 INTEGER :: niso_possibles 46 46 PARAMETER ( niso_possibles=5) ! 5 possible water isotopes 47 real, DIMENSION (niso_possibles),SAVE :: tnat,alpha_ideal47 REAL, DIMENSION (niso_possibles),SAVE :: tnat,alpha_ideal 48 48 LOGICAL, DIMENSION(niso_possibles),SAVE :: use_iso 49 49 INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE :: iqiso ! donne indice iq en fn de (ixt,phase) … … 55 55 INTEGER, ALLOCATABLE, DIMENSION(:,:), SAVE :: index_trac ! numéro ixt en fn izone, indnum entre 1 et niso 56 56 INTEGER,SAVE :: niso,ntraceurs_zone,ntraciso 57 58 #ifdef CPP_StratAer 59 !--CK/OB for stratospheric aerosols 60 INTEGER, SAVE :: nbtr_bin 61 INTEGER, SAVE :: nbtr_sulgas 62 INTEGER, SAVE :: id_OCS_strat 63 INTEGER, SAVE :: id_SO2_strat 64 INTEGER, SAVE :: id_H2SO4_strat 65 INTEGER, SAVE :: id_BIN01_strat 66 INTEGER, SAVE :: id_TEST_strat 67 #endif 57 68 58 69 CONTAINS … … 143 154 CALL abort_gcm('infotrac_init','You must compile with cpp key REPROBUS',1) 144 155 #endif 156 ELSE IF (type_trac == 'coag') THEN 157 WRITE(lunout,*) 'Tracers are treated for COAGULATION tests : type_trac=', type_trac 158 #ifndef CPP_StratAer 159 WRITE(lunout,*) 'To run this option you must add cpp key StratAer and compile with StratAer code' 160 CALL abort_gcm('infotrac_init','You must compile with cpp key StratAer',1) 161 #endif 145 162 ELSE IF (type_trac == 'lmdz') THEN 146 163 WRITE(lunout,*) 'Tracers are treated in LMDZ only : type_trac=', type_trac … … 166 183 !----------------------------------------------------------------------- 167 184 IF (planet_type=='earth') THEN 168 IF (type_trac == 'lmdz' .OR. type_trac == 'repr' ) THEN185 IF (type_trac == 'lmdz' .OR. type_trac == 'repr' .OR. type_trac == 'coag') THEN 169 186 OPEN(90,file='traceur.def',form='formatted',status='old', iostat=ierr) 170 187 IF(ierr.EQ.0) THEN … … 272 289 !--------------------------------------------------------------------- 273 290 IF (planet_type=='earth') THEN 274 IF (type_trac == 'lmdz' .OR. type_trac == 'repr' ) THEN291 IF (type_trac == 'lmdz' .OR. type_trac == 'repr' .OR. type_trac == 'coag') THEN 275 292 IF(ierr.EQ.0) THEN 276 293 ! Continue to read tracer.def … … 352 369 END DO 353 370 371 ! IF ( planet_type=='earth') THEN 354 372 !CR: nombre de traceurs de l eau 355 if(tnom_0(3) == 'H2Oi') then373 IF (tnom_0(3) == 'H2Oi') then 356 374 nqo=3 357 else375 ELSE 358 376 nqo=2 359 endif377 ENDIF 360 378 ! For Earth, water vapour & liquid tracers are not in the physics 361 379 nbtr=nqtrue-nqo 362 ENDIF ! (type_trac == 'lmdz' .OR. type_trac == 'repr') 380 ! ELSE 381 ! ! Other planets (for now); we have the same number of tracers 382 ! ! in the dynamics than in the physics 383 ! nbtr=nqtrue 384 ! ENDIF 385 386 #ifdef CPP_StratAer 387 IF (type_trac == 'coag') THEN 388 nbtr_bin=0 389 nbtr_sulgas=0 390 DO iq=1,nqtrue 391 IF (tnom_0(iq)(1:3)=='BIN') THEN !check if tracer name contains 'BIN' 392 nbtr_bin=nbtr_bin+1 393 ENDIF 394 IF (tnom_0(iq)(1:3)=='GAS') THEN !check if tracer name contains 'GAS' 395 nbtr_sulgas=nbtr_sulgas+1 396 ENDIF 397 ENDDO 398 print*,'nbtr_bin=',nbtr_bin 399 print*,'nbtr_sulgas=',nbtr_sulgas 400 DO iq=1,nqtrue 401 IF (tnom_0(iq)=='GASOCS') THEN 402 id_OCS_strat=iq-nqo 403 ENDIF 404 IF (tnom_0(iq)=='GASSO2') THEN 405 id_SO2_strat=iq-nqo 406 ENDIF 407 IF (tnom_0(iq)=='GASH2SO4') THEN 408 id_H2SO4_strat=iq-nqo 409 ENDIF 410 IF (tnom_0(iq)=='BIN01') THEN 411 id_BIN01_strat=iq-nqo 412 ENDIF 413 IF (tnom_0(iq)=='GASTEST') THEN 414 id_TEST_strat=iq-nqo 415 ENDIF 416 ENDDO 417 print*,'id_OCS_strat =',id_OCS_strat 418 print*,'id_SO2_strat =',id_SO2_strat 419 print*,'id_H2SO4_strat=',id_H2SO4_strat 420 print*,'id_BIN01_strat=',id_BIN01_strat 421 ENDIF 422 #endif 423 424 ENDIF ! (type_trac == 'lmdz' .OR. type_trac == 'repr' .OR. type_trac = 'coag') 363 425 !jyg< 364 426 !
Note: See TracChangeset
for help on using the changeset viewer.