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

Last change on this file since 151 was 151, checked in by ymipsl, 11 years ago

Implementation of mixte parallelism MPI/OpenMP into src directory

YM

File size: 1.7 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, &
33       f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
34  USE icosa
35  USE caldyn_gcm_mod, ONLY : caldyn_gcm=>caldyn
36  USE caldyn_adv_mod, ONLY : caldyn_adv=>caldyn
37  IMPLICIT NONE
38  LOGICAL,INTENT(IN)    :: write_out
39  TYPE(t_field),POINTER :: f_phis(:)
40  TYPE(t_field),POINTER :: f_ps(:)
41  TYPE(t_field),POINTER :: f_theta_rhodz(:)
42  TYPE(t_field),POINTER :: f_u(:)
43  TYPE(t_field),POINTER :: f_q(:)
44  TYPE(t_field),POINTER :: f_hflux(:)
45  TYPE(t_field),POINTER :: f_wflux(:)
46  TYPE(t_field),POINTER :: f_dps(:)
47  TYPE(t_field),POINTER :: f_dtheta_rhodz(:)
48  TYPE(t_field),POINTER :: f_du(:)
49
50    SELECT CASE (TRIM(caldyn_type))
51      CASE('gcm')
52        CALL caldyn_gcm(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
53             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
54      CASE('adv')
55        CALL caldyn_adv(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
56             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
57    END SELECT
58 
59  END SUBROUTINE caldyn 
60
61END MODULE caldyn_mod
Note: See TracBrowser for help on using the repository browser.