Index: codes/icosagcm/trunk/param_sets/climate/Held_Suarez/run.def
===================================================================
--- codes/icosagcm/trunk/param_sets/climate/Held_Suarez/run.def	(revision 277)
+++ codes/icosagcm/trunk/param_sets/climate/Held_Suarez/run.def	(revision 278)
@@ -1,96 +1,92 @@
-INCLUDEDEF=earth_const.def
 
-# Scale factor for small planet experiment : real (default=1.)
-scale_factor=1.
+#---------------- Mesh ----------------
 
-# ------------------------------- Mesh ---------------------------------
-# nbp                 20  40  80 160
-# T-edge length (km) 500 250 120  60
+# Number of subdivisions on a main triangle : integer (default=40)
+nbp = 40
 
-# Number of subdivision on a main triangle (nbp) : integer (default=40)
-nbp=40
+# Number of vertical layers : integer (default=19)
+llm = 19
 
-# sub splitting of main rhombus : integer (default=1)
-nsplit_i=2
-nsplit_j=3
+# Vertical grid : [std|ncar|ncarl30] (default=std)
+disvert = std
 
-# Number of vertical layer (llm) : integer (default=19)
-llm=19
+# Mesh optimisation : number of iterations : integer (default=0)
+optim_it = 1000
 
-# disvert : vertical discretisation : string (default='std') : std, ncar, ncar30l
-disvert=std
+# Sub splitting of main rhombus : integer (default=1)
+nsplit_i = 2
+nsplit_j = 2
 
-# optim_it : mesh optimisation : number of iteration : integer (default=0)
-optim_it=1000
 
-# ---------------------------------- Time --------------------------------
+#---------------- Numerics ----------------
 
-# scheme type : string ( default='runge_kutta') euler, leapfrog_matsuno, runge_kutta )
-scheme = runge_kutta
+# Advection called every itau_adv time steps : integer (default=2)
+itau_adv = 1
 
-# matsuno period : integer ( default=5)
-matsuno_period = 5
+# Time step in s : real (default=480)
+dt = 480
 
-# advection called every itau_adv time steps : integer (default 2)
-# standard : umax=100m/s vs c=340m/s (ratio 1:3)
-# in JW06 umax=35m/s vs c=340m/s (ratio 1:10)
-itau_adv= 1
+# Number of tracers : integer (default=1)
+nqtot = 0
 
-# time_style
-time_style=lmd 
 
-# Number of days
-ndays=1200
+#---------------- Time and output ----------------
 
-# NUBER of day_step
-day_step= 180
+# Time style : [none|dcmip] (default=dcmip)
+time_style = none
 
-# output field period : integer (default none)
-write_period=86400
+# Run length in s : real (default=??)
+run_length = 103680000
 
-# ---------------------------------- Misc --------------------------------
+# Interval in s between two outputs : integer (default=??)
+write_period = 86400
 
-# number of tracer (nqtot) : integer (default 1)
-nqtot=1
 
-# etat0 : initial state : string (default=jablonowsky06) : 
-# jablonowsky06, academic, dcmip[1-4] ,heldsz
-etat0=held_suarez 
+#---------------- Planet ----------------
 
-# ------------------------------ Dynamics --------------------------------
+# Planetary radius : real (default=6371220)
+radius = 6.371e6
 
-# caldyn : computation type for gcm equation : string (default=gcm) : gcm, adv
-caldyn=gcm
+# Gravity : real (default=9.80616)
+g = 9.8
 
-caldyn_conserv=energy
-caldyn_exner=direct
-caldyn_hydrostat=direct
+# Planetary rotation rate : real (default=7.292E-5)
+omega = 7.292e-5
 
-# guided_type : string (default=none) : none, ncar
-guided_type=none
+# kappa=Rd/cpp : real (default=0.2857143)
+kappa = 0.2857143
 
-# ------------------------------ Dissipation ---------------------------
+# Heat capacity at constant pressure : real (default=1004.70885)
+cpp = 1004
 
-# dissipation time graddiv : real (default=5000)
+# Reference pressure : real (default=101325)
+preff = 1e5
+
+
+#---------------- Physical parameters ----------------
+
+# Initial state : 
+#   [jablonowsky06|academic|dcmip[1-4]|heldsz|dcmip2_schaer_noshear|dcmip3] (default=jablonowsky06)
+etat0 = held_suarez
+
+# Physics package : [none|held_suarez|dcmip] (default=none)
+physics = held_suarez
+
+# Dissipation time for grad(div) : real (default=5000)
 tau_graddiv = 50000
 
-# number of iteration for graddiv : integer (default=1)
+# Exponent of grad(div) disspation : integer (default=1)
 nitergdiv = 2
 
-# dissipation time nxgradrot (default=5000)
+# Dissipation time for curl(curl) : real (default=5000)
 tau_gradrot = 50000
 
-# number of iteration for nxgradrot : integer (default=1)
-nitergrot=2
+# Exponent of curl(curl) disspation : integer (default=1)
+nitergrot = 2
 
-# dissipation time divgrad (theta) (default=5000)
-tau_divgrad= 50000
+# Dissipation time for div(grad) : real (default=5000)
+tau_divgrad = 50000
 
-# number of iteration for divgrad : integer (default=1)
-niterdivgrad=2
+# Exponent of div(grad) disspation : integer (default=1)
+niterdivgrad = 2
 
-# Rayleigh friction : string (default=none) : none, dcmip2_schaer_noshear, dcmip2_schaer_shear
-rayleigh_friction_type=none
-
-#----------------------------physics-------------------------------------
-physics=automatic
Index: codes/icosagcm/trunk/param_sets/make_rundefs.sh
===================================================================
--- codes/icosagcm/trunk/param_sets/make_rundefs.sh	(revision 277)
+++ codes/icosagcm/trunk/param_sets/make_rundefs.sh	(revision 278)
@@ -67,11 +67,7 @@
 ############################### Time and output ###############################
 
-function time_style() { print 'Time style' '[none|lmd]' lmd time_style $1 
-}
-function ndays() { print 'Number of days' integer ?? ndays $1 
+function time_style() { print 'Time style' '[none|dcmip]' dcmip time_style $1 
 }
 function run_length() { print 'Run length in s' real ?? run_length $1 
-}
-function day_step { print 'Number of time steps per day' integer ?? day_step $1 
 }
 function write_period { print 'Interval in s between two outputs' integer ?? write_period $1 
@@ -158,6 +154,6 @@
 {
     group 'Mesh' nbp 40 llm 19 disvert std optim_it 1000 ; split 2 2
-    group 'Numerics' itau_adv 1 day_step 180
-    group 'Time' time_style lmd ndays 1200 write_period 86400
+    group 'Numerics' itau_adv 1 time_step 480 nqtot 0
+    group 'Time and output' time_style none run_length 103680000 write_period 86400
     group 'Planet' radius 6.371e6 g 9.8 omega 7.292e-5 kappa 0.2857143 cpp 1004 preff 1e5
     group 'Physical parameters' etat0 held_suarez physics held_suarez
Index: codes/icosagcm/trunk/src/time.f90
===================================================================
--- codes/icosagcm/trunk/src/time.f90	(revision 277)
+++ codes/icosagcm/trunk/src/time.f90	(revision 278)
@@ -48,42 +48,45 @@
   
   SUBROUTINE init_time
-  USE earth_const
-  USE getin_mod
-  USE mpipara
-  IMPLICIT NONE
-  REAL(rstd) :: run_length
-
-
-   time_style='dcmip'
-   CALL getin('time_style',time_style)
-
-   IF (TRIM(time_style)=='dcmip')  Then
+    USE earth_const
+    USE getin_mod
+    USE mpipara
+    IMPLICIT NONE
+    REAL(rstd) :: run_length
+    
     dt=90.
     CALL getin('dt',dt)
-
+    write_period=0
+    CALL getin('write_period',write_period)
     itaumax=100
-    CALL getin('itaumax',itaumax)
-
+    CALL getin('itaumax',itaumax)    
     run_length=dt*itaumax
     CALL getin('run_length',run_length)
     itaumax=run_length/dt
-    dt=dt/scale_factor
-
-    write_period=0
-    CALL getin('write_period',write_period)
-    write_period=write_period/scale_factor
+    
+    time_style='dcmip'
+    CALL getin('time_style',time_style)
+    SELECT CASE(TRIM(time_style))
+    CASE('none') ! do nothing
+    CASE('dcmip') ! rescale time step for small-planet experiments
+       dt=dt/scale_factor       
+       write_period=write_period/scale_factor
+       IF (is_mpi_root) PRINT *, 'Output frequency (scaled) set to ',write_period
+    CASE DEFAULT
+       IF (is_mpi_root) PRINT*,"Bad selector for variable time_style >",TRIM(time_style),"> options are <none>, <dcmip>"
+       STOP
+    END SELECT
+    
     itau_out=FLOOR(.5+write_period/dt)
-    IF (is_mpi_root) PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out
-    ENDIF 
+    IF (is_mpi_root) PRINT *, 'Output frequency itau_out = ',itau_out
 
     itau_adv=1
     CALL getin('itau_adv',itau_adv)
-
+    
     itau_dissip=1
     CALL getin('itau_dissip',itau_dissip)
-
+    
     itau_physics=1
     CALL getin('itau_physics',itau_physics)
-
+    
     IF (is_mpi_root)  THEN
        PRINT *, 'itaumax=',itaumax
