Changeset 98
- Timestamp:
- 08/04/12 01:10:06 (12 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/advect_tracer.f90
r30 r98 3 3 PRIVATE 4 4 INTEGER,PARAMETER::iapp_tracvl= 3 5 REAL(rstd),SAVE :: dt6 5 7 6 TYPE(t_field),POINTER :: f_normal(:) … … 13 12 CONTAINS 14 13 15 SUBROUTINE init_advect_tracer (dt_in)14 SUBROUTINE init_advect_tracer 16 15 USE advect_mod 17 16 IMPLICIT NONE 18 REAL(rstd),INTENT(IN) :: dt_in19 17 REAL(rstd),POINTER :: tangent(:,:) 20 18 REAL(rstd),POINTER :: normal(:,:) 21 19 INTEGER :: ind 22 20 23 dt=dt_in24 21 CALL allocate_field(f_normal,field_u,type_real,3) 25 22 CALL allocate_field(f_tangent,field_u,type_real,3) … … 174 171 TYPE(t_field),POINTER,SAVE :: f_zq(:) 175 172 176 REAL(rstd)::bigt ,dt173 REAL(rstd)::bigt 177 174 REAL(rstd),POINTER :: q(:,:,:) 178 175 REAL(rstd),POINTER :: u(:,:) -
codes/icosagcm/trunk/src/caldyn.f90
r19 r98 8 8 CONTAINS 9 9 10 SUBROUTINE init_caldyn (dt)10 SUBROUTINE init_caldyn 11 11 USE icosa 12 12 USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn 13 13 USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn 14 14 IMPLICIT NONE 15 REAL(rstd),INTENT(IN) :: dt16 15 17 16 caldyn_type="gcm" … … 20 19 SELECT CASE (TRIM(caldyn_type)) 21 20 CASE('gcm') 22 CALL init_caldyn_gcm (dt)21 CALL init_caldyn_gcm 23 22 CASE('adv') 24 CALL init_caldyn_adv (dt)23 CALL init_caldyn_adv 25 24 CASE DEFAULT 26 25 PRINT*,'Bad selector for variable caldyn : <', TRIM(caldyn_type),'> options are <gcm>, <adv>' -
codes/icosagcm/trunk/src/caldyn_adv.f90
r70 r98 9 9 REAL(rstd),POINTER :: out_z(:,:) 10 10 11 INTEGER :: itau_out12 11 13 12 CONTAINS 14 13 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 26 18 CALL allocate_caldyn 27 19 -
codes/icosagcm/trunk/src/caldyn_gcm.f90
r97 r98 2 2 USE icosa 3 3 4 INTEGER :: itau_out5 4 TYPE(t_field),POINTER :: f_out_u(:) 6 5 REAL(rstd),POINTER :: out_u(:,:) … … 13 12 CONTAINS 14 13 15 SUBROUTINE init_caldyn (dt)14 SUBROUTINE init_caldyn 16 15 USE icosa 17 16 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 27 18 CALL allocate_caldyn 28 19 -
codes/icosagcm/trunk/src/dissip_gcm.f90
r59 r98 44 44 END SUBROUTINE allocate_dissip 45 45 46 SUBROUTINE init_dissip (dt)46 SUBROUTINE init_dissip 47 47 USE icosa 48 48 USE disvert_mod … … 51 51 52 52 IMPLICIT NONE 53 REAL,INTENT(IN) :: dt54 53 55 54 TYPE(t_field),POINTER :: f_u(:) -
codes/icosagcm/trunk/src/dissip_sw.f90
r44 r98 25 25 END SUBROUTINE allocate_dissip 26 26 27 SUBROUTINE init_dissip (dt)27 SUBROUTINE init_dissip 28 28 USE icosa 29 29 30 30 IMPLICIT NONE 31 REAL,INTENT(IN) :: dt32 31 33 32 TYPE(t_field),POINTER :: f_u(:) -
codes/icosagcm/trunk/src/guided_mod.f90
r73 r98 6 6 7 7 8 SUBROUTINE init_guided (dt)8 SUBROUTINE init_guided 9 9 USE icosa 10 10 USE guided_ncar_mod, ONLY : init_guided_ncar => init_guided 11 11 IMPLICIT NONE 12 REAL(rstd),INTENT(IN) :: dt13 12 14 13 guided_type='none' -
codes/icosagcm/trunk/src/physics.f90
r81 r98 6 6 CONTAINS 7 7 8 SUBROUTINE init_physics (dt)8 SUBROUTINE init_physics 9 9 USE icosa 10 10 USE physics_dcmip_mod, init_physics_dcmip=>init_physics 11 11 IMPLICIT NONE 12 REAL(rstd),INTENT(IN) :: dt13 12 14 13 CALL getin("physics",physics_type) … … 18 17 19 18 CASE ('dcmip') 20 CALL init_physics_dcmip (dt)19 CALL init_physics_dcmip 21 20 22 21 CASE DEFAULT -
codes/icosagcm/trunk/src/physics_dcmip.f90
r81 r98 3 3 PRIVATE 4 4 5 REAL(rstd),SAVE :: dt6 5 INTEGER,SAVE :: testcase 7 6 PUBLIC init_physics, physics … … 11 10 CONTAINS 12 11 13 SUBROUTINE init_physics (dt_in)12 SUBROUTINE init_physics 14 13 IMPLICIT NONE 15 REAL(rstd),INTENT(IN) :: dt_in 16 17 dt=dt_in 14 18 15 testcase=1 19 16 CALL getin("dcmip_physics",testcase) -
codes/icosagcm/trunk/src/time.f90
r97 r98 12 12 INTEGER,SAVE :: itaumax 13 13 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 15 16 16 17 -
codes/icosagcm/trunk/src/timeloop_gcm.f90
r97 r98 33 33 REAL(rstd),POINTER :: dtheta_rhodz(:,:),dtheta_rhodzm1(:,:),dtheta_rhodzm2(:,:) 34 34 35 REAL(rstd) :: dt, run_length35 ! REAL(rstd) :: dt, run_length 36 36 INTEGER :: ind 37 37 INTEGER :: it,i,j,n 38 38 CHARACTER(len=255) :: scheme 39 39 INTEGER :: matsuno_period 40 INTEGER :: itaumax41 REAL(rstd) ::write_period42 INTEGER :: itau_out43 44 dt=90.45 CALL getin('dt',dt)46 47 itaumax=10048 CALL getin('itaumax',itaumax)49 50 run_length=dt*itaumax51 CALL getin('run_length',run_length)52 itaumax=run_length/dt53 PRINT *,'itaumax=',itaumax54 dt=dt/scale_factor40 ! 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 55 55 56 56 scheme='adam_bashforth' … … 61 61 IF (TRIM(scheme)=='leapfrog') matsuno_period=itaumax+1 62 62 63 write_period=064 CALL getin('write_period',write_period)65 write_period=write_period/scale_factor66 itau_out=FLOOR(.5+write_period/dt)67 PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out63 ! 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 68 68 69 69 CALL allocate_field(f_phis,field_t,type_real) … … 95 95 CALL allocate_field(f_dtheta_rhodzm2,field_t,type_real,llm) 96 96 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 102 102 103 103 CALL etat0(f_ps,f_phis,f_theta_rhodz,f_u, f_q) -
codes/icosagcm/trunk/src/timeloop_sw.f90
r19 r98 22 22 REAL(rstd),POINTER :: dh(:), dhm1(:), dhm2(:) 23 23 REAL(rstd),POINTER :: du(:), dum1(:), dum2(:) 24 REAL(rstd) :: dt25 24 INTEGER :: ind 26 25 INTEGER :: it,i,j,n 27 26 INTEGER :: scheme 28 27 INTEGER :: matsuno_period 29 INTEGER :: itaumax30 28 31 29 32 dt=90.33 CALL getin('dt',dt)34 35 itaumax=10036 CALL getin('itaumax',itaumax)37 30 38 31 scheme=leapfrog_matsuno … … 60 53 61 54 CALL allocate_caldyn 62 CALL init_dissip (dt)55 CALL init_dissip 63 56 64 57 CALL etat0_williamson(f_h,f_u)
Note: See TracChangeset
for help on using the changeset viewer.