Changeset 1594
- Timestamp:
- Sep 13, 2016, 8:40:34 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r1593 r1594 1253 1253 "grireg" (unused) and "physic" (use iflag_phys instead) parameters from 1254 1254 the dynamics. 1255 1256 == 13/09/2016 == EM 1257 - Further cleanup to harmonize with LMDZ.COMMON turn "idissip" into 1258 "dissip_period". -
trunk/LMDZ.GENERIC/libf/dyn3d/control_mod.F90
r1593 r1594 8 8 integer,save :: iperiod ! make a Matsuno step before avery iperiod-1 LF steps 9 9 integer,save :: iconser ! 10 integer,save :: idissip ! apply dissipation every idissipdynamical step10 integer,save :: dissip_period ! apply dissipation every dissip_period dynamical step 11 11 integer,save :: iphysiq ! call physics every iphysiq dynamical steps 12 12 integer,save :: anneeref ! reference year # ! not used -
trunk/LMDZ.GENERIC/libf/dyn3d/defrun_new.F
r1593 r1594 40 40 use sponge_mod,only: callsponge,nsponge,mode_sponge,tetasponge 41 41 use control_mod,only: nday, day_step, iperiod, anneeref, 42 & iconser, idissip, iphysiq42 & iconser, dissip_period, iphysiq 43 43 USE logic_mod, ONLY: hybrid,purmats,fxyhypb,ysinus,iflag_phys 44 44 USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, … … 132 132 WRITE(lunout,*) "" 133 133 WRITE(lunout,*) "periode de la dissipation (en pas)" 134 idissip=5 ! default value 135 call getin("idissip",idissip) 136 WRITE(lunout,*)" idissip = ",idissip 134 dissip_period=5 ! default value 135 call getin("idissip",dissip_period) 136 ! if there is a "dissip_period" in run.def, it overrides "idissip" 137 call getin("dissip_period",dissip_period) 138 WRITE(lunout,*)" dissip_period = ",dissip_period 137 139 138 140 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... -
trunk/LMDZ.GENERIC/libf/dyn3d/gcm.F
r1593 r1594 5 5 use sponge_mod,only: callsponge,mode_sponge,sponge 6 6 use control_mod, only: nday, day_step, iperiod, iphysiq, 7 & iconser, idissip7 & iconser, dissip_period 8 8 ! use comgeomphy, only: initcomgeomphy 9 9 USE mod_const_mpi, ONLY: COMM_LMDZ … … 366 366 IF( purmats ) THEN 367 367 IF( MOD(itau,iconser) .EQ.0.AND. forward ) conser = .TRUE. 368 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 368 IF( MOD(itau,dissip_period ).EQ.0 369 & .AND..NOT.forward ) apdiss = .TRUE. 369 370 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 370 371 $ .AND. (iflag_phys.eq.1) ) apphys = .TRUE. 371 372 ELSE 372 373 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 373 IF( MOD(itau+1, idissip) .EQ. 0) apdiss = .TRUE.374 IF( MOD(itau+1,dissip_period) .EQ. 0 ) apdiss = .TRUE. 374 375 IF( MOD(itau+1,iphysiq).EQ.0 375 376 & .AND. (iflag_phys.eq.1) ) apphys = .TRUE. -
trunk/LMDZ.GENERIC/libf/dyn3d/iniconst.F
r1422 r1594 1 1 SUBROUTINE iniconst 2 2 3 use control_mod, only: iphysiq, idissip3 use control_mod, only: iphysiq, dissip_period 4 4 USE comconst_mod, ONLY: im,jm,lllm,imp1,jmp1,lllmp1,lllmm1, 5 5 . dtdiss,dtvr,dtphys,pi,r,cpp,kappa,unsim … … 36 36 c----------------------------------------------------------------------- 37 37 38 dtdiss = idissip* dtvr38 dtdiss = dissip_period * dtvr 39 39 dtphys = iphysiq * dtvr 40 40 unsim = 1./iim -
trunk/LMDZ.GENERIC/libf/dyn3d/inidissip.F
r1422 r1594 8 8 c ------------- 9 9 10 use control_mod, only: idissip, iperiod10 use control_mod, only: dissip_period, iperiod 11 11 USE comvert_mod, ONLY: aps,bps,pseudoalt,preff 12 12 USE comconst_mod, ONLY: dtdiss,dtvr … … 262 262 ENDDO 263 263 264 c Calcul automatique de idissip264 c Calcul automatique de dissip_period 265 265 c ----------------------------- 266 266 c ::::::::::::::::::::: 267 267 c A Commenter pour garder la valeur de run.def : 268 c idissip= INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod269 c idissip= MAX(iperiod,idissip)268 c dissip_period = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 269 c dissip_period = MAX(iperiod,idissip) 270 270 c ::::::::::::::::::::: 271 dtdiss = idissip* dtvr271 dtdiss = dissip_period * dtvr 272 272 273 273 PRINT *,' INIDI tetamin dtvr ',tetamin,dtvr,iperiod 274 PRINT *,' INIDI tetamin idissip ',tetamin,idissip275 PRINT *,' INIDI idissip dtdiss ',idissip,dtdiss274 PRINT *,' INIDI tetamin dissip_period ',tetamin,dissip_period 275 PRINT *,' INIDI dissip_period dtdiss ',dissip_period,dtdiss 276 276 277 277 PRINT*,'pseudoZ(km) zvert dt(tetagdiv) dt(tetagrot) dt(divgrad)' … … 286 286 PRINT *,'in run.def, you must increase tetagdiv,' 287 287 PRINT *,'(or tetagrot and tetatemp if they are smaller than' 288 PRINT *,'tetagdiv) OR decrease idissip OR increase day_step)' 288 PRINT *,'tetagdiv) OR decrease dissip_period' 289 PRINT *,'OR increase day_step)' 289 290 stop 290 291 end if -
trunk/LMDZ.MARS/README
r1593 r1594 2324 2324 the dynamics. 2325 2325 - turn sponge.F into sponge_mod.F90 (and remove sponge.h) 2326 2327 == 13/09/2016 == EM 2328 - Further cleanup to harmonize with LMDZ.COMMON turn "idissip" into 2329 "dissip_period". -
trunk/LMDZ.MARS/libf/dyn3d/control_mod.F90
r1593 r1594 8 8 integer,save :: iperiod ! make a Matsuno step before avery iperiod-1 LF steps 9 9 integer,save :: iconser ! 10 integer,save :: idissip ! apply dissipation every idissipdynamical step10 integer,save :: dissip_period ! apply dissipation every dissip_period dynamical step 11 11 integer,save :: iphysiq ! call physics every iphysiq dynamical steps 12 12 integer,save :: anneeref ! reference year # ! not used -
trunk/LMDZ.MARS/libf/dyn3d/defrun_new.F
r1593 r1594 40 40 use sponge_mod,only: callsponge,nsponge,mode_sponge,tetasponge 41 41 use control_mod, only: ndynstep, day_step, iperiod, iconser, 42 & idissip, iphysiq, anneeref,42 & dissip_period, iphysiq, anneeref, 43 43 & ecritstart, timestart, nday_r 44 44 USE logic_mod, ONLY: hybrid,purmats,fxyhypb,ysinus,iflag_phys … … 148 148 WRITE(lunout,*) "" 149 149 WRITE(lunout,*) "periode de la dissipation (en pas)" 150 idissip=5 ! default value 151 call getin("idissip",idissip) 152 WRITE(lunout,*)" idissip = ",idissip 150 dissip_period=5 ! default value 151 call getin("idissip",dissip_period) 152 ! if there is a "dissip_period" in run.def, it overrides "idissip" 153 CALL getin('dissip_period',dissip_period) 154 WRITE(lunout,*)" dissip_period = ",dissip_period 153 155 154 156 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... -
trunk/LMDZ.MARS/libf/dyn3d/gcm.F
r1593 r1594 4 4 use infotrac, only: iniadvtrac, nqtot, iadv 5 5 use control_mod, only: day_step, iperiod, iphysiq, ndynstep, 6 & nday_r, idissip, iconser, ecritstart6 & nday_r, dissip_period, iconser, ecritstart 7 7 use filtreg_mod, only: inifilr 8 8 ! use comgeomphy, only: initcomgeomphy … … 283 283 endif 284 284 ! check that this is compatible with call sequence dyn/phys/dissip 285 ! i.e. that itaufin is a multiple of iphysiq and idissip285 ! i.e. that itaufin is a multiple of iphysiq and dissip_period 286 286 if ((modulo(itaufin,iphysiq).ne.0).or. 287 & (modulo(itaufin, idissip).ne.0)) then287 & (modulo(itaufin,dissip_period).ne.0)) then 288 288 if (ndynstep .gt. 0) then 289 289 write(*,'(A,I5)') … … 295 295 endif 296 296 write(*,'(2(A,I5))') 297 & " whereas iphysiq=",iphysiq," and idissip=",298 & idissip297 & " whereas iphysiq=",iphysiq," and dissip_period=", 298 & dissip_period 299 299 stop 300 300 endif … … 390 390 IF( purmats ) THEN 391 391 IF( MOD(itau,iconser) .EQ.0.AND. forward ) conser = .TRUE. 392 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 392 IF( MOD(itau,dissip_period ).EQ.0 393 & .AND..NOT.forward ) apdiss = .TRUE. 393 394 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 394 395 $ .AND. (iflag_phys.eq.1) ) apphys = .TRUE. 395 396 ELSE 396 397 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 397 IF( MOD(itau+1, idissip) .EQ. 0) apdiss = .TRUE.398 IF( MOD(itau+1,dissip_period) .EQ. 0 ) apdiss = .TRUE. 398 399 IF( MOD(itau+1,iphysiq).EQ.0 399 400 & .AND. (iflag_phys.eq.1) ) apphys = .TRUE. -
trunk/LMDZ.MARS/libf/dyn3d/iniconst.F
r1422 r1594 1 1 SUBROUTINE iniconst 2 2 3 use control_mod, only: iphysiq, idissip3 use control_mod, only: iphysiq, dissip_period 4 4 USE comconst_mod, ONLY: im,jm,lllm,imp1,jmp1,lllmm1,lllmp1, 5 5 . dtdiss,dtvr,dtphys,unsim,r,cpp,kappa,pi … … 36 36 c----------------------------------------------------------------------- 37 37 38 dtdiss = idissip* dtvr38 dtdiss = dissip_period * dtvr 39 39 dtphys = iphysiq * dtvr 40 40 unsim = 1./iim -
trunk/LMDZ.MARS/libf/dyn3d/inidissip.F
r1422 r1594 8 8 c ------------- 9 9 10 use control_mod, only: idissip, iperiod10 use control_mod, only: dissip_period, iperiod 11 11 USE comvert_mod, ONLY: aps,bps,preff,pseudoalt 12 12 USE comconst_mod, ONLY: dtdiss,dtvr … … 71 71 !!!! avec dans run.def 72 72 !!- mode_sponge=3 73 !!- idissip/tetagdiv/tetagrot/tetagtemp = 1/2000/3000/300073 !!- dissip_period/tetagdiv/tetagrot/tetagtemp = 1/2000/3000/3000 74 74 75 75 middle=startalt+delta/2 … … 265 265 ENDDO 266 266 267 c Calcul automatique de idissip267 c Calcul automatique de dissip_period 268 268 c ----------------------------- 269 269 c ::::::::::::::::::::: 270 270 c A Commenter pour garder la valeur de run.def : 271 c idissip= INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod272 c idissip = MAX(iperiod,idissip)271 c dissip_period = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 272 c dissip_period = MAX(iperiod,dissip_period) 273 273 c ::::::::::::::::::::: 274 dtdiss = idissip* dtvr274 dtdiss = dissip_period * dtvr 275 275 276 276 PRINT *,' INIDI tetamin dtvr ',tetamin,dtvr,iperiod 277 PRINT *,' INIDI tetamin idissip ',tetamin,idissip278 PRINT *,' INIDI idissip dtdiss ',idissip,dtdiss277 PRINT *,' INIDI tetamin dissip_period ',tetamin,dissip_period 278 PRINT *,' INIDI dissip_period dtdiss ',dissip_period,dtdiss 279 279 280 280 PRINT*,'pseudoZ(km) zvert dt(tetagdiv) dt(tetagrot) dt(divgrad)' … … 289 289 PRINT *,'in run.def, you must increase tetagdiv,' 290 290 PRINT *,'(or tetagrot and tetatemp if they are smaller than' 291 PRINT *,'tetagdiv) OR decrease idissip OR increase day_step)' 291 PRINT *,'tetagdiv) OR decrease dissip_period' 292 PRINT *,'OR increase day_step)' 292 293 stop 293 294 end if
Note: See TracChangeset
for help on using the changeset viewer.