Changeset 1502
- Timestamp:
- Mar 21, 2011, 5:07:54 PM (14 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3d/conf_gcm.F
r1492 r1502 215 215 CALL getin('output_grads_dyn',output_grads_dyn) 216 216 217 !Config Key = idissip217 !Config Key = dissip_period 218 218 !Config Desc = periode de la dissipation 219 !Config Def = 10219 !Config Def = 0 220 220 !Config Help = periode de la dissipation 221 !Config (en pas) ... a completer ! 222 idissip = 10 223 CALL getin('idissip',idissip) 221 !Config dissip_period=0 => la valeur sera calcule dans inidissip 222 !Config dissip_period>0 => on prend cette valeur 223 dissip_period = 0 224 CALL getin('dissip_period',dissip_period) 224 225 225 226 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... … … 619 620 write(lunout,*)' periodav = ', periodav 620 621 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 621 write(lunout,*)' idissip = ', idissip622 write(lunout,*)' dissip_period = ', dissip_period 622 623 write(lunout,*)' lstardis = ', lstardis 623 624 write(lunout,*)' nitergdiv = ', nitergdiv … … 862 863 write(lunout,*)' periodav = ', periodav 863 864 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 864 write(lunout,*)' idissip = ', idissip865 write(lunout,*)' dissip_period = ', dissip_period 865 866 write(lunout,*)' lstardis = ', lstardis 866 867 write(lunout,*)' nitergdiv = ', nitergdiv -
LMDZ5/trunk/libf/dyn3d/control_mod.F90
r1403 r1502 12 12 REAL :: periodav 13 13 INTEGER :: nday,day_step,iperiod,iapp_tracvl,nsplit_phys 14 INTEGER :: iconser,iecri, idissip,iphysiq,iecrimoy14 INTEGER :: iconser,iecri,dissip_period,iphysiq,iecrimoy 15 15 INTEGER :: dayref,anneeref, raz_date, ip_ebil_dyn 16 16 LOGICAL :: offline -
LMDZ5/trunk/libf/dyn3d/defrun.F
r1403 r1502 133 133 134 134 READ (tapedef,9001) ch1,ch4 135 READ (tapedef,*) idissip136 WRITE(tapeout,9001) ch1,' idissip'137 WRITE(tapeout,*) idissip135 READ (tapedef,*) dissip_period 136 WRITE(tapeout,9001) ch1,'dissip_period' 137 WRITE(tapeout,*) dissip_period 138 138 139 139 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... -
LMDZ5/trunk/libf/dyn3d/ini_paramLMDZ_dyn.h
r1279 r1502 78 78 . "once", dt_cum,dt_cum) 79 79 c 80 CALL histdef(nid_ctesGCM, " idissip",80 CALL histdef(nid_ctesGCM, "dissip_period", 81 81 . "periode de la dissipation (en pas) ... a completer", 82 82 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32, -
LMDZ5/trunk/libf/dyn3d/iniconst.F
r1403 r1502 39 39 c----------------------------------------------------------------------- 40 40 41 dtdiss = idissip * dtvr42 41 dtphys = iphysiq * dtvr 43 42 unsim = 1./iim -
LMDZ5/trunk/libf/dyn3d/inidissip.F90
r1492 r1502 11 11 ! ------------- 12 12 13 USE control_mod, only : idissip,iperiod13 USE control_mod, only : dissip_period,iperiod 14 14 15 15 IMPLICIT NONE … … 215 215 ENDDO 216 216 217 write(lunout,*)'inidissip: tetamin dtvr iperiod ',tetamin,dtvr,iperiod 218 idissip = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 219 write(lunout,*)'inidissip: tetamin idissip ',tetamin,idissip 220 idissip = MAX(iperiod,idissip) 221 dtdiss = idissip * dtvr 222 write(lunout,*)'inidissip: idissip dtdiss ',idissip,dtdiss 217 ! If dissip_period=0 calculate value for dissipation period, else keep value read from gcm.def 218 IF (dissip_period == 0) THEN 219 dissip_period = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 220 write(lunout,*)'inidissip: tetamin dtvr iperiod dissip_period(intermed) ',tetamin,dtvr,iperiod,dissip_period 221 dissip_period = MAX(iperiod,dissip_period) 222 END IF 223 224 dtdiss = dissip_period * dtvr 225 write(lunout,*)'inidissip: dissip_period=',dissip_period,' dtdiss=',dtdiss,' dtvr=',dtvr 223 226 224 227 DO l = 1,llm -
LMDZ5/trunk/libf/dyn3d/leapfrog.F
r1454 r1502 275 275 ! Purely Matsuno time stepping 276 276 IF( MOD(itau,iconser) .EQ.0.AND. forward ) conser = .TRUE. 277 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 277 IF( MOD(itau,dissip_period ).EQ.0.AND..NOT.forward ) 278 s apdiss = .TRUE. 278 279 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 279 280 s .and. iflag_phys.EQ.1 ) apphys = .TRUE. … … 281 282 ! Leapfrog/Matsuno time stepping 282 283 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 283 IF( MOD(itau+1,idissip) .EQ. 0 ) apdiss = .TRUE. 284 IF( MOD(itau+1,dissip_period).EQ.0 .AND. .NOT. forward ) 285 s apdiss = .TRUE. 284 286 IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys.EQ.1) apphys=.TRUE. 285 287 END IF -
LMDZ5/trunk/libf/dyn3d/write_paramLMDZ_dyn.h
r1403 r1502 51 51 . zx_tmp_2d,iip1*jjp1,ndex2d) 52 52 c 53 zx_tmp_2d(1:iip1,1:jjp1)=REAL( idissip)54 CALL histwrite(nid_ctesGCM, " idissip", itau_w,53 zx_tmp_2d(1:iip1,1:jjp1)=REAL(dissip_period) 54 CALL histwrite(nid_ctesGCM, "dissip_period", itau_w, 55 55 . zx_tmp_2d,iip1*jjp1,ndex2d) 56 56 c -
LMDZ5/trunk/libf/dyn3dpar/conf_gcm.F
r1492 r1502 225 225 CALL getin('output_grads_dyn',output_grads_dyn) 226 226 227 !Config Key = idissip227 !Config Key = dissip_period 228 228 !Config Desc = periode de la dissipation 229 !Config Def = 10229 !Config Def = 0 230 230 !Config Help = periode de la dissipation 231 !Config (en pas) ... a completer ! 232 idissip = 10 233 CALL getin('idissip',idissip) 231 !Config dissip_period=0 => la valeur sera calcule dans inidissip 232 !Config dissip_period>0 => on prend cette valeur 233 dissip_period = 0 234 CALL getin('dissip_period',dissip_period) 234 235 235 236 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... … … 635 636 write(lunout,*)' periodav = ', periodav 636 637 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 637 write(lunout,*)' idissip = ', idissip638 write(lunout,*)' dissip_period = ', dissip_period 638 639 write(lunout,*)' lstardis = ', lstardis 639 640 write(lunout,*)' nitergdiv = ', nitergdiv … … 909 910 write(lunout,*)' periodav = ', periodav 910 911 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 911 write(lunout,*)' idissip = ', idissip912 write(lunout,*)' dissip_period = ', dissip_period 912 913 write(lunout,*)' lstardis = ', lstardis 913 914 write(lunout,*)' nitergdiv = ', nitergdiv -
LMDZ5/trunk/libf/dyn3dpar/control_mod.F90
r1403 r1502 12 12 REAL :: periodav 13 13 INTEGER :: nday,day_step,iperiod,iapp_tracvl,nsplit_phys 14 INTEGER :: iconser,iecri, idissip,iphysiq,iecrimoy14 INTEGER :: iconser,iecri,dissip_period,iphysiq,iecrimoy 15 15 INTEGER :: dayref,anneeref, raz_date, ip_ebil_dyn 16 16 LOGICAL :: offline -
LMDZ5/trunk/libf/dyn3dpar/defrun.F
r1403 r1502 132 132 133 133 READ (tapedef,9001) ch1,ch4 134 READ (tapedef,*) idissip135 WRITE(tapeout,9001) ch1,' idissip'136 WRITE(tapeout,*) idissip134 READ (tapedef,*) dissip_period 135 WRITE(tapeout,9001) ch1,'dissip_period' 136 WRITE(tapeout,*) dissip_period 137 137 138 138 ccc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... -
LMDZ5/trunk/libf/dyn3dpar/iniconst.F
r1403 r1502 39 39 c----------------------------------------------------------------------- 40 40 41 dtdiss = idissip * dtvr42 41 dtphys = iphysiq * dtvr 43 42 unsim = 1./iim -
LMDZ5/trunk/libf/dyn3dpar/inidissip.F90
r1492 r1502 11 11 ! ------------- 12 12 13 USE control_mod, only : idissip,iperiod13 USE control_mod, only : dissip_period,iperiod 14 14 15 15 IMPLICIT NONE … … 215 215 ENDDO 216 216 217 write(lunout,*)'inidissip: tetamin dtvr iperiod ',tetamin,dtvr,iperiod 218 idissip = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 219 write(lunout,*)'inidissip: tetamin idissip ',tetamin,idissip 220 idissip = MAX(iperiod,idissip) 221 dtdiss = idissip * dtvr 222 write(lunout,*)'inidissip: idissip dtdiss ',idissip,dtdiss 217 ! If dissip_period=0 calculate value for dissipation period, else keep value read from gcm.def 218 IF (dissip_period == 0) THEN 219 dissip_period = INT( tetamin/( 2.*dtvr*iperiod) ) * iperiod 220 write(lunout,*)'inidissip: tetamin dtvr iperiod dissip_period(intermed) ',tetamin,dtvr,iperiod,dissip_period 221 dissip_period = MAX(iperiod,dissip_period) 222 END IF 223 224 dtdiss = dissip_period * dtvr 225 write(lunout,*)'inidissip: dissip_period=',dissip_period,' dtdiss=',dtdiss,' dtvr=',dtvr 223 226 224 227 DO l = 1,llm -
LMDZ5/trunk/libf/dyn3dpar/leapfrog_p.F
r1492 r1502 350 350 conser = .FALSE. 351 351 apdiss = .FALSE. 352 c idissip=1 352 353 353 IF( purmats ) THEN 354 354 ! Purely Matsuno time stepping 355 355 IF( MOD(itau,iconser) .EQ.0.AND. forward ) conser = .TRUE. 356 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 356 IF( MOD(itau,dissip_period ).EQ.0.AND..NOT.forward ) 357 s apdiss = .TRUE. 357 358 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 358 359 s .and. iflag_phys.EQ.1 ) apphys = .TRUE. … … 360 361 ! Leapfrog/Matsuno time stepping 361 362 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 362 IF( MOD(itau+1,idissip) .EQ. 0 ) apdiss = .TRUE. 363 IF( MOD(itau+1,dissip_period).EQ.0 .AND. .NOT. forward ) 364 s apdiss = .TRUE. 363 365 IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys.EQ.1) apphys=.TRUE. 364 366 END IF
Note: See TracChangeset
for help on using the changeset viewer.