Changeset 98


Ignore:
Timestamp:
08/04/12 01:10:06 (12 years ago)
Author:
ymipsl
Message:

Put time variable : dt, itaumax, write_period, itau_out in the time module

YM

Location:
codes/icosagcm/trunk/src
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/advect_tracer.f90

    r30 r98  
    33  PRIVATE 
    44  INTEGER,PARAMETER::iapp_tracvl= 3 
    5   REAL(rstd),SAVE :: dt 
    65 
    76  TYPE(t_field),POINTER :: f_normal(:) 
     
    1312CONTAINS 
    1413 
    15   SUBROUTINE init_advect_tracer(dt_in) 
     14  SUBROUTINE init_advect_tracer 
    1615    USE advect_mod 
    1716    IMPLICIT NONE 
    18     REAL(rstd),INTENT(IN) :: dt_in 
    1917    REAL(rstd),POINTER :: tangent(:,:) 
    2018    REAL(rstd),POINTER :: normal(:,:) 
    2119    INTEGER :: ind 
    2220 
    23     dt=dt_in 
    2421    CALL allocate_field(f_normal,field_u,type_real,3) 
    2522    CALL allocate_field(f_tangent,field_u,type_real,3) 
     
    174171    TYPE(t_field),POINTER,SAVE :: f_zq(:) 
    175172 
    176     REAL(rstd)::bigt,dt 
     173    REAL(rstd)::bigt 
    177174    REAL(rstd),POINTER :: q(:,:,:) 
    178175    REAL(rstd),POINTER :: u(:,:) 
  • codes/icosagcm/trunk/src/caldyn.f90

    r19 r98  
    88CONTAINS 
    99 
    10   SUBROUTINE init_caldyn(dt) 
     10  SUBROUTINE init_caldyn 
    1111  USE icosa 
    1212  USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn 
    1313  USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn 
    1414  IMPLICIT NONE 
    15     REAL(rstd),INTENT(IN) :: dt 
    1615   
    1716    caldyn_type="gcm" 
     
    2019    SELECT CASE (TRIM(caldyn_type)) 
    2120      CASE('gcm') 
    22         CALL init_caldyn_gcm(dt) 
     21        CALL init_caldyn_gcm 
    2322      CASE('adv') 
    24         CALL init_caldyn_adv(dt) 
     23        CALL init_caldyn_adv 
    2524      CASE DEFAULT 
    2625        PRINT*,'Bad selector for variable caldyn : <', TRIM(caldyn_type),'> options are <gcm>, <adv>' 
  • codes/icosagcm/trunk/src/caldyn_adv.f90

    r70 r98  
    99  REAL(rstd),POINTER :: out_z(:,:) 
    1010  
    11   INTEGER :: itau_out 
    1211   
    1312CONTAINS 
    1413   
    15   SUBROUTINE init_caldyn(dt) 
    16   USE icosa 
    17   IMPLICIT NONE 
    18     REAL(rstd),INTENT(IN) :: dt 
    19     REAL(rstd) :: write_period 
    20     CALL allocate_caldyn 
    21  
    22     CALL getin('write_period',write_period) 
    23      
    24     itau_out=INT(write_period/dt) 
    25      
     14  SUBROUTINE init_caldyn 
     15  USE icosa 
     16  IMPLICIT NONE 
     17 
    2618    CALL allocate_caldyn 
    2719   
  • codes/icosagcm/trunk/src/caldyn_gcm.f90

    r97 r98  
    22  USE icosa 
    33 
    4   INTEGER :: itau_out 
    54  TYPE(t_field),POINTER :: f_out_u(:) 
    65  REAL(rstd),POINTER :: out_u(:,:) 
     
    1312CONTAINS 
    1413   
    15   SUBROUTINE init_caldyn(dt) 
     14  SUBROUTINE init_caldyn 
    1615    USE icosa 
    1716    IMPLICIT NONE 
    18     REAL(rstd),INTENT(IN) :: dt 
    19     REAL :: write_period 
    20      
    21     write_period=0 
    22     CALL getin('write_period',write_period) 
    23     write_period=write_period/scale_factor 
    24     itau_out=FLOOR(.5+write_period/dt) 
    25     PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 
    26   
     17     
    2718    CALL allocate_caldyn 
    2819   
  • codes/icosagcm/trunk/src/dissip_gcm.f90

    r59 r98  
    4444  END SUBROUTINE allocate_dissip 
    4545  
    46   SUBROUTINE init_dissip(dt) 
     46  SUBROUTINE init_dissip 
    4747  USE icosa 
    4848  USE disvert_mod 
     
    5151   
    5252  IMPLICIT NONE 
    53   REAL,INTENT(IN)       :: dt 
    5453   
    5554  TYPE(t_field),POINTER :: f_u(:) 
  • codes/icosagcm/trunk/src/dissip_sw.f90

    r44 r98  
    2525  END SUBROUTINE allocate_dissip 
    2626  
    27   SUBROUTINE init_dissip(dt) 
     27  SUBROUTINE init_dissip 
    2828  USE icosa 
    2929   
    3030  IMPLICIT NONE 
    31   REAL,INTENT(IN)       :: dt 
    3231   
    3332  TYPE(t_field),POINTER :: f_u(:) 
  • codes/icosagcm/trunk/src/guided_mod.f90

    r73 r98  
    66 
    77 
    8   SUBROUTINE init_guided(dt) 
     8  SUBROUTINE init_guided 
    99  USE icosa 
    1010  USE guided_ncar_mod, ONLY : init_guided_ncar => init_guided 
    1111  IMPLICIT NONE 
    12     REAL(rstd),INTENT(IN) :: dt 
    1312     
    1413    guided_type='none' 
  • codes/icosagcm/trunk/src/physics.f90

    r81 r98  
    66CONTAINS 
    77 
    8   SUBROUTINE init_physics(dt) 
     8  SUBROUTINE init_physics 
    99  USE icosa 
    1010  USE physics_dcmip_mod, init_physics_dcmip=>init_physics 
    1111  IMPLICIT NONE 
    12     REAL(rstd),INTENT(IN) :: dt 
    1312     
    1413    CALL getin("physics",physics_type) 
     
    1817     
    1918      CASE ('dcmip') 
    20         CALL init_physics_dcmip(dt) 
     19        CALL init_physics_dcmip 
    2120       
    2221      CASE DEFAULT 
  • codes/icosagcm/trunk/src/physics_dcmip.f90

    r81 r98  
    33  PRIVATE 
    44   
    5   REAL(rstd),SAVE :: dt 
    65  INTEGER,SAVE :: testcase 
    76  PUBLIC init_physics, physics 
     
    1110CONTAINS 
    1211 
    13   SUBROUTINE init_physics(dt_in) 
     12  SUBROUTINE init_physics 
    1413  IMPLICIT NONE 
    15     REAL(rstd),INTENT(IN) :: dt_in 
    16  
    17     dt=dt_in 
     14 
    1815    testcase=1 
    1916    CALL getin("dcmip_physics",testcase) 
  • codes/icosagcm/trunk/src/time.f90

    r97 r98  
    1212  INTEGER,SAVE :: itaumax 
    1313   
    14   PUBLIC create_time_counter_header, update_time_counter, close_time_counter, init_time 
     14  PUBLIC create_time_counter_header, update_time_counter, close_time_counter, init_time,  & 
     15         dt, write_period, itau_out, itaumax 
    1516 
    1617 
  • codes/icosagcm/trunk/src/timeloop_gcm.f90

    r97 r98  
    3333  REAL(rstd),POINTER :: dtheta_rhodz(:,:),dtheta_rhodzm1(:,:),dtheta_rhodzm2(:,:) 
    3434 
    35   REAL(rstd) :: dt, run_length 
     35!  REAL(rstd) :: dt, run_length 
    3636  INTEGER :: ind 
    3737  INTEGER :: it,i,j,n 
    3838  CHARACTER(len=255) :: scheme 
    3939  INTEGER :: matsuno_period 
    40   INTEGER :: itaumax 
    41   REAL(rstd) ::write_period 
    42   INTEGER    :: itau_out 
    43    
    44   dt=90. 
    45   CALL getin('dt',dt) 
    46    
    47   itaumax=100 
    48   CALL getin('itaumax',itaumax) 
    49  
    50   run_length=dt*itaumax 
    51   CALL getin('run_length',run_length) 
    52   itaumax=run_length/dt 
    53   PRINT *,'itaumax=',itaumax 
    54   dt=dt/scale_factor 
     40!  INTEGER :: itaumax 
     41!  REAL(rstd) ::write_period 
     42!  INTEGER    :: itau_out 
     43   
     44!  dt=90. 
     45!  CALL getin('dt',dt) 
     46   
     47!  itaumax=100 
     48!  CALL getin('itaumax',itaumax) 
     49 
     50!  run_length=dt*itaumax 
     51!  CALL getin('run_length',run_length) 
     52!  itaumax=run_length/dt 
     53!  PRINT *,'itaumax=',itaumax 
     54!  dt=dt/scale_factor 
    5555 
    5656  scheme='adam_bashforth' 
     
    6161  IF (TRIM(scheme)=='leapfrog') matsuno_period=itaumax+1 
    6262 
    63   write_period=0 
    64   CALL getin('write_period',write_period) 
    65   write_period=write_period/scale_factor 
    66   itau_out=FLOOR(.5+write_period/dt) 
    67   PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 
     63!  write_period=0 
     64!  CALL getin('write_period',write_period) 
     65!  write_period=write_period/scale_factor 
     66!  itau_out=FLOOR(.5+write_period/dt) 
     67!  PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 
    6868  
    6969  CALL allocate_field(f_phis,field_t,type_real) 
     
    9595  CALL allocate_field(f_dtheta_rhodzm2,field_t,type_real,llm) 
    9696 
    97   CALL init_dissip(dt) 
    98   CALL init_caldyn(dt) 
    99   CALL init_guided(dt) 
    100   CALL init_advect_tracer(dt) 
    101   CALL init_physics(dt) 
     97  CALL init_dissip 
     98  CALL init_caldyn 
     99  CALL init_guided 
     100  CALL init_advect_tracer 
     101  CALL init_physics 
    102102   
    103103  CALL etat0(f_ps,f_phis,f_theta_rhodz,f_u, f_q) 
  • codes/icosagcm/trunk/src/timeloop_sw.f90

    r19 r98  
    2222  REAL(rstd),POINTER :: dh(:), dhm1(:), dhm2(:) 
    2323  REAL(rstd),POINTER :: du(:), dum1(:), dum2(:) 
    24   REAL(rstd) :: dt 
    2524  INTEGER :: ind 
    2625  INTEGER :: it,i,j,n 
    2726  INTEGER :: scheme 
    2827  INTEGER :: matsuno_period 
    29   INTEGER :: itaumax 
    3028   
    3129 
    32   dt=90. 
    33   CALL getin('dt',dt) 
    34  
    35   itaumax=100 
    36   CALL getin('itaumax',itaumax) 
    3730   
    3831  scheme=leapfrog_matsuno 
     
    6053 
    6154  CALL allocate_caldyn 
    62   CALL init_dissip(dt) 
     55  CALL init_dissip 
    6356 
    6457  CALL etat0_williamson(f_h,f_u) 
Note: See TracChangeset for help on using the changeset viewer.