Changeset 979 for trunk/LMDZ.COMMON/libf/dyn3d
- Timestamp:
- Jun 5, 2013, 2:41:09 PM (12 years ago)
- Location:
- trunk/LMDZ.COMMON/libf/dyn3d
- Files:
-
- 1 added
- 3 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d/comconst.h
r887 r979 29 29 REAL g ! (m/s2) gravity 30 30 REAL omeg ! (rad/s) rotation rate of the planet 31 ! Dissipation factors, for Earth model: 32 REAL dissip_factz,dissip_zref !dissip_deltaz 33 ! Dissipation factors, for other planets: 31 34 REAL dissip_fac_mid,dissip_fac_up,dissip_deltaz,dissip_hdelta 32 35 REAL dissip_pupstart -
trunk/LMDZ.COMMON/libf/dyn3d/comdissnew.h
r1 r979 12 12 13 13 COMMON/comdissnew/ lstardis,nitergdiv,nitergrot,niterh,tetagdiv, & 14 & tetagrot,tetatemp,coefdis 14 & tetagrot,tetatemp,coefdis, vert_prof_dissip 15 15 16 16 LOGICAL lstardis 17 17 INTEGER nitergdiv, nitergrot, niterh 18 19 ! For the Earth model: 20 integer vert_prof_dissip ! vertical profile of horizontal dissipation 21 ! Allowed values: 22 ! 0: rational fraction, function of pressure 23 ! 1: tanh of altitude 24 18 25 REAL tetagdiv, tetagrot, tetatemp, coefdis 19 26 -
trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F
r617 r979 14 14 #endif 15 15 USE infotrac, ONLY : type_trac 16 use assert_m, only: assert 17 16 18 IMPLICIT NONE 17 19 c----------------------------------------------------------------------- … … 88 90 CALL getin('lunout', lunout) 89 91 IF (lunout /= 5 .and. lunout /= 6) THEN 90 OPEN(lunout,FILE='lmdz.out') 92 OPEN(UNIT=lunout,FILE='lmdz.out',ACTION='write', 93 & STATUS='unknown',FORM='formatted') 91 94 ENDIF 92 95 … … 311 314 CALL getin('tetatemp',tetatemp ) 312 315 316 ! For Earth model only: 317 ! Parametres controlant la variation sur la verticale des constantes de 318 ! dissipation. 319 ! Pour le moment actifs uniquement dans la version a 39 niveaux 320 ! avec ok_strato=y 321 322 dissip_factz=4. 323 dissip_deltaz=10. 324 dissip_zref=30. 325 CALL getin('dissip_factz',dissip_factz ) 326 CALL getin('dissip_deltaz',dissip_deltaz ) 327 CALL getin('dissip_zref',dissip_zref ) 328 329 ! For other planets: 313 330 ! Parametres controlant la variation sur la verticale des constantes de 314 331 ! dissipation. … … 474 491 write(lunout,*)'STOP !!!' 475 492 write(lunout,*)'use_filtre_fft n est pas implemente dans dyn3d' 476 STOP 493 STOP 1 477 494 ENDIF 478 495 … … 484 501 ok_strato=.TRUE. 485 502 CALL getin('ok_strato',ok_strato) 503 504 ! NB: vert_prof_dissip is Earth-specific; should not impact other models 505 if (planet_type=="earth") then 506 vert_prof_dissip = merge(1, 0, ok_strato .and. llm==39) 507 CALL getin('vert_prof_dissip', vert_prof_dissip) 508 call assert(vert_prof_dissip == 0 .or. vert_prof_dissip == 1, 509 $ "bad value for vert_prof_dissip") 510 else 511 vert_prof_dissip=0 512 endif 486 513 487 514 !Config Key = ok_gradsfile … … 834 861 write(lunout,*)' day_step = ', day_step 835 862 write(lunout,*)' iperiod = ', iperiod 863 write(lunout,*)' nsplit_phys = ', nsplit_phys 836 864 write(lunout,*)' iconser = ', iconser 837 865 write(lunout,*)' iecri = ', iecri -
trunk/LMDZ.COMMON/libf/dyn3d/gcm.F
r965 r979 428 428 429 429 CALL inidissip( lstardis, nitergdiv, nitergrot, niterh , 430 * tetagdiv, tetagrot , tetatemp 430 * tetagdiv, tetagrot , tetatemp, vert_prof_dissip) 431 431 432 432 c----------------------------------------------------------------------- -
trunk/LMDZ.COMMON/libf/dyn3d/guide_mod.F90
r776 r979 12 12 USE Write_Field 13 13 use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close 14 use pres2lev_mod 14 15 15 16 IMPLICIT NONE -
trunk/LMDZ.COMMON/libf/dyn3d/inidissip.F90
r776 r979 3 3 ! 4 4 SUBROUTINE inidissip ( lstardis,nitergdiv,nitergrot,niterh , & 5 tetagdiv,tetagrot,tetatemp 5 tetagdiv,tetagrot,tetatemp, vert_prof_dissip) 6 6 !======================================================================= 7 7 ! initialisation de la dissipation horizontale … … 11 11 ! ------------- 12 12 13 USE control_mod, only : dissip_period,iperiod 13 USE control_mod, only : dissip_period,iperiod,planet_type 14 14 15 15 IMPLICIT NONE … … 26 26 REAL,INTENT(in) :: tetagdiv,tetagrot,tetatemp 27 27 28 integer, INTENT(in):: vert_prof_dissip ! for the Earth model !! 29 ! Vertical profile of horizontal dissipation 30 ! Allowed values: 31 ! 0: rational fraction, function of pressure 32 ! 1: tanh of altitude 33 28 34 ! Local variables: 29 35 REAL fact,zvert(llm),zz … … 35 41 INTEGER l,ij,idum,ii 36 42 REAL tetamin 43 REAL pseudoz 37 44 REAL Pup 38 45 character (len=80) :: abort_message … … 166 173 ! variation verticale du coefficient de dissipation: 167 174 ! -------------------------------------------------- 168 175 176 if (planet_type.eq."earth") then 177 178 if (vert_prof_dissip == 1) then 179 do l=1,llm 180 pseudoz=8.*log(preff/presnivs(l)) 181 zvert(l)=1+ & 182 (tanh((pseudoz-dissip_zref)/dissip_deltaz)+1.)/2. & 183 *(dissip_factz-1.) 184 enddo 185 else 186 DO l=1,llm 187 zvert(l)=1. 188 ENDDO 189 fact=2. 190 DO l = 1, llm 191 zz = 1. - preff/presnivs(l) 192 zvert(l)= fact -( fact-1.)/( 1.+zz*zz ) 193 ENDDO 194 endif ! of if (vert_prof_dissip == 1) 195 196 else ! other planets 197 169 198 ! First step: going from 1 to dissip_fac_mid (in gcm.def) 170 199 !============ 171 DO l=1,llm200 DO l=1,llm 172 201 zz = 1. - preff/presnivs(l) 173 202 zvert(l)= dissip_fac_mid -( dissip_fac_mid-1.)/( 1.+zz*zz ) 174 ENDDO175 176 write(lunout,*) 'Dissipation : '177 write(lunout,*) 'Multiplication de la dissipation en altitude :'178 write(lunout,*) ' dissip_fac_mid =', dissip_fac_mid203 ENDDO 204 205 write(lunout,*) 'Dissipation : ' 206 write(lunout,*) 'Multiplication de la dissipation en altitude :' 207 write(lunout,*) ' dissip_fac_mid =', dissip_fac_mid 179 208 180 209 ! Second step if ok_strato: from dissip_fac_mid to dissip_fac_up (in gcm.def) … … 188 217 ! atmosphere par celui-ci. 189 218 190 if (ok_strato) then219 if (ok_strato) then 191 220 192 221 Pup = dissip_pupstart*exp(-0.5*dissip_deltaz/dissip_hdelta) … … 201 230 dissip_pupstart,'Pa', dissip_deltaz , '(km)' 202 231 203 endif 232 endif ! of if (ok_strato) 233 234 endif ! of if (planet_type.eq."earth") 204 235 205 236
Note: See TracChangeset
for help on using the changeset viewer.