Changeset 2786 for LMDZ5/trunk
- Timestamp:
- Jan 30, 2017, 11:24:47 AM (8 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 1 deleted
- 5 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3d_common/disvert.F90
r2603 r2786 10 10 use new_unit_m, only: new_unit 11 11 use assert_m, only: assert 12 USE comvert_mod, ONLY: ap, bp, nivsigs, nivsig, dpres, presnivs, &13 p a, preff, scaleheight12 USE comvert_mod, ONLY: ap, bp, aps, bps, nivsigs, nivsig, dpres, presnivs, & 13 pseudoalt, pa, preff, scaleheight 14 14 USE logic_mod, ONLY: ok_strato 15 15 … … 346 346 DO l = 1, llm 347 347 dpres(l) = bp(l) - bp(l+1) 348 aps(l) = 0.5 *( ap(l) +ap(l+1)) 349 bps(l) = 0.5 *( bp(l) +bp(l+1)) 348 350 presnivs(l) = 0.5 *( ap(l)+bp(l)*preff + ap(l+1)+bp(l+1)*preff ) 351 pseudoalt(l) = log(preff/presnivs(l))*scaleheight 349 352 write(lunout, *)'PRESNIVS(', l, ')=', presnivs(l), ' Z ~ ', & 350 log(preff/presnivs(l))*scaleheight&353 pseudoalt(l) & 351 354 , ' DZ ~ ', scaleheight*log((ap(l)+bp(l)*preff)/ & 352 355 max(ap(l+1)+bp(l+1)*preff, 1.e-10)) -
LMDZ5/trunk/libf/dynphy_lonlat/inigeomphy_mod.F90
r2588 r2786 24 24 USE mod_interface_dyn_phys, ONLY : init_interface_dyn_phys 25 25 USE nrtype, ONLY: pi 26 USE comvert_mod, ONLY: preff, ap, bp, aps, bps, presnivs, & 27 scaleheight, pseudoalt 28 USE vertical_layers_mod, ONLY: init_vertical_layers 26 29 IMPLICIT NONE 27 30 … … 216 219 airefi,cufi,cvfi) 217 220 221 ! copy over preff , ap(), bp(), etc 222 CALL init_vertical_layers(nlayer,preff,scaleheight, & 223 ap,bp,aps,bps,presnivs,pseudoalt) 224 218 225 !$OMP END PARALLEL 219 226 -
LMDZ5/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90
r2656 r2786 12 12 prad,pg,pr,pcpp,iflag_phys) 13 13 USE dimphy, ONLY: init_dimphy 14 USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt15 14 USE inigeomphy_mod, ONLY: inigeomphy 16 15 USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat,nbp_lev,klon_glo ! number of atmospheric columns (on full grid) … … 110 109 !$OMP COPYIN(annee_ref, day_ini, day_ref, start_time) 111 110 112 ! copy over preff , ap(), bp(), etc113 CALL init_vertical_layers(nlayer,preff,scaleheight, &114 ap,bp,presnivs,pseudoalt)115 116 111 ! Initialize physical constants in physics: 117 112 CALL inifis(punjours,prad,pg,pr,pcpp) -
LMDZ5/trunk/libf/dynphy_lonlat/phymar/iniphysiq_mod.F90
r2600 r2786 12 12 prad,pg,pr,pcpp,iflag_phys) 13 13 USE dimphy, ONLY: init_dimphy 14 USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt15 14 USE inigeomphy_mod, ONLY: inigeomphy 16 15 USE vertical_layers_mod, ONLY : init_vertical_layers … … 71 70 !$OMP PARALLEL 72 71 73 ! copy over preff , ap(), bp(), etc74 CALL init_vertical_layers(nlayer,preff,scaleheight, &75 ap,bp,presnivs,pseudoalt)76 77 72 ! Initialize tracer names, numbers, etc. for physics 78 73 CALL init_infotrac_phy(nqtot) -
LMDZ5/trunk/libf/phy_common/vertical_layers_mod.F90
r2784 r2786 9 9 REAL,SAVE,ALLOCATABLE :: bp(:) ! hybrid (sigma contribution) coordinate 10 10 ! at layer interfaces (Pa) 11 REAL,SAVE,ALLOCATABLE :: aps(:) ! hybrid (pressure contribution) coordinate 12 ! at mid-layer (Pa) 13 REAL,SAVE,ALLOCATABLE :: bps(:) ! hybrid (sigma contribution) coordinate 14 ! at mid-layer 11 15 REAL,SAVE,ALLOCATABLE :: presnivs(:) ! reference pressure at mid-layer (Pa), 12 16 ! based on preff, ap and bp … … 14 18 ! based on preff and scaleheight 15 19 16 !$OMP THREADPRIVATE(preff,scaleheight,ap,bp, presnivs,pseudoalt)20 !$OMP THREADPRIVATE(preff,scaleheight,ap,bp,aps,bps,presnivs,pseudoalt) 17 21 18 22 … … 20 24 21 25 SUBROUTINE init_vertical_layers(nlayer,preff_,scaleheight_,ap_,bp_,& 22 presnivs_, pseudoalt_)26 aps_,bps_,presnivs_, pseudoalt_) 23 27 IMPLICIT NONE 24 28 INTEGER,INTENT(IN) :: nlayer ! number of atmospheric layers … … 27 31 REAL,INTENT(IN) :: ap_(nlayer+1) ! hybrid coordinate at interfaces 28 32 REAL,INTENT(IN) :: bp_(nlayer+1) ! hybrid coordinate at interfaces 33 REAL,INTENT(IN) :: aps_(nlayer) ! hybrid coordinate at mid-layer 34 REAL,INTENT(IN) :: bps_(nlayer) ! hybrid coordinate at mid-layer 29 35 REAL,INTENT(IN) :: presnivs_(nlayer) ! Appproximative pressure of atm. layers (Pa) 30 36 REAL,INTENT(IN) :: pseudoalt_(nlayer) ! pseudo-altitude of atm. layers (km) … … 32 38 ALLOCATE(ap(nlayer+1)) 33 39 ALLOCATE(bp(nlayer+1)) 40 ALLOCATE(aps(nlayer)) 41 ALLOCATE(bps(nlayer)) 34 42 ALLOCATE(presnivs(nlayer)) 35 43 ALLOCATE(pseudoalt(nlayer)) … … 39 47 ap(:) = ap_(:) 40 48 bp(:) = bp_(:) 49 aps(:) = aps_(:) 50 bps(:) = bps_(:) 41 51 presnivs(:) = presnivs_(:) 42 52 pseudoalt(:) = pseudoalt_(:) -
LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90
r2716 r2786 40 40 USE physiq_mod, ONLY: physiq 41 41 USE comvert_mod, ONLY: presnivs, ap, bp, dpres,nivsig, nivsigs, pa, & 42 preff 42 preff, aps, bps, pseudoalt, scaleheight 43 USE vertical_layers_mod, ONLY: init_vertical_layers 43 44 USE temps_mod, ONLY: annee_ref, calend, day_end, day_ini, day_ref, & 44 45 itau_dyn, itau_phy, start_time … … 634 635 call disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig) 635 636 print *,'On utilise disvert0' 637 aps(1:llm)=0.5*(ap(1:llm)+ap(2:llm+1)) 638 bps(1:llm)=0.5*(bp(1:llm)+bp(2:llm+1)) 639 scaleheight=8. 640 pseudoalt(1:llm)=-scaleheight*log(presnivs(1:llm)/preff) 636 641 ELSE 637 642 call disvert() … … 641 646 ENDIF 642 647 ! initialize ap,bp, etc. in vertical_layers_mod 648 CALL init_vertical_layers(llm,preff,scaleheight, & 649 ap,bp,aps,bps,presnivs,pseudoalt) 650 643 651 sig_s=presnivs/preff 644 652 plev =ap+bp*psurf
Note: See TracChangeset
for help on using the changeset viewer.