source: codes/icosagcm/devel/src/dynamics/caldyn.f90 @ 912

Last change on this file since 912 was 912, checked in by dubos, 5 years ago

devel : cosmetic changes to comply with XCodeML

File size: 2.2 KB
RevLine 
[17]1MODULE caldyn_mod
[19]2  USE icosa
[912]3  IMPLICIT NONE
[17]4  PRIVATE
[562]5  SAVE
[912]6  CHARACTER(LEN=255) :: caldyn_type
[186]7!$OMP THREADPRIVATE(caldyn_type)
[562]8 
[912]9  PUBLIC init_caldyn, caldyn, caldyn_BC
[17]10 
11CONTAINS
12
[98]13  SUBROUTINE init_caldyn
[912]14    USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn
15    USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn
[17]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  END SUBROUTINE init_caldyn
[251]31
[350]32  SUBROUTINE caldyn_BC(f_phis, f_geopot, f_wflux)
[251]33    USE caldyn_gcm_mod, ONLY : caldyn_gcm_BC=>caldyn_BC
34    IMPLICIT NONE
[350]35    TYPE(t_field), POINTER :: f_phis(:), f_geopot(:), f_wflux(:)
[251]36    SELECT CASE (TRIM(caldyn_type))
37    CASE('gcm')
[350]38       CALL caldyn_gcm_BC(f_phis, f_geopot, f_wflux)
[251]39    END SELECT
40  END SUBROUTINE caldyn_BC
[17]41 
[159]42  SUBROUTINE caldyn(write_out,f_phis, f_ps, f_mass, f_theta_rhodz, f_u, f_q, &
[350]43       f_geopot, f_hflux, f_wflux, f_dps, f_dmass, f_dtheta_rhodz, f_du)
[19]44  USE icosa
[17]45  USE caldyn_gcm_mod, ONLY : caldyn_gcm=>caldyn
46  USE caldyn_adv_mod, ONLY : caldyn_adv=>caldyn
47  IMPLICIT NONE
[129]48  LOGICAL,INTENT(IN)    :: write_out
[17]49  TYPE(t_field),POINTER :: f_phis(:)
50  TYPE(t_field),POINTER :: f_ps(:)
[159]51  TYPE(t_field),POINTER :: f_mass(:)
[17]52  TYPE(t_field),POINTER :: f_theta_rhodz(:)
53  TYPE(t_field),POINTER :: f_u(:)
[110]54  TYPE(t_field),POINTER :: f_q(:)
[350]55  TYPE(t_field),POINTER :: f_geopot(:)
[134]56  TYPE(t_field),POINTER :: f_hflux(:)
57  TYPE(t_field),POINTER :: f_wflux(:)
[360]58  TYPE(t_field) :: f_dps(:)
59  TYPE(t_field) :: f_dmass(:)
60  TYPE(t_field) :: f_dtheta_rhodz(:)
61  TYPE(t_field) :: f_du(:)
[17]62
63    SELECT CASE (TRIM(caldyn_type))
64      CASE('gcm')
[159]65        CALL caldyn_gcm(write_out,f_phis, f_ps, f_mass, f_theta_rhodz, f_u, f_q, &
[350]66             f_geopot, f_hflux, f_wflux, f_dps, f_dmass, f_dtheta_rhodz, f_du)
[139]67      CASE('adv')
68        CALL caldyn_adv(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
69             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
[17]70    END SELECT
71 
[360]72  END SUBROUTINE caldyn
[17]73
74END MODULE caldyn_mod
Note: See TracBrowser for help on using the repository browser.