Ignore:
Timestamp:
08/04/12 00:13:44 (12 years ago)
Author:
ymipsl
Message:

Put conforming IO for dcmip testcase

YM

File:
1 edited

Legend:

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

    r82 r97  
    11MODULE time_mod 
    2  
     2  use prec 
    33  PRIVATE 
    44 
     
    77  INTEGER,SAVE :: it 
    88 
    9   PUBLIC create_time_counter_header, update_time_counter, close_time_counter 
     9  REAL(rstd),SAVE :: dt 
     10  REAL(rstd),SAVE :: write_period 
     11  INTEGER,SAVE :: itau_out 
     12  INTEGER,SAVE :: itaumax 
     13   
     14  PUBLIC create_time_counter_header, update_time_counter, close_time_counter, init_time 
    1015 
    1116 
    1217 
    1318CONTAINS 
     19   
     20  SUBROUTINE init_time 
     21  USE earth_const 
     22  USE ioipsl 
     23  IMPLICIT NONE 
     24  REAL(rstd) :: run_length 
     25   
     26    dt=90. 
     27    CALL getin('dt',dt) 
     28 
     29    itaumax=100 
     30    CALL getin('itaumax',itaumax) 
     31 
     32    run_length=dt*itaumax 
     33    CALL getin('run_length',run_length) 
     34    itaumax=run_length/dt 
     35    PRINT *,'itaumax=',itaumax 
     36    dt=dt/scale_factor 
     37 
     38    write_period=0 
     39    CALL getin('write_period',write_period) 
     40    write_period=write_period/scale_factor 
     41    itau_out=FLOOR(.5+write_period/dt) 
     42    PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 
     43     
     44    CALL create_time_counter_header 
     45     
     46  END SUBROUTINE init_time 
    1447 
    1548  SUBROUTINE create_time_counter_header 
     
    2154  INTEGER :: timeid, dtid 
    2255  REAL(rstd) :: dt 
     56  CHARACTER(LEN=255) :: time_frequency 
     57   
    2358    status = NF90_CREATE('time_counter.nc', NF90_CLOBBER, ncid) 
    2459    status = NF90_DEF_DIM(ncid,'time_counter',NF90_UNLIMITED,timeid) 
     
    2863    status = NF90_PUT_ATT(ncid,time_counter_id,"calendar","noleap") 
    2964    status = NF90_DEF_VAR(ncid,'mdt',NF90_DOUBLE,varid=dtid) 
     65 
     66    WRITE(time_frequency,*) write_period 
     67    PRINT*,TRIM(time_frequency) 
     68    status = NF90_PUT_ATT(ncid,NF90_GLOBAL,"time_frequency",TRIM(time_frequency)//"s") 
     69 
    3070    status = NF90_ENDDEF(ncid)  
    3171 
Note: See TracChangeset for help on using the changeset viewer.