Changeset 339


Ignore:
Timestamp:
07/15/15 16:06:42 (9 years ago)
Author:
dubos
Message:

Kinnmark (1984) RK2.5 scheme

File:
1 edited

Legend:

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

    r327 r339  
    66  PUBLIC :: init_timeloop, timeloop 
    77 
    8   INTEGER, PARAMETER :: euler=1, rk4=2, mlf=3 
     8  INTEGER, PARAMETER :: euler=1, rk4=2, mlf=3, rk25=4 
    99  INTEGER, PARAMETER :: itau_sync=10 
     10  REAL(rstd), DIMENSION(4), PARAMETER :: coef_rk4 = (/ .25, 1./3., .5, 1. /) 
     11  REAL(rstd), DIMENSION(5), PARAMETER :: coef_rk25 = (/ .25, 1./6., 3./8., .5, 1. /) 
    1012 
    1113  TYPE(t_message),SAVE :: req_ps0, req_mass0, req_theta_rhodz0, req_u0, req_q0 
     
    9597        scheme=rk4 
    9698        nb_stage=4 
     99      CASE ('RK2.5') 
     100        scheme=rk25 
     101        nb_stage=5 
    97102      CASE ('leapfrog_matsuno') 
    98103        scheme=mlf 
     
    248253          CALL euler_scheme(.TRUE.) 
    249254       CASE (rk4) 
    250           CALL rk_scheme(stage) 
     255          CALL rk_scheme(stage, coef_rk4) 
     256       CASE (rk25) 
     257          CALL rk_scheme(stage, coef_rk25) 
    251258       CASE (mlf) 
    252259          CALL  leapfrog_matsuno_scheme(stage) 
     
    388395    END SUBROUTINE Euler_scheme 
    389396 
    390     SUBROUTINE RK_scheme(stage) 
     397    SUBROUTINE RK_scheme(stage,coef) 
    391398      IMPLICIT NONE 
    392399      INTEGER :: ind, stage 
    393       REAL(rstd), DIMENSION(4), PARAMETER :: coef = (/ .25, 1./3., .5, 1. /) 
     400      REAL(rstd), INTENT(IN) :: coef(:) 
    394401      REAL(rstd) :: tau 
    395402      INTEGER :: i,j,ij,l 
Note: See TracChangeset for help on using the changeset viewer.