Changeset 278


Ignore:
Timestamp:
10/11/14 23:27:39 (10 years ago)
Author:
dubos
Message:

time_style cleanup

Location:
codes/icosagcm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/param_sets/climate/Held_Suarez/run.def

    r170 r278  
    1 INCLUDEDEF=earth_const.def 
    21 
    3 # Scale factor for small planet experiment : real (default=1.) 
    4 scale_factor=1. 
     2#---------------- Mesh ---------------- 
    53 
    6 # ------------------------------- Mesh --------------------------------- 
    7 # nbp                 20  40  80 160 
    8 # T-edge length (km) 500 250 120  60 
     4# Number of subdivisions on a main triangle : integer (default=40) 
     5nbp = 40 
    96 
    10 # Number of subdivision on a main triangle (nbp) : integer (default=40) 
    11 nbp=40 
     7# Number of vertical layers : integer (default=19) 
     8llm = 19 
    129 
    13 # sub splitting of main rhombus : integer (default=1) 
    14 nsplit_i=2 
    15 nsplit_j=3 
     10# Vertical grid : [std|ncar|ncarl30] (default=std) 
     11disvert = std 
    1612 
    17 # Number of vertical layer (llm) : integer (default=19) 
    18 llm=19 
     13# Mesh optimisation : number of iterations : integer (default=0) 
     14optim_it = 1000 
    1915 
    20 # disvert : vertical discretisation : string (default='std') : std, ncar, ncar30l 
    21 disvert=std 
     16# Sub splitting of main rhombus : integer (default=1) 
     17nsplit_i = 2 
     18nsplit_j = 2 
    2219 
    23 # optim_it : mesh optimisation : number of iteration : integer (default=0) 
    24 optim_it=1000 
    2520 
    26 # ---------------------------------- Time -------------------------------- 
     21#---------------- Numerics ---------------- 
    2722 
    28 # scheme type : string ( default='runge_kutta') euler, leapfrog_matsuno, runge_kutta ) 
    29 scheme = runge_kutta 
     23# Advection called every itau_adv time steps : integer (default=2) 
     24itau_adv = 1 
    3025 
    31 # matsuno period : integer ( default=5) 
    32 matsuno_period = 5 
     26# Time step in s : real (default=480) 
     27dt = 480 
    3328 
    34 # advection called every itau_adv time steps : integer (default 2) 
    35 # standard : umax=100m/s vs c=340m/s (ratio 1:3) 
    36 # in JW06 umax=35m/s vs c=340m/s (ratio 1:10) 
    37 itau_adv= 1 
     29# Number of tracers : integer (default=1) 
     30nqtot = 0 
    3831 
    39 # time_style 
    40 time_style=lmd  
    4132 
    42 # Number of days 
    43 ndays=1200 
     33#---------------- Time and output ---------------- 
    4434 
    45 # NUBER of day_step 
    46 day_step= 180 
     35# Time style : [none|dcmip] (default=dcmip) 
     36time_style = none 
    4737 
    48 # output field period : integer (default none) 
    49 write_period=86400 
     38# Run length in s : real (default=??) 
     39run_length = 103680000 
    5040 
    51 # ---------------------------------- Misc -------------------------------- 
     41# Interval in s between two outputs : integer (default=??) 
     42write_period = 86400 
    5243 
    53 # number of tracer (nqtot) : integer (default 1) 
    54 nqtot=1 
    5544 
    56 # etat0 : initial state : string (default=jablonowsky06) :  
    57 # jablonowsky06, academic, dcmip[1-4] ,heldsz 
    58 etat0=held_suarez  
     45#---------------- Planet ---------------- 
    5946 
    60 # ------------------------------ Dynamics -------------------------------- 
     47# Planetary radius : real (default=6371220) 
     48radius = 6.371e6 
    6149 
    62 # caldyn : computation type for gcm equation : string (default=gcm) : gcm, adv 
    63 caldyn=gcm 
     50# Gravity : real (default=9.80616) 
     51g = 9.8 
    6452 
    65 caldyn_conserv=energy 
    66 caldyn_exner=direct 
    67 caldyn_hydrostat=direct 
     53# Planetary rotation rate : real (default=7.292E-5) 
     54omega = 7.292e-5 
    6855 
    69 # guided_type : string (default=none) : none, ncar 
    70 guided_type=none 
     56# kappa=Rd/cpp : real (default=0.2857143) 
     57kappa = 0.2857143 
    7158 
    72 # ------------------------------ Dissipation --------------------------- 
     59# Heat capacity at constant pressure : real (default=1004.70885) 
     60cpp = 1004 
    7361 
    74 # dissipation time graddiv : real (default=5000) 
     62# Reference pressure : real (default=101325) 
     63preff = 1e5 
     64 
     65 
     66#---------------- Physical parameters ---------------- 
     67 
     68# Initial state :  
     69#   [jablonowsky06|academic|dcmip[1-4]|heldsz|dcmip2_schaer_noshear|dcmip3] (default=jablonowsky06) 
     70etat0 = held_suarez 
     71 
     72# Physics package : [none|held_suarez|dcmip] (default=none) 
     73physics = held_suarez 
     74 
     75# Dissipation time for grad(div) : real (default=5000) 
    7576tau_graddiv = 50000 
    7677 
    77 # number of iteration for graddiv : integer (default=1) 
     78# Exponent of grad(div) disspation : integer (default=1) 
    7879nitergdiv = 2 
    7980 
    80 # dissipation time nxgradrot (default=5000) 
     81# Dissipation time for curl(curl) : real (default=5000) 
    8182tau_gradrot = 50000 
    8283 
    83 # number of iteration for nxgradrot : integer (default=1) 
    84 nitergrot=2 
     84# Exponent of curl(curl) disspation : integer (default=1) 
     85nitergrot = 2 
    8586 
    86 # dissipation time divgrad (theta) (default=5000) 
    87 tau_divgrad= 50000 
     87# Dissipation time for div(grad) : real (default=5000) 
     88tau_divgrad = 50000 
    8889 
    89 # number of iteration for divgrad : integer (default=1) 
    90 niterdivgrad=2 
     90# Exponent of div(grad) disspation : integer (default=1) 
     91niterdivgrad = 2 
    9192 
    92 # Rayleigh friction : string (default=none) : none, dcmip2_schaer_noshear, dcmip2_schaer_shear 
    93 rayleigh_friction_type=none 
    94  
    95 #----------------------------physics------------------------------------- 
    96 physics=automatic 
  • codes/icosagcm/trunk/param_sets/make_rundefs.sh

    r249 r278  
    6767############################### Time and output ############################### 
    6868 
    69 function time_style() { print 'Time style' '[none|lmd]' lmd time_style $1  
    70 } 
    71 function ndays() { print 'Number of days' integer ?? ndays $1  
     69function time_style() { print 'Time style' '[none|dcmip]' dcmip time_style $1  
    7270} 
    7371function run_length() { print 'Run length in s' real ?? run_length $1  
    74 } 
    75 function day_step { print 'Number of time steps per day' integer ?? day_step $1  
    7672} 
    7773function write_period { print 'Interval in s between two outputs' integer ?? write_period $1  
     
    158154{ 
    159155    group 'Mesh' nbp 40 llm 19 disvert std optim_it 1000 ; split 2 2 
    160     group 'Numerics' itau_adv 1 day_step 180 
    161     group 'Time' time_style lmd ndays 1200 write_period 86400 
     156    group 'Numerics' itau_adv 1 time_step 480 nqtot 0 
     157    group 'Time and output' time_style none run_length 103680000 write_period 86400 
    162158    group 'Planet' radius 6.371e6 g 9.8 omega 7.292e-5 kappa 0.2857143 cpp 1004 preff 1e5 
    163159    group 'Physical parameters' etat0 held_suarez physics held_suarez 
  • codes/icosagcm/trunk/src/time.f90

    r266 r278  
    4848   
    4949  SUBROUTINE init_time 
    50   USE earth_const 
    51   USE getin_mod 
    52   USE mpipara 
    53   IMPLICIT NONE 
    54   REAL(rstd) :: run_length 
    55  
    56  
    57    time_style='dcmip' 
    58    CALL getin('time_style',time_style) 
    59  
    60    IF (TRIM(time_style)=='dcmip')  Then 
     50    USE earth_const 
     51    USE getin_mod 
     52    USE mpipara 
     53    IMPLICIT NONE 
     54    REAL(rstd) :: run_length 
     55     
    6156    dt=90. 
    6257    CALL getin('dt',dt) 
    63  
     58    write_period=0 
     59    CALL getin('write_period',write_period) 
    6460    itaumax=100 
    65     CALL getin('itaumax',itaumax) 
    66  
     61    CALL getin('itaumax',itaumax)     
    6762    run_length=dt*itaumax 
    6863    CALL getin('run_length',run_length) 
    6964    itaumax=run_length/dt 
    70     dt=dt/scale_factor 
    71  
    72     write_period=0 
    73     CALL getin('write_period',write_period) 
    74     write_period=write_period/scale_factor 
     65     
     66    time_style='dcmip' 
     67    CALL getin('time_style',time_style) 
     68    SELECT CASE(TRIM(time_style)) 
     69    CASE('none') ! do nothing 
     70    CASE('dcmip') ! rescale time step for small-planet experiments 
     71       dt=dt/scale_factor        
     72       write_period=write_period/scale_factor 
     73       IF (is_mpi_root) PRINT *, 'Output frequency (scaled) set to ',write_period 
     74    CASE DEFAULT 
     75       IF (is_mpi_root) PRINT*,"Bad selector for variable time_style >",TRIM(time_style),"> options are <none>, <dcmip>" 
     76       STOP 
     77    END SELECT 
     78     
    7579    itau_out=FLOOR(.5+write_period/dt) 
    76     IF (is_mpi_root) PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 
    77     ENDIF  
     80    IF (is_mpi_root) PRINT *, 'Output frequency itau_out = ',itau_out 
    7881 
    7982    itau_adv=1 
    8083    CALL getin('itau_adv',itau_adv) 
    81  
     84     
    8285    itau_dissip=1 
    8386    CALL getin('itau_dissip',itau_dissip) 
    84  
     87     
    8588    itau_physics=1 
    8689    CALL getin('itau_physics',itau_physics) 
    87  
     90     
    8891    IF (is_mpi_root)  THEN 
    8992       PRINT *, 'itaumax=',itaumax 
Note: See TracChangeset for help on using the changeset viewer.