source: codes/icosagcm/trunk/src/caldyn.f90 @ 129

Last change on this file since 129 was 129, checked in by dubos, 11 years ago

Changed timeloop design for multistage schemes

File size: 1.6 KB
Line 
1MODULE caldyn_mod
2  USE icosa
3  PRIVATE
4  CHARACTER(LEN=255),SAVE :: caldyn_type
5 
6  PUBLIC init_caldyn, caldyn
7 
8CONTAINS
9
10  SUBROUTINE init_caldyn
11  USE icosa
12  USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn
13  USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn
14  IMPLICIT NONE
15 
16    caldyn_type="gcm"
17    CALL getin('caldyn',caldyn_type)
18   
19    SELECT CASE (TRIM(caldyn_type))
20      CASE('gcm')
21        CALL init_caldyn_gcm
22      CASE('adv')
23        CALL init_caldyn_adv
24      CASE DEFAULT
25        PRINT*,'Bad selector for variable caldyn : <', TRIM(caldyn_type),'> options are <gcm>, <adv>'
26        STOP
27    END SELECT
28       
29     
30  END SUBROUTINE init_caldyn
31 
32  SUBROUTINE caldyn(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, f_dps, f_dtheta_rhodz, f_du)
33  USE icosa
34  USE caldyn_gcm_mod, ONLY : caldyn_gcm=>caldyn
35  USE caldyn_adv_mod, ONLY : caldyn_adv=>caldyn
36  IMPLICIT NONE
37  LOGICAL,INTENT(IN)    :: write_out
38  TYPE(t_field),POINTER :: f_phis(:)
39  TYPE(t_field),POINTER :: f_ps(:)
40  TYPE(t_field),POINTER :: f_theta_rhodz(:)
41  TYPE(t_field),POINTER :: f_u(:)
42  TYPE(t_field),POINTER :: f_q(:)
43  TYPE(t_field),POINTER :: f_dps(:)
44  TYPE(t_field),POINTER :: f_dtheta_rhodz(:)
45  TYPE(t_field),POINTER :: f_du(:)
46
47    SELECT CASE (TRIM(caldyn_type))
48      CASE('gcm')
49        CALL caldyn_gcm(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, f_dps, f_dtheta_rhodz, f_du)
50      CASE('adv')
51        CALL caldyn_adv(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, f_dps, f_dtheta_rhodz, f_du)
52    END SELECT
53 
54  END SUBROUTINE caldyn 
55
56END MODULE caldyn_mod
Note: See TracBrowser for help on using the repository browser.