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

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

Set constant sign for wind way :
ne(ij,right)==ne_right=1
ne(ij,rup)==ne_rup=-1
ne(ij,lup)==ne_lup=1
ne(ij,left)==ne_left=-1
ne(ij,ldown)==ne_ldown=1
ne(ij,rdown)==ne_rdown=-1

Modified transfert function to be compliant for this convention.

YM

File size: 2.0 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_gcm_opt_mod, ONLY : init_caldyn_gcm_opt=>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')
22        CALL init_caldyn_gcm
23      CASE('gcm_opt')
24        CALL init_caldyn_gcm_opt
25      CASE('adv')
26        CALL init_caldyn_adv
27      CASE DEFAULT
28        PRINT*,'Bad selector for variable caldyn : <', TRIM(caldyn_type),'> options are <gcm>, <adv>'
29        STOP
30    END SELECT
31       
32     
33  END SUBROUTINE init_caldyn
34 
35  SUBROUTINE caldyn(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
36       f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
37  USE icosa
38  USE caldyn_gcm_mod, ONLY : caldyn_gcm=>caldyn
39  USE caldyn_gcm_opt_mod, ONLY : caldyn_gcm_opt=>caldyn
40  USE caldyn_adv_mod, ONLY : caldyn_adv=>caldyn
41  IMPLICIT NONE
42  LOGICAL,INTENT(IN)    :: write_out
43  TYPE(t_field),POINTER :: f_phis(:)
44  TYPE(t_field),POINTER :: f_ps(:)
45  TYPE(t_field),POINTER :: f_theta_rhodz(:)
46  TYPE(t_field),POINTER :: f_u(:)
47  TYPE(t_field),POINTER :: f_q(:)
48  TYPE(t_field),POINTER :: f_hflux(:)
49  TYPE(t_field),POINTER :: f_wflux(:)
50  TYPE(t_field),POINTER :: f_dps(:)
51  TYPE(t_field),POINTER :: f_dtheta_rhodz(:)
52  TYPE(t_field),POINTER :: f_du(:)
53
54    SELECT CASE (TRIM(caldyn_type))
55      CASE('gcm')
56        CALL caldyn_gcm(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
57             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
58      CASE('gcm_opt')
59        CALL caldyn_gcm_opt(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
60             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
61      CASE('adv')
62        CALL caldyn_adv(write_out,f_phis, f_ps, f_theta_rhodz, f_u, f_q, &
63             f_hflux, f_wflux, f_dps, f_dtheta_rhodz, f_du)
64    END SELECT
65 
66  END SUBROUTINE caldyn 
67
68END MODULE caldyn_mod
Note: See TracBrowser for help on using the repository browser.