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

Last change on this file since 110 was 110, checked in by ymipsl, 12 years ago

Correction for dcmip moist physics
Temperature is ouput instead of virtual temperature.

YM

File size: 1.5 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(it,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  INTEGER,INTENT(IN)    :: it
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(it,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(it,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.