1 | ! cosp SUBROUTINE wrappers |
---|
2 | |
---|
3 | SUBROUTINE lmdz_cosp_wrapper_abort |
---|
4 | STOP 'COSP/COSP2/COSPV2 key undefined, must not enter in COSP wrappers ==> aborting' |
---|
5 | END SUBROUTINE lmdz_cosp_wrapper_abort |
---|
6 | |
---|
7 | #ifndef COSP |
---|
8 | |
---|
9 | SUBROUTINE phys_cosp(itap, dtime, freq_cosp, & |
---|
10 | ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, & |
---|
11 | ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, missing_val, & |
---|
12 | Nptslmdz, Nlevlmdz, lon, lat, presnivs, overlaplmdz, sunlit, & |
---|
13 | ref_liq, ref_ice, fracTerLic, u_wind, v_wind, phis, phi, ph, p, skt, t, & |
---|
14 | sh, rh, tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
15 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
16 | |
---|
17 | IMPLICIT NONE |
---|
18 | |
---|
19 | Integer :: Nptslmdz, Nlevlmdz ! Nb de points issus de physiq.F |
---|
20 | |
---|
21 | ! Declaration necessaires pour les sorties IOIPSL |
---|
22 | integer :: ii |
---|
23 | real :: ecrit_day, ecrit_hf, ecrit_mth, missing_val |
---|
24 | logical :: ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, ok_all_xml |
---|
25 | |
---|
26 | integer :: overlaplmdz ! overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz) |
---|
27 | real, dimension(Nptslmdz, Nlevlmdz) :: height, phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, mr_lsice, mr_ccliq, mr_ccice, & |
---|
28 | fl_lsrain, fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
29 | zlev, zlev_half, mr_ozone, radliq, radice, dtau_s, dem_s, ref_liq, ref_ice |
---|
30 | real, dimension(Nptslmdz, Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
31 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, phis, sunlit |
---|
32 | real, dimension(Nlevlmdz) :: presnivs |
---|
33 | integer :: itap, k, ip |
---|
34 | real :: dtime, freq_cosp |
---|
35 | real, dimension(2) :: time_bnds |
---|
36 | |
---|
37 | double precision :: d_dtime |
---|
38 | double precision, dimension(2) :: d_time_bnds |
---|
39 | |
---|
40 | CALL lmdz_cosp_wrapper_abort |
---|
41 | |
---|
42 | END SUBROUTINE phys_cosp |
---|
43 | |
---|
44 | #endif |
---|
45 | |
---|
46 | #ifndef COSP2 |
---|
47 | |
---|
48 | subroutine phys_cosp2( itap,dtime,freq_cosp, ok_mensuelCOSP, ok_journeCOSP, & |
---|
49 | ok_hfCOSP, ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, & |
---|
50 | missing_val, Nptslmdz, Nlevlmdz, lon, lat, presnivs, & |
---|
51 | overlaplmdz, sunlit, ref_liq, ref_ice, fracTerLic, & |
---|
52 | u_wind, v_wind, phis, phi, ph, p, skt, t, sh, rh, & |
---|
53 | tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
54 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
55 | |
---|
56 | IMPLICIT NONE |
---|
57 | |
---|
58 | !----------------------------- Input variables from LMDZ-GCM ------------------------------- |
---|
59 | integer :: overlaplmdz ! overlap type: 1=max, |
---|
60 | ! 2=rand, 3=max/rand |
---|
61 | logical :: ok_mensuelcosp, ok_journecosp, ok_hfcosp, ok_all_xml |
---|
62 | real :: ecrit_mth, ecrit_day, ecrit_hf, missing_val |
---|
63 | integer :: nptslmdz, nlevlmdz |
---|
64 | real, dimension(Nptslmdz,Nlevlmdz) :: phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, & |
---|
65 | mr_lsice, mr_ccliq, mr_ccice, fl_lsrain, & |
---|
66 | fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
67 | zlev, zlev_half, mr_ozone, radliq, radice, & |
---|
68 | dtau_s, dem_s, dtau_c, dem_c, ref_liq, ref_ice |
---|
69 | real, dimension(Nptslmdz,Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
70 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, & |
---|
71 | phis, sunlit |
---|
72 | real, dimension(Nptslmdz) :: land ! variables intermediaire pour masque TerLic |
---|
73 | real, dimension(Nlevlmdz) :: presnivs |
---|
74 | integer :: itap, k, ip |
---|
75 | real :: dtime, freq_cosp |
---|
76 | real, dimension(2) :: time_bnds |
---|
77 | |
---|
78 | double precision :: d_dtime |
---|
79 | double precision, dimension(2) :: d_time_bnds |
---|
80 | |
---|
81 | CALL lmdz_cosp_wrapper_abort |
---|
82 | |
---|
83 | end subroutine phys_cosp2 |
---|
84 | |
---|
85 | #endif |
---|
86 | |
---|
87 | #ifndef COSPV2 |
---|
88 | ! |
---|
89 | subroutine lmdz_cosp_interface(itap, dtime, freq_cosp, ok_mensuelCOSP, ok_journeCOSP, & |
---|
90 | ok_hfCOSP, ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, & |
---|
91 | missing_val, Nptslmdz, Nlevlmdz, lon, lat, presnivs, & |
---|
92 | overlaplmdz, sunlit, ref_liq, ref_ice, fracTerLic, & |
---|
93 | u_wind, v_wind, phis, phi, ph, p, skt, t, sh, rh, & |
---|
94 | tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
95 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
96 | |
---|
97 | integer :: Nptslmdz, Nlevlmdz ! Nb de points issus de physiq.F |
---|
98 | real :: ecrit_day, ecrit_hf, ecrit_mth, missing_val |
---|
99 | logical :: ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, ok_all_xml |
---|
100 | integer :: overlaplmdz ! overlap type: 1=max, |
---|
101 | ! 2=rand, 3=max/rand |
---|
102 | real, dimension(Nptslmdz,Nlevlmdz) :: phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, & |
---|
103 | mr_lsice, mr_ccliq, mr_ccice, fl_lsrain, & |
---|
104 | fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
105 | zlev, zlev_half, mr_ozone, radliq, radice, & |
---|
106 | dtau_s, dem_s, dtau_c, dem_c, ref_liq, ref_ice |
---|
107 | real, dimension(Nptslmdz,Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
108 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, & |
---|
109 | phis, sunlit |
---|
110 | real, dimension(Nptslmdz) :: land ! variables intermediaire pour masque TerLic |
---|
111 | real, dimension(Nlevlmdz) :: presnivs |
---|
112 | integer :: itap, k, ip |
---|
113 | real :: dtime, freq_cosp |
---|
114 | real, dimension(2) :: time_bnds |
---|
115 | |
---|
116 | double precision :: d_dtime |
---|
117 | double precision, dimension(2) :: d_time_bnds |
---|
118 | |
---|
119 | |
---|
120 | CALL lmdz_cosp_wrapper_abort |
---|
121 | |
---|
122 | end subroutine lmdz_cosp_interface |
---|
123 | |
---|
124 | #endif |
---|