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
RevLine 
[17]1MODULE caldyn_mod
[19]2  USE icosa
[17]3  PRIVATE
4  CHARACTER(LEN=255),SAVE :: caldyn_type
5 
6  PUBLIC init_caldyn, caldyn
7 
8CONTAINS
9
[98]10  SUBROUTINE init_caldyn
[19]11  USE icosa
[17]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')
[98]21        CALL init_caldyn_gcm
[139]22      CASE('adv')
23        CALL init_caldyn_adv
[17]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 
[134]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)
[19]34  USE icosa
[17]35  USE caldyn_gcm_mod, ONLY : caldyn_gcm=>caldyn
36  USE caldyn_adv_mod, ONLY : caldyn_adv=>caldyn
37  IMPLICIT NONE
[129]38  LOGICAL,INTENT(IN)    :: write_out
[17]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(:)
[110]43  TYPE(t_field),POINTER :: f_q(:)
[134]44  TYPE(t_field),POINTER :: f_hflux(:)
45  TYPE(t_field),POINTER :: f_wflux(:)
[17]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')
[134]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)
[139]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)
[17]57    END SELECT
58 
59  END SUBROUTINE caldyn 
60
61END MODULE caldyn_mod
Note: See TracBrowser for help on using the repository browser.