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

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

Lagrangian vertical coordinate tested with test4.1 - 60 MPI procs

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