[907] | 1 | ! Abderrahmane 12 2007 |
---|
| 2 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 3 | !!! Ecreture des Sorties du modele dans les fichiers Netcdf : |
---|
| 4 | ! histmth.nc : moyennes mensuelles |
---|
| 5 | ! histday.nc : moyennes journalieres |
---|
| 6 | ! histhf.nc : moyennes toutes les 3 heures |
---|
| 7 | ! histins.nc : valeurs instantanees |
---|
| 8 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 9 | |
---|
| 10 | MODULE phys_output_mod |
---|
| 11 | |
---|
| 12 | IMPLICIT NONE |
---|
| 13 | |
---|
[929] | 14 | integer, parameter :: nfiles = 4 |
---|
| 15 | logical, dimension(nfiles), save :: clef_files |
---|
| 16 | integer, dimension(nfiles), save :: lev_files |
---|
| 17 | integer, dimension(nfiles), save :: nid_files |
---|
| 18 | |
---|
| 19 | integer, dimension(nfiles), save :: nhorim, nvertm |
---|
| 20 | real, dimension(nfiles), save :: zstophym, zoutm |
---|
| 21 | CHARACTER(len=20), dimension(nfiles), save :: type_ecri |
---|
| 22 | |
---|
[907] | 23 | ! integer, save :: nid_hf3d |
---|
| 24 | |
---|
| 25 | !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 26 | ! entre [lonmin_reg,lonmax_reg] et [latmin_reg,latmax_reg] |
---|
| 27 | |
---|
[932] | 28 | logical, dimension(nfiles), save :: ok_reglim = (/ .false., .false., .false., .false. /) |
---|
[929] | 29 | real, dimension(nfiles), save :: lonmin_reg = (/ 0., -45., 0., 0. /) |
---|
| 30 | real, dimension(nfiles), save :: lonmax_reg = (/ 90., 45., 90., 90. /) |
---|
| 31 | real, dimension(nfiles), save :: latmin_reg = (/ 0., -45., 0., 0. /) |
---|
[907] | 32 | real, dimension(nfiles), save :: latmax_reg = (/ 90., 90., 90., 90. /) |
---|
| 33 | |
---|
| 34 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 35 | !! Definition pour chaque variable du niveau d ecriture dans chaque fichier |
---|
| 36 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/ histmth, histday, histhf, histins /)!!!!!!!!!!!! |
---|
| 37 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 38 | |
---|
| 39 | !!! 1D |
---|
| 40 | integer, dimension(nfiles) , save :: flag_phis = (/ 1, 1, 10, 1 /) |
---|
| 41 | integer, dimension(nfiles) , save :: flag_aire = (/ 1, 1, 10, 1 /) |
---|
| 42 | integer, dimension(nfiles) , save :: flag_contfracATM = (/ 10, 1, 1, 10 /) |
---|
| 43 | integer, dimension(nfiles) , save :: flag_contfracOR = (/ 10, 1, 1, 10 /) |
---|
| 44 | integer, dimension(nfiles) , save :: flag_aireTER = (/ 10, 10, 1, 10 /) |
---|
| 45 | |
---|
| 46 | !!! 2D |
---|
| 47 | integer, dimension(nfiles) , save :: flag_flat = (/ 10, 1, 10, 10 /) |
---|
| 48 | integer, dimension(nfiles) , save :: flag_slp = (/ 1, 1, 1, 10 /) |
---|
| 49 | integer, dimension(nfiles) , save :: flag_tsol = (/ 1, 1, 1, 1 /) |
---|
| 50 | integer, dimension(nfiles) , save :: flag_t2m = (/ 1, 1, 1, 1 /) |
---|
| 51 | integer, dimension(nfiles) , save :: flag_t2m_min = (/ 1, 1, 10, 10 /) |
---|
| 52 | integer, dimension(nfiles) , save :: flag_t2m_max = (/ 1, 1, 10, 10 /) |
---|
| 53 | integer, dimension(nfiles) , save :: flag_t2m_sol = (/ 10, 4, 10, 10 /) |
---|
| 54 | integer, dimension(nfiles) , save :: flag_wind10m = (/ 1, 1, 1, 10 /) |
---|
| 55 | integer, dimension(nfiles) , save :: flag_wind10max = (/ 10, 1, 10, 10 /) |
---|
| 56 | integer, dimension(nfiles) , save :: flag_sicf = (/ 1, 1, 10, 10 /) |
---|
| 57 | integer, dimension(nfiles) , save :: flag_q2m = (/ 1, 1, 1, 1 /) |
---|
| 58 | integer, dimension(nfiles) , save :: flag_u10m = (/ 1, 1, 1, 1 /) |
---|
| 59 | integer, dimension(nfiles) , save :: flag_v10m = (/ 1, 1, 1, 1 /) |
---|
| 60 | integer, dimension(nfiles) , save :: flag_psol = (/ 1, 1, 1, 1 /) |
---|
| 61 | integer, dimension(nfiles) , save :: flag_qsurf = (/ 1, 10, 10, 10 /) |
---|
| 62 | |
---|
| 63 | integer, dimension(nfiles) , save :: flag_u10m_sol = (/ 10, 4, 10, 10 /) |
---|
| 64 | integer, dimension(nfiles) , save :: flag_v10m_sol = (/ 10, 4, 10, 10 /) |
---|
| 65 | |
---|
| 66 | integer, dimension(nfiles) , save :: flag_qsol = (/ 1, 10, 10, 1 /) |
---|
| 67 | |
---|
| 68 | integer, dimension(nfiles),save :: flag_ndayrain = (/ 1, 10, 10, 10 /) |
---|
| 69 | integer, dimension(nfiles),save :: flag_precip(nfiles)= (/ 1, 1, 1, 1 /) |
---|
| 70 | integer, dimension(nfiles), save :: flag_plul(nfiles) = (/ 1, 1, 10, 1 /) |
---|
| 71 | |
---|
| 72 | integer, dimension(nfiles) , save :: flag_pluc = (/ 1, 1, 10, 1 /) |
---|
| 73 | integer, dimension(nfiles) , save :: flag_snow = (/ 1, 1, 10, 1 /) |
---|
| 74 | integer, dimension(nfiles) , save :: flag_evap = (/ 1, 1, 10, 1 /) |
---|
| 75 | integer, dimension(nfiles) , save :: flag_tops = (/ 1, 1, 10, 10 /) |
---|
| 76 | integer, dimension(nfiles) , save :: flag_tops0 = (/ 1, 5, 10, 10 /) |
---|
| 77 | integer, dimension(nfiles) , save :: flag_topl = (/ 1, 1, 10, 1 /) |
---|
| 78 | integer, dimension(nfiles) , save :: flag_topl0 = (/ 1, 5, 10, 10 /) |
---|
| 79 | integer, dimension(nfiles) , save :: flag_SWupTOA = (/ 1, 4, 10, 10 /) |
---|
| 80 | integer, dimension(nfiles) , save :: flag_SWupTOAclr = (/ 1, 4, 10, 10 /) |
---|
| 81 | integer, dimension(nfiles) , save :: flag_SWdnTOA = (/ 1, 4, 10, 10 /) |
---|
| 82 | integer, dimension(nfiles) , save :: flag_SWdnTOAclr = (/ 1, 4, 10, 10 /) |
---|
| 83 | integer, dimension(nfiles) , save :: flag_SWup200 = (/ 1, 10, 10, 10 /) |
---|
| 84 | integer, dimension(nfiles) , save :: flag_SWup200clr = (/ 10, 1, 10, 10 /) |
---|
| 85 | integer, dimension(nfiles) , save :: flag_SWdn200 = (/ 1, 10, 10, 10 /) |
---|
| 86 | integer, dimension(nfiles) , save :: flag_SWdn200clr = (/ 10, 1, 10, 10 /) |
---|
| 87 | |
---|
| 88 | ! arajouter |
---|
| 89 | ! integer, dimension(nfiles) , save :: flag_LWupTOA = (/ 1, 4, 10, 10 /) |
---|
| 90 | ! integer, dimension(nfiles) , save :: flag_LWupTOAclr = (/ 1, 4, 10, 10 /) |
---|
| 91 | ! integer, dimension(nfiles) , save :: flag_LWdnTOA = (/ 1, 4, 10, 10 /) |
---|
| 92 | ! integer, dimension(nfiles) , save :: flag_LWdnTOAclr = (/ 1, 4, 10, 10 /) |
---|
| 93 | |
---|
| 94 | integer, dimension(nfiles) , save :: flag_LWup200 = (/ 1, 10, 10, 10 /) |
---|
| 95 | integer, dimension(nfiles) , save :: flag_LWup200clr = (/ 1, 10, 10, 10 /) |
---|
| 96 | integer, dimension(nfiles) , save :: flag_LWdn200 = (/ 1, 10, 10, 10 /) |
---|
| 97 | integer, dimension(nfiles) , save :: flag_LWdn200clr = (/ 1, 10, 10, 10 /) |
---|
| 98 | integer, dimension(nfiles) , save :: flag_sols = (/ 1, 1, 10, 1 /) |
---|
| 99 | integer, dimension(nfiles) , save :: flag_sols0 = (/ 1, 5, 10, 10 /) |
---|
| 100 | integer, dimension(nfiles) , save :: flag_soll = (/ 1, 1, 10, 1 /) |
---|
| 101 | integer, dimension(nfiles) , save :: flag_soll0 = (/ 1, 5, 10, 10 /) |
---|
| 102 | integer, dimension(nfiles) , save :: flag_radsol = (/ 1, 1, 10, 10 /) |
---|
| 103 | integer, dimension(nfiles) , save :: flag_SWupSFC = (/ 1, 4, 10, 10 /) |
---|
| 104 | integer, dimension(nfiles) , save :: flag_SWupSFCclr = (/ 1, 4, 10, 10 /) |
---|
| 105 | integer, dimension(nfiles) , save :: flag_SWdnSFC = (/ 1, 1, 10, 10 /) |
---|
| 106 | integer, dimension(nfiles) , save :: flag_SWdnSFCclr = (/ 1, 4, 10, 10 /) |
---|
| 107 | integer, dimension(nfiles) , save :: flag_LWupSFC = (/ 1, 4, 10, 10 /) |
---|
| 108 | integer, dimension(nfiles) , save :: flag_LWupSFCclr = (/ 1, 4, 10, 10 /) |
---|
| 109 | integer, dimension(nfiles) , save :: flag_LWdnSFC = (/ 1, 4, 10, 10 /) |
---|
| 110 | integer, dimension(nfiles) , save :: flag_LWdnSFCclr = (/ 1, 4, 10, 10 /) |
---|
| 111 | integer, dimension(nfiles) , save :: flag_bils = (/ 1, 2, 10, 1 /) |
---|
| 112 | integer, dimension(nfiles) , save :: flag_sens = (/ 1, 1, 10, 1 /) |
---|
| 113 | integer, dimension(nfiles) , save :: flag_fder = (/ 1, 2, 10, 1 /) |
---|
| 114 | integer, dimension(nfiles) , save :: flag_ffonte = (/ 1, 10, 10, 10 /) |
---|
| 115 | integer, dimension(nfiles) , save :: flag_fqcalving = (/ 1, 10, 10, 10 /) |
---|
| 116 | integer, dimension(nfiles) , save :: flag_fqfonte = (/ 1, 10, 10, 10 /) |
---|
| 117 | |
---|
| 118 | integer, dimension(nfiles) , save :: flag_taux_sol = (/ 1, 4, 10, 1 /) |
---|
| 119 | integer, dimension(nfiles) , save :: flag_tauy_sol = (/ 1, 4, 10, 1 /) |
---|
| 120 | |
---|
| 121 | integer, dimension(nfiles) , save :: flag_pourc_sol = (/ 1, 4, 10, 1 /) |
---|
| 122 | integer, dimension(nfiles) , save :: flag_fract_sol = (/ 1, 4, 10, 1 /) |
---|
| 123 | integer, dimension(nfiles) , save :: flag_tsol_sol = (/ 1, 4, 10, 1 /) |
---|
| 124 | integer, dimension(nfiles) , save :: flag_sens_sol = (/ 1, 4, 10, 1 /) |
---|
| 125 | integer, dimension(nfiles) , save :: flag_lat_sol = (/ 1, 4, 10, 1 /) |
---|
| 126 | integer, dimension(nfiles) , save :: flag_flw_sol = (/ 1, 10, 10, 10 /) |
---|
| 127 | integer, dimension(nfiles) , save :: flag_fsw_sol = (/ 1, 10, 10, 10 /) |
---|
| 128 | integer, dimension(nfiles) , save :: flag_wbils_sol = (/ 1, 10, 10, 10 /) |
---|
| 129 | integer, dimension(nfiles) , save :: flag_wbilo_sol = (/ 1, 10, 10, 10 /) |
---|
| 130 | |
---|
| 131 | integer, dimension(nfiles) , save :: flag_cdrm = (/ 1, 10, 10, 1 /) |
---|
| 132 | integer, dimension(nfiles) , save :: flag_cdrh = (/ 1, 10, 10, 1 /) |
---|
| 133 | integer, dimension(nfiles) , save :: flag_cldl = (/ 1, 1, 10, 10 /) |
---|
| 134 | integer, dimension(nfiles) , save :: flag_cldm = (/ 1, 1, 10, 10 /) |
---|
| 135 | integer, dimension(nfiles) , save :: flag_cldh = (/ 1, 1, 10, 10 /) |
---|
| 136 | integer, dimension(nfiles) , save :: flag_cldt = (/ 1, 1, 2, 10 /) |
---|
| 137 | integer, dimension(nfiles) , save :: flag_cldq = (/ 1, 1, 10, 10 /) |
---|
| 138 | integer, dimension(nfiles) , save :: flag_lwp = (/ 1, 5, 10, 10 /) |
---|
| 139 | integer, dimension(nfiles) , save :: flag_iwp = (/ 1, 5, 10, 10 /) |
---|
| 140 | integer, dimension(nfiles) , save :: flag_ue = (/ 1, 10, 10, 10 /) |
---|
| 141 | integer, dimension(nfiles) , save :: flag_ve = (/ 1, 10, 10, 10 /) |
---|
| 142 | integer, dimension(nfiles) , save :: flag_uq = (/ 1, 10, 10, 10 /) |
---|
| 143 | integer, dimension(nfiles) , save :: flag_vq = (/ 1, 10, 10, 10 /) |
---|
| 144 | |
---|
| 145 | integer, dimension(nfiles) , save :: flag_cape = (/ 1, 10, 10, 10 /) |
---|
| 146 | integer, dimension(nfiles) , save :: flag_pbase = (/ 1, 10, 10, 10 /) |
---|
| 147 | integer, dimension(nfiles) , save :: flag_ptop = (/ 1, 4, 10, 10 /) |
---|
| 148 | integer, dimension(nfiles) , save :: flag_fbase = (/ 1, 10, 10, 10 /) |
---|
| 149 | integer, dimension(nfiles) , save :: flag_prw = (/ 1, 1, 10, 10 /) |
---|
| 150 | |
---|
| 151 | integer, dimension(nfiles) , save :: flag_s_pblh = (/ 1, 10, 10, 1 /) |
---|
| 152 | integer, dimension(nfiles) , save :: flag_s_pblt = (/ 1, 10, 10, 1 /) |
---|
[929] | 153 | integer, dimension(nfiles) , save :: flag_s_lcl = (/ 1, 10, 10, 1 /) |
---|
[907] | 154 | integer, dimension(nfiles) , save :: flag_s_capCL = (/ 1, 10, 10, 1 /) |
---|
[929] | 155 | integer, dimension(nfiles) , save :: flag_s_oliqCL = (/ 1, 10, 10, 1 /) |
---|
[907] | 156 | integer, dimension(nfiles) , save :: flag_s_cteiCL = (/ 1, 10, 10, 1 /) |
---|
| 157 | integer, dimension(nfiles) , save :: flag_s_therm = (/ 1, 10, 10, 1 /) |
---|
| 158 | integer, dimension(nfiles) , save :: flag_s_trmb1 = (/ 1, 10, 10, 1 /) |
---|
| 159 | integer, dimension(nfiles) , save :: flag_s_trmb2 = (/ 1, 10, 10, 1 /) |
---|
| 160 | integer, dimension(nfiles) , save :: flag_s_trmb3 = (/ 1, 10, 10, 1 /) |
---|
| 161 | |
---|
| 162 | integer, dimension(nfiles) , save :: flag_slab_bils = (/ 1, 1, 10, 10 /) |
---|
| 163 | |
---|
| 164 | ! Champs interpolles sur des niveaux de pression ??? a faire correctement |
---|
| 165 | ! if=1 on ecrit u v w phi sur 850 700 500 200 au niv 1 |
---|
| 166 | ! if=2 on ecrit w et ph 500 seulement au niv 1 |
---|
| 167 | ! et u v sur 850 700 500 200 |
---|
| 168 | ! if=3 on ecrit ph a 500 seulement au niv 1 |
---|
| 169 | ! on ecrit u v t q a 850 700 500 200 au niv 3 |
---|
| 170 | ! on ecrit ph a 500 au niv 3 |
---|
| 171 | |
---|
| 172 | integer, dimension(nfiles) , save :: flag_ulevsSTD = (/ 1, 1, 3, 10 /) |
---|
| 173 | integer, dimension(nfiles) , save :: flag_vlevsSTD = (/ 1, 1, 3, 10 /) |
---|
| 174 | integer, dimension(nfiles) , save :: flag_wlevsSTD = (/ 1, 1, 10, 10 /) |
---|
| 175 | integer, dimension(nfiles) , save :: flag_tlevsSTD = (/ 10, 10, 3, 10 /) |
---|
| 176 | integer, dimension(nfiles) , save :: flag_qlevsSTD = (/ 10, 10, 3, 10 /) |
---|
| 177 | integer, dimension(nfiles) , save :: flag_philevsSTD = (/ 1, 1, 1, 10 /) |
---|
| 178 | |
---|
| 179 | integer, dimension(nfiles) , save :: flag_fluxo = (/ 1, 1, 10, 10 /) |
---|
| 180 | integer, dimension(nfiles) , save :: flag_fluxg = (/ 1, 1, 10, 10 /) |
---|
| 181 | integer, dimension(nfiles) , save :: flag_t_oce_sic = (/ 1, 10, 10, 10 /) |
---|
| 182 | |
---|
| 183 | integer, dimension(nfiles) , save :: flag_lmt_bils = (/ 1, 1, 10, 10 /) |
---|
| 184 | integer, dimension(nfiles) , save :: flag_tslab = (/ 1, 1, 10, 10 /) |
---|
| 185 | integer, dimension(nfiles) , save :: flag_seaice = (/ 1, 1, 10, 10 /) |
---|
| 186 | integer, dimension(nfiles) , save :: flag_siceh = (/ 1, 1, 10, 10 /) |
---|
| 187 | |
---|
| 188 | integer, dimension(nfiles) , save :: flag_weakinv = (/ 10, 1, 10, 10 /) |
---|
| 189 | integer, dimension(nfiles) , save :: flag_dthmin = (/ 10, 1, 10, 10 /) |
---|
| 190 | integer, dimension(nfiles) , save :: flag_u10_sol = (/ 10, 4, 10, 10 /) |
---|
| 191 | integer, dimension(nfiles) , save :: flag_v10_sol = (/ 10, 4, 10, 10 /) |
---|
| 192 | integer, dimension(nfiles) , save :: flag_meantaucld = (/ 10, 5, 10, 10 /) |
---|
| 193 | integer, dimension(nfiles) , save :: flag_cldtau = (/ 10, 5, 10, 10 /) |
---|
| 194 | integer, dimension(nfiles) , save :: flag_cldemi = (/ 10, 5, 10, 10 /) |
---|
| 195 | integer, dimension(nfiles) , save :: flag_rh2m = (/ 10, 5, 10, 10 /) |
---|
| 196 | integer, dimension(nfiles) , save :: flag_qsat2m = (/ 10, 5, 10, 10 /) |
---|
| 197 | integer, dimension(nfiles) , save :: flag_tpot = (/ 10, 5, 10, 10 /) |
---|
| 198 | integer, dimension(nfiles) , save :: flag_tpote = (/ 10, 5, 10, 10 /) |
---|
| 199 | integer, dimension(nfiles) , save :: flag_tke = (/ 4, 10, 10, 10 /) |
---|
| 200 | integer, dimension(nfiles) , save :: flag_tke_max = (/ 4, 10, 10, 10 /) |
---|
| 201 | integer, dimension(nfiles) , save :: flag_tke_sol = (/ 10, 4, 10, 10 /) |
---|
| 202 | integer, dimension(nfiles) , save :: flag_tke_max_sol = (/ 10, 4, 10, 10 /) |
---|
| 203 | integer, dimension(nfiles) , save :: flag_kz = (/ 4, 10, 10, 10 /) |
---|
| 204 | integer, dimension(nfiles) , save :: flag_kz_max = (/ 4, 10, 10, 10 /) |
---|
| 205 | integer, dimension(nfiles) , save :: flag_SWnetOR = (/ 10, 10, 2, 10 /) |
---|
| 206 | integer, dimension(nfiles) , save :: flag_SWdownOR = (/ 10, 10, 2, 10 /) |
---|
| 207 | integer, dimension(nfiles) , save :: flag_LWdownOR = (/ 10, 10, 2, 10 /) |
---|
| 208 | |
---|
| 209 | integer, dimension(nfiles) , save :: flag_snowl = (/ 10, 1, 10, 10 /) |
---|
| 210 | integer, dimension(nfiles) , save :: flag_cape_max = (/ 10, 1, 10, 10 /) |
---|
| 211 | integer, dimension(nfiles) , save :: flag_solldown = (/ 10, 1, 10, 1 /) |
---|
| 212 | |
---|
| 213 | integer, dimension(nfiles) , save :: flag_dtsvdfo = (/ 10, 10, 10, 1 /) |
---|
| 214 | integer, dimension(nfiles) , save :: flag_dtsvdft = (/ 10, 10, 10, 1 /) |
---|
| 215 | integer, dimension(nfiles) , save :: flag_dtsvdfg = (/ 10, 10, 10, 1 /) |
---|
| 216 | integer, dimension(nfiles) , save :: flag_dtsvdfi = (/ 10, 10, 10, 1 /) |
---|
| 217 | integer, dimension(nfiles) , save :: flag_rugs = (/ 10, 10, 10, 1 /) |
---|
| 218 | |
---|
| 219 | !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 220 | integer, dimension(nfiles) , save :: flag_lwcon = (/ 2, 5, 10, 10 /) |
---|
| 221 | integer, dimension(nfiles) , save :: flag_iwcon = (/ 2, 5, 10, 10 /) |
---|
| 222 | integer, dimension(nfiles) , save :: flag_temp = (/ 2, 3, 4, 1 /) |
---|
| 223 | integer, dimension(nfiles) , save :: flag_ovap = (/ 2, 3, 4, 10 /) |
---|
| 224 | integer, dimension(nfiles) , save :: flag_wvapp = (/ 2, 10, 10, 10 /) |
---|
| 225 | integer, dimension(nfiles) , save :: flag_geop = (/ 2, 3, 10, 1 /) |
---|
| 226 | integer, dimension(nfiles) , save :: flag_vitu = (/ 2, 3, 4, 1 /) |
---|
| 227 | integer, dimension(nfiles) , save :: flag_vitv = (/ 2, 3, 4, 1 /) |
---|
| 228 | integer, dimension(nfiles) , save :: flag_vitw = (/ 2, 3, 10, 10 /) |
---|
| 229 | integer, dimension(nfiles) , save :: flag_pres = (/ 2, 3, 10, 1 /) |
---|
| 230 | integer, dimension(nfiles) , save :: flag_rneb = (/ 2, 5, 10, 10 /) |
---|
| 231 | integer, dimension(nfiles) , save :: flag_rnebcon = (/ 2, 5, 10, 10 /) |
---|
| 232 | integer, dimension(nfiles) , save :: flag_rhum = (/ 2, 10, 10, 10 /) |
---|
| 233 | integer, dimension(nfiles) , save :: flag_ozone = (/ 2, 10, 10, 10 /) |
---|
| 234 | integer, dimension(nfiles) , save :: flag_upwd = (/ 2, 10, 10, 10 /) |
---|
| 235 | integer, dimension(nfiles) , save :: flag_dtphy = (/ 2, 10, 10, 10 /) |
---|
| 236 | integer, dimension(nfiles) , save :: flag_dqphy = (/ 2, 10, 10, 10 /) |
---|
[929] | 237 | integer, dimension(nfiles) , save :: flag_pr_con_l = (/ 2, 10, 10, 10 /) |
---|
| 238 | integer, dimension(nfiles) , save :: flag_pr_con_i = (/ 2, 10, 10, 10 /) |
---|
| 239 | integer, dimension(nfiles) , save :: flag_pr_lsc_l = (/ 2, 10, 10, 10 /) |
---|
| 240 | integer, dimension(nfiles) , save :: flag_pr_lsc_i = (/ 2, 10, 10, 10 /) |
---|
| 241 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
[907] | 242 | |
---|
| 243 | integer, dimension(nfiles) , save :: flag_albe_sol = (/ 3, 4, 10, 1 /) |
---|
| 244 | integer, dimension(nfiles) , save :: flag_ages_sol = (/ 3, 10, 10, 10 /) |
---|
| 245 | integer, dimension(nfiles) , save :: flag_rugs_sol = (/ 3, 4, 10, 1 /) |
---|
| 246 | |
---|
| 247 | integer, dimension(nfiles) , save :: flag_albs = (/ 3, 10, 10, 1 /) |
---|
| 248 | integer, dimension(nfiles) , save :: flag_albslw = (/ 3, 10, 10, 1 /) |
---|
| 249 | |
---|
| 250 | integer, dimension(nfiles) , save :: flag_clwcon = (/ 4, 10, 10, 10 /) |
---|
| 251 | integer, dimension(nfiles) , save :: flag_Ma = (/ 4, 10, 10, 10 /) |
---|
| 252 | integer, dimension(nfiles) , save :: flag_dnwd = (/ 4, 10, 10, 10 /) |
---|
| 253 | integer, dimension(nfiles) , save :: flag_dnwd0 = (/ 4, 10, 10, 10 /) |
---|
| 254 | integer, dimension(nfiles) , save :: flag_dtdyn = (/ 4, 10, 10, 10 /) |
---|
| 255 | integer, dimension(nfiles) , save :: flag_dqdyn = (/ 4, 10, 10, 10 /) |
---|
| 256 | integer, dimension(nfiles) , save :: flag_dtcon = (/ 4, 5, 10, 10 /) |
---|
| 257 | integer, dimension(nfiles) , save :: flag_ducon = (/ 4, 10, 10, 10 /) |
---|
| 258 | integer, dimension(nfiles) , save :: flag_dqcon = (/ 4, 5, 10, 10 /) |
---|
| 259 | integer, dimension(nfiles) , save :: flag_dtlsc = (/ 4, 10, 10, 10 /) |
---|
| 260 | integer, dimension(nfiles) , save :: flag_dtlschr = (/ 4, 10, 10, 10 /) |
---|
| 261 | integer, dimension(nfiles) , save :: flag_dqlsc = (/ 4, 10, 10, 10 /) |
---|
| 262 | integer, dimension(nfiles) , save :: flag_dtvdf = (/ 4, 10, 10, 1 /) |
---|
| 263 | integer, dimension(nfiles) , save :: flag_dqvdf = (/ 4, 10, 10, 1 /) |
---|
| 264 | integer, dimension(nfiles) , save :: flag_dteva = (/ 4, 10, 10, 10 /) |
---|
| 265 | integer, dimension(nfiles) , save :: flag_dqeva = (/ 4, 10, 10, 10 /) |
---|
| 266 | integer, dimension(nfiles) , save :: flag_ptconv = (/ 4, 10, 10, 10 /) |
---|
| 267 | integer, dimension(nfiles) , save :: flag_ratqs = (/ 4, 10, 10, 10 /) |
---|
| 268 | integer, dimension(nfiles) , save :: flag_dtthe = (/ 4, 10, 10, 10 /) |
---|
| 269 | integer, dimension(nfiles) , save :: flag_dqthe = (/ 4, 10, 10, 10 /) |
---|
| 270 | integer, dimension(nfiles) , save :: flag_dtajs = (/ 4, 10, 10, 10 /) |
---|
| 271 | integer, dimension(nfiles) , save :: flag_dqajs = (/ 4, 10, 10, 10 /) |
---|
| 272 | integer, dimension(nfiles) , save :: flag_dtswr = (/ 4, 10, 10, 10 /) |
---|
| 273 | integer, dimension(nfiles) , save :: flag_dtsw0 = (/ 4, 10, 10, 10 /) |
---|
| 274 | integer, dimension(nfiles) , save :: flag_dtlwr = (/ 4, 10, 10, 10 /) |
---|
| 275 | integer, dimension(nfiles) , save :: flag_dtlw0 = (/ 4, 10, 10, 10 /) |
---|
| 276 | integer, dimension(nfiles) , save :: flag_dtec = (/ 4, 10, 10, 10 /) |
---|
| 277 | integer, dimension(nfiles) , save :: flag_duvdf = (/ 4, 10, 10, 10 /) |
---|
| 278 | integer, dimension(nfiles) , save :: flag_dvvdf = (/ 4, 10, 10, 10 /) |
---|
| 279 | integer, dimension(nfiles) , save :: flag_duoro = (/ 4, 10, 10, 10 /) |
---|
| 280 | integer, dimension(nfiles) , save :: flag_dvoro = (/ 4, 10, 10, 10 /) |
---|
| 281 | integer, dimension(nfiles) , save :: flag_dulif = (/ 4, 10, 10, 10 /) |
---|
| 282 | integer, dimension(nfiles) , save :: flag_dvlif = (/ 4, 10, 10, 10 /) |
---|
| 283 | integer, dimension(nfiles) , save :: flag_trac = (/ 4, 10, 10, 10 /) |
---|
| 284 | |
---|
| 285 | CONTAINS |
---|
| 286 | |
---|
| 287 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 288 | !!!!!!!!! Ouverture des fichier et definition des variable de sortie !!!!!!!! |
---|
| 289 | !! histbeg, histvert et histdef |
---|
| 290 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
[929] | 291 | |
---|
| 292 | SUBROUTINE phys_output_open(jjmp1,nqmax,nlevSTD,clevSTD,nbteta, & |
---|
| 293 | ctetaSTD,dtime, presnivs, ok_veget, & |
---|
| 294 | ocean, iflag_pbl,ok_mensuel,ok_journe, & |
---|
| 295 | ok_hf,ok_instan, nid_fil) |
---|
[907] | 296 | |
---|
[929] | 297 | USE iophy |
---|
| 298 | USE dimphy |
---|
| 299 | USE ioipsl |
---|
| 300 | USE mod_phys_lmdz_para |
---|
[907] | 301 | |
---|
[929] | 302 | IMPLICIT NONE |
---|
| 303 | include "dimensions.h" |
---|
| 304 | include "temps.h" |
---|
| 305 | include "indicesol.h" |
---|
| 306 | include "advtrac.h" |
---|
| 307 | include "clesphys.h" |
---|
[907] | 308 | |
---|
[929] | 309 | integer :: jjmp1, nqmax |
---|
| 310 | integer :: nbteta, nlevSTD, radpas |
---|
| 311 | logical :: ok_mensuel, ok_journe, ok_hf, ok_instan |
---|
| 312 | real :: dtime |
---|
| 313 | integer :: idayref |
---|
| 314 | real :: zjulian |
---|
| 315 | real, dimension(klev) :: presnivs |
---|
| 316 | character(len=4), dimension(nlevSTD) :: clevSTD |
---|
| 317 | integer :: nsrf, k, iq, iiq, iff, i, j |
---|
| 318 | logical :: ok_veget |
---|
| 319 | integer :: iflag_pbl |
---|
| 320 | CHARACTER(len=3) :: bb2 |
---|
| 321 | CHARACTER(len=2) :: bb3 |
---|
| 322 | character(len=6) :: ocean |
---|
| 323 | CHARACTER(len=3) :: ctetaSTD(nbteta) |
---|
| 324 | integer, dimension(nfiles) :: nid_fil |
---|
| 325 | real, dimension(nfiles) :: ecrit_files |
---|
| 326 | CHARACTER(len=20), dimension(nfiles) :: name_files |
---|
| 327 | INTEGER, dimension(iim*jjmp1) :: ndex2d |
---|
| 328 | INTEGER, dimension(iim*jjmp1*klev) :: ndex3d |
---|
| 329 | integer :: imin_ins, imax_ins |
---|
| 330 | integer :: jmin_ins, jmax_ins |
---|
[907] | 331 | |
---|
[929] | 332 | name_files(1) = 'histmth' |
---|
| 333 | name_files(2) = 'histday' |
---|
| 334 | name_files(3) = 'histhf' |
---|
| 335 | name_files(4) = 'histins' |
---|
[907] | 336 | |
---|
[929] | 337 | type_ecri(1) = 'ave(X)' |
---|
| 338 | type_ecri(2) = 'ave(X)' |
---|
| 339 | type_ecri(3) = 'ave(X)' |
---|
| 340 | type_ecri(4) = 'inst(X)' |
---|
[907] | 341 | |
---|
[929] | 342 | clef_files(1) = ok_mensuel |
---|
| 343 | clef_files(2) = ok_journe |
---|
| 344 | clef_files(3) = ok_hf |
---|
| 345 | clef_files(4) = ok_instan |
---|
[907] | 346 | |
---|
[929] | 347 | lev_files(1) = lev_histmth |
---|
| 348 | lev_files(2) = lev_histday |
---|
| 349 | lev_files(3) = lev_histhf |
---|
| 350 | lev_files(4) = 1 |
---|
[907] | 351 | |
---|
[929] | 352 | ecrit_files(1) = ecrit_mth |
---|
| 353 | ecrit_files(2) = ecrit_day |
---|
| 354 | ecrit_files(3) = ecrit_hf |
---|
| 355 | ecrit_files(4) = ecrit_ins |
---|
[907] | 356 | |
---|
| 357 | !!!!!!!!!!!!!!!!!!!!!!! Boucle sur les fichiers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 358 | ! Appel de histbeg et histvert pour creer le fichier et les niveaux verticaux !! |
---|
| 359 | ! Appel des histbeg pour definir les variables (nom, moy ou inst, freq de sortie .. |
---|
| 360 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 361 | |
---|
[929] | 362 | DO iff=1,nfiles |
---|
| 363 | |
---|
| 364 | IF (clef_files(iff)) THEN |
---|
[907] | 365 | |
---|
[929] | 366 | zstophym(iff) = dtime ! Frequence ou l on moyenne |
---|
| 367 | zoutm(iff) = ecrit_files(iff) ! Frequence ou l on ecrit |
---|
[907] | 368 | |
---|
[929] | 369 | idayref = day_ref |
---|
| 370 | CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) |
---|
[907] | 371 | |
---|
| 372 | !!!!!!!!!!!!!!!!! Traitement dans le cas ou l'on veut stocker sur un domaine limite !! |
---|
| 373 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
[929] | 374 | if (ok_reglim(iff)) then |
---|
[907] | 375 | |
---|
[929] | 376 | imin_ins=1 |
---|
| 377 | imax_ins=iim |
---|
| 378 | jmin_ins=1 |
---|
| 379 | jmax_ins=jjmp1 |
---|
[907] | 380 | |
---|
[929] | 381 | do i=1,iim-1 |
---|
| 382 | print*,'io_lon(i)=',io_lon(i) |
---|
| 383 | if (io_lon(i).le.lonmin_reg(iff)) imin_ins=i |
---|
| 384 | if (io_lon(i).le.lonmax_reg(iff)) imax_ins=i |
---|
| 385 | enddo |
---|
[907] | 386 | |
---|
[929] | 387 | do j=1,jjmp1-1 |
---|
| 388 | print*,'io_lat(j)=',io_lat(j) |
---|
[932] | 389 | if (io_lat(j).ge.latmin_reg(iff)) jmax_ins=j+1 |
---|
[929] | 390 | if (io_lat(j).ge.latmax_reg(iff)) jmin_ins=j |
---|
| 391 | enddo |
---|
[907] | 392 | |
---|
| 393 | print*,'On stoke le fichier hist sur, ', & |
---|
[929] | 394 | imin_ins,imax_ins,jmin_ins,jmax_ins |
---|
[907] | 395 | print*,'On stoke le fichier instantanne sur, ', & |
---|
[929] | 396 | io_lon(imin_ins),io_lon(imax_ins), & |
---|
| 397 | io_lat(jmin_ins),io_lat(jmax_ins) |
---|
[907] | 398 | |
---|
[929] | 399 | CALL histbeg(name_files(iff),iim,io_lon,jjmp1,io_lat, & |
---|
| 400 | imin_ins,imax_ins-imin_ins+1, & |
---|
| 401 | jmin_ins,jmax_ins-jmin_ins+1, & |
---|
| 402 | itau_phy,zjulian,dtime,nhorim(iff),nid_fil(iff)) |
---|
[907] | 403 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 404 | else |
---|
[929] | 405 | CALL histbeg_phy(name_files(iff),itau_phy,zjulian,dtime,nhorim(iff),nid_fil(iff)) |
---|
[907] | 406 | endif |
---|
| 407 | |
---|
[929] | 408 | nid_files(iff)=nid_fil(iff) |
---|
[907] | 409 | |
---|
[929] | 410 | CALL histvert(nid_files(iff),"presnivs","Vertical levels","mb",klev, presnivs/100., nvertm(iff)) |
---|
[907] | 411 | |
---|
| 412 | !!!!!!!!!!!!! Traitement des champs 3D pour histhf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 413 | !!!!!!!!!!!!!!! A Revoir plus tard !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
| 414 | ! IF (iff.eq.3.and.lev_files(iff).ge.4) THEN |
---|
| 415 | ! CALL histbeg_phy("histhf3d",itau_phy, & |
---|
| 416 | ! & zjulian, dtime, & |
---|
[929] | 417 | ! & nhorim, nid_hf3d) |
---|
[907] | 418 | |
---|
| 419 | ! CALL histvert(nid_hf3d,"presnivs", & |
---|
| 420 | ! & "Vertical levels","mb", & |
---|
[929] | 421 | ! & klev, presnivs/100., nvertm) |
---|
[907] | 422 | ! ENDIF |
---|
| 423 | |
---|
| 424 | !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
[929] | 425 | CALL histdef2d(iff,flag_phis,"phis","Surface geop.height","m2/s2") |
---|
| 426 | CALL histdef2d(iff,flag_aire,"aire","Grid area","-") |
---|
| 427 | CALL histdef2d(iff,flag_contfracATM,"contfracATM","% sfce ter+lic","-") |
---|
| 428 | CALL histdef2d(iff,flag_contfracOR,"contfracOR","% sfce terre OR","-" ) |
---|
| 429 | CALL histdef2d(iff,flag_aireTER,"aireTER","Grid area CONT","-" ) |
---|
[907] | 430 | |
---|
| 431 | !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
---|
[929] | 432 | CALL histdef2d(iff,flag_flat,"flat","Latent heat flux","W/m2") |
---|
| 433 | CALL histdef2d(iff,flag_slp,"slp","Sea Level Pressure", "Pa" ) |
---|
| 434 | CALL histdef2d(iff,flag_tsol,"tsol","Surface Temperature", "K") |
---|
| 435 | CALL histdef2d( iff,flag_t2m,"t2m","Temperature 2m", "K" ) |
---|
| 436 | CALL histdef2d(iff,flag_t2m_min,"t2m_min","Temp 2m min", "K" ) |
---|
| 437 | CALL histdef2d(iff,flag_t2m_max,"t2m_max", "Temp 2m max", "K" ) |
---|
| 438 | CALL histdef2d(iff,flag_wind10m,"wind10m","10-m wind speed","m/s") |
---|
| 439 | CALL histdef2d(iff,flag_wind10max,"wind10max","10m wind speed max","m/s") |
---|
| 440 | CALL histdef2d(iff,flag_sicf,"sicf","Sea-ice fraction", "-" ) |
---|
| 441 | CALL histdef2d(iff,flag_q2m,"q2m","Specific humidity 2m", "kg/kg") |
---|
| 442 | CALL histdef2d(iff,flag_u10m,"u10m","Vent zonal 10m", "m/s" ) |
---|
| 443 | CALL histdef2d(iff,flag_v10m,"v10m","Vent meridien 10m", "m/s") |
---|
| 444 | CALL histdef2d(iff,flag_psol,"psol","Surface Pressure","Pa" ) |
---|
| 445 | CALL histdef2d(iff,flag_qsurf,"qsurf","Surface Air humidity", "kg/kg") |
---|
[907] | 446 | |
---|
[929] | 447 | if (.not. ok_veget) then |
---|
| 448 | CALL histdef2d(iff,flag_qsol,"qsol","Soil watter content", "mm" ) |
---|
| 449 | endif |
---|
[907] | 450 | |
---|
[929] | 451 | CALL histdef2d(iff,flag_ndayrain,"ndayrain","Number of dayrain(liq+sol)","-") |
---|
| 452 | CALL histdef2d(iff,flag_precip,"precip","Precip Totale liq+sol","kg/(s*m2)" ) |
---|
| 453 | CALL histdef2d(iff,flag_plul,"plul","Large-scale Precip.","kg/(s*m2)") |
---|
| 454 | CALL histdef2d(iff,flag_pluc,"pluc","Convective Precip.","kg/(s*m2)") |
---|
| 455 | CALL histdef2d(iff,flag_snow,"snow","Snow fall","kg/(s*m2)" ) |
---|
| 456 | CALL histdef2d(iff,flag_evap,"evap","Evaporat", "kg/(s*m2)" ) |
---|
| 457 | CALL histdef2d(iff,flag_tops,"tops","Solar rad. at TOA","W/m2") |
---|
| 458 | CALL histdef2d(iff,flag_tops0,"tops0","CS Solar rad. at TOA", "W/m2") |
---|
| 459 | CALL histdef2d(iff,flag_topl,"topl","IR rad. at TOA", "W/m2" ) |
---|
| 460 | CALL histdef2d(iff,flag_topl0,"topl0", "IR rad. at TOA","W/m2") |
---|
| 461 | CALL histdef2d(iff,flag_SWupTOA,"SWupTOA","SWup at TOA","W/m2") |
---|
| 462 | CALL histdef2d(iff,flag_SWupTOAclr,"SWupTOAclr","SWup clear sky at TOA","W/m2") |
---|
| 463 | CALL histdef2d(iff,flag_SWdnTOA, "SWdnTOA","SWdn at TOA","W/m2" ) |
---|
| 464 | CALL histdef2d(iff,flag_SWdnTOAclr,"SWdnTOAclr","SWdn clear sky at TOA","W/m2") |
---|
| 465 | CALL histdef2d(iff,flag_SWup200,"SWup200","SWup at 200mb","W/m2" ) |
---|
| 466 | CALL histdef2d(iff,flag_SWup200clr,"SWup200clr","SWup clear sky at 200mb","W/m2") |
---|
| 467 | CALL histdef2d(iff,flag_SWdn200,"SWdn200","SWdn at 200mb","W/m2" ) |
---|
| 468 | CALL histdef2d(iff,flag_SWdn200clr,"SWdn200clr","SWdn clear sky at 200mb","W/m2") |
---|
| 469 | CALL histdef2d(iff,flag_LWup200,"LWup200","LWup at 200mb","W/m2") |
---|
| 470 | CALL histdef2d(iff,flag_LWup200clr, "LWup200clr","LWup clear sky at 200mb","W/m2") |
---|
| 471 | CALL histdef2d(iff,flag_LWdn200,"LWdn200","LWdn at 200mb","W/m2") |
---|
| 472 | CALL histdef2d(iff,flag_LWdn200clr, "LWdn200clr","LWdn clear sky at 200mb","W/m2") |
---|
| 473 | CALL histdef2d(iff,flag_sols,"sols","Solar rad. at surf.","W/m2") |
---|
| 474 | CALL histdef2d(iff,flag_sols0,"sols0","Solar rad. at surf.","W/m2") |
---|
| 475 | CALL histdef2d(iff,flag_soll,"soll","IR rad. at surface","W/m2") |
---|
| 476 | CALL histdef2d(iff,flag_radsol,"radsol","Rayonnement au sol","W/m2") |
---|
| 477 | CALL histdef2d(iff,flag_soll0,"soll0","IR rad. at surface","W/m2") |
---|
| 478 | CALL histdef2d(iff,flag_SWupSFC,"SWupSFC","SWup at surface","W/m2") |
---|
| 479 | CALL histdef2d(iff,flag_SWupSFCclr,"SWupSFCclr","SWup clear sky at surface","W/m2") |
---|
| 480 | CALL histdef2d(iff,flag_SWdnSFC,"SWdnSFC","SWdn at surface","W/m2") |
---|
| 481 | CALL histdef2d(iff,flag_SWdnSFCclr,"SWdnSFCclr","SWdn clear sky at surface","W/m2") |
---|
| 482 | CALL histdef2d(iff,flag_LWupSFC,"LWupSFC","Upwd. IR rad. at surface","W/m2") |
---|
| 483 | CALL histdef2d(iff,flag_LWdnSFC,"LWdnSFC","Down. IR rad. at surface","W/m2") |
---|
| 484 | CALL histdef2d(iff,flag_LWupSFCclr,"LWupSFCclr","CS Upwd. IR rad. at surface","W/m2") |
---|
| 485 | CALL histdef2d(iff,flag_LWdnSFCclr,"LWdnSFCclr","Down. CS IR rad. at surface","W/m2") |
---|
| 486 | CALL histdef2d(iff,flag_bils,"bils","Surf. total heat flux","W/m2") |
---|
| 487 | CALL histdef2d(iff,flag_sens,"sens","Sensible heat flux","W/m2") |
---|
| 488 | CALL histdef2d(iff,flag_fder,"fder","Heat flux derivation","W/m2") |
---|
| 489 | CALL histdef2d(iff,flag_ffonte,"ffonte","Thermal flux for snow melting","W/m2") |
---|
| 490 | CALL histdef2d(iff,flag_fqcalving,"fqcalving","Ice Calving","kg/m2/s") |
---|
| 491 | CALL histdef2d(iff,flag_fqfonte,"fqfonte","Land ice melt","kg/m2/s") |
---|
[907] | 492 | |
---|
[929] | 493 | DO nsrf = 1, nbsrf |
---|
| 494 | CALL histdef2d(iff,flag_pourc_sol,"pourc_"//clnsurf(nsrf),"% "//clnsurf(nsrf),"%") |
---|
| 495 | CALL histdef2d(iff,flag_fract_sol,"fract_"//clnsurf(nsrf),"Fraction "//clnsurf(nsrf),"1") |
---|
| 496 | CALL histdef2d(iff,flag_taux_sol,"taux_"//clnsurf(nsrf),"Zonal wind stress"//clnsurf(nsrf),"Pa") |
---|
| 497 | CALL histdef2d(iff,flag_tauy_sol,"tauy_"//clnsurf(nsrf),"Meridional wind stress "//clnsurf(nsrf),"Pa") |
---|
| 498 | CALL histdef2d(iff,flag_tsol_sol,"tsol_"//clnsurf(nsrf),"Temperature "//clnsurf(nsrf),"K") |
---|
| 499 | CALL histdef2d(iff,flag_u10m_sol,"u10m_"//clnsurf(nsrf),"Vent Zonal 10m "//clnsurf(nsrf),"m/s") |
---|
| 500 | CALL histdef2d(iff,flag_v10m_sol,"v10m_"//clnsurf(nsrf),"Vent meredien 10m "//clnsurf(nsrf),"m/s") |
---|
| 501 | CALL histdef2d(iff,flag_t2m_sol,"t2m_"//clnsurf(nsrf),"Temp 2m "//clnsurf(nsrf),"K") |
---|
| 502 | CALL histdef2d(iff,flag_sens_sol,"sens_"//clnsurf(nsrf),"Sensible heat flux "//clnsurf(nsrf),"W/m2") |
---|
| 503 | CALL histdef2d(iff,flag_lat_sol,"lat_"//clnsurf(nsrf),"Latent heat flux "//clnsurf(nsrf),"W/m2") |
---|
| 504 | CALL histdef2d(iff,flag_flw_sol,"flw_"//clnsurf(nsrf),"LW "//clnsurf(nsrf),"W/m2") |
---|
| 505 | CALL histdef2d(iff,flag_fsw_sol,"fsw_"//clnsurf(nsrf),"SW "//clnsurf(nsrf),"W/m2") |
---|
| 506 | CALL histdef2d(iff,flag_wbils_sol,"wbils_"//clnsurf(nsrf),"Bilan sol "//clnsurf(nsrf),"W/m2" ) |
---|
| 507 | CALL histdef2d(iff,flag_wbilo_sol,"wbilo_"//clnsurf(nsrf),"Bilan eau "//clnsurf(nsrf),"kg/(m2*s)") |
---|
| 508 | if (iflag_pbl>1 .and. lev_files(iff).gt.10 ) then |
---|
| 509 | CALL histdef2d(iff,flag_tke_sol,"tke_"//clnsurf(nsrf),"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") |
---|
| 510 | CALL histdef2d(iff,flag_tke_max_sol,"tke_max_"//clnsurf(nsrf),"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") |
---|
| 511 | endif |
---|
| 512 | CALL histdef2d(iff,flag_albe_sol, "albe_"//clnsurf(nsrf),"Albedo surf. "//clnsurf(nsrf),"-") |
---|
| 513 | CALL histdef2d(iff,flag_rugs_sol,"rugs_"//clnsurf(nsrf),"Latent heat flux "//clnsurf(nsrf),"W/m2") |
---|
| 514 | CALL histdef2d(iff,flag_ages_sol,"ages_"//clnsurf(nsrf),"Snow age","day") |
---|
| 515 | END DO |
---|
[907] | 516 | |
---|
[929] | 517 | CALL histdef2d(iff,flag_albs,"albs","Surface albedo","-") |
---|
| 518 | CALL histdef2d(iff,flag_albslw,"albslw","Surface albedo LW","-") |
---|
| 519 | CALL histdef2d(iff,flag_cdrm,"cdrm","Momentum drag coef.", "-") |
---|
| 520 | CALL histdef2d(iff,flag_cdrh,"cdrh","Heat drag coef.", "-" ) |
---|
| 521 | CALL histdef2d(iff,flag_cldl,"cldl","Low-level cloudiness", "-") |
---|
| 522 | CALL histdef2d(iff,flag_cldm,"cldm","Mid-level cloudiness", "-") |
---|
| 523 | CALL histdef2d(iff,flag_cldh,"cldh","High-level cloudiness", "-") |
---|
| 524 | CALL histdef2d(iff,flag_cldt,"cldt","Total cloudiness","%") |
---|
| 525 | CALL histdef2d(iff,flag_cldq,"cldq","Cloud liquid water path","kg/m2") |
---|
| 526 | CALL histdef2d(iff,flag_lwp,"lwp","Cloud water path","kg/m2") |
---|
| 527 | CALL histdef2d(iff,flag_iwp,"iwp","Cloud ice water path","kg/m2" ) |
---|
| 528 | CALL histdef2d(iff,flag_ue,"ue","Zonal energy transport","-") |
---|
| 529 | CALL histdef2d(iff,flag_ve,"ve","Merid energy transport", "-") |
---|
| 530 | CALL histdef2d(iff,flag_uq,"uq","Zonal humidity transport", "-") |
---|
| 531 | CALL histdef2d(iff,flag_vq,"vq","Merid humidity transport", "-") |
---|
[907] | 532 | |
---|
[929] | 533 | IF(iflag_con.GE.3) THEN ! sb |
---|
| 534 | CALL histdef2d(iff,flag_cape,"cape","Conv avlbl pot ener","J/kg") |
---|
| 535 | CALL histdef2d(iff,flag_pbase,"pbase","Cld base pressure", "mb") |
---|
| 536 | CALL histdef2d(iff,flag_ptop,"ptop","Cld top pressure", "mb") |
---|
| 537 | CALL histdef2d(iff,flag_fbase,"fbase","Cld base mass flux","kg/m2/s") |
---|
| 538 | CALL histdef2d(iff,flag_prw,"prw","Precipitable water","kg/m2") |
---|
| 539 | ENDIF !iflag_con .GE. 3 |
---|
[907] | 540 | |
---|
[929] | 541 | CALL histdef2d(iff,flag_s_pblh,"s_pblh","Boundary Layer Height","m") |
---|
| 542 | CALL histdef2d(iff,flag_s_pblt,"s_pblt","t at Boundary Layer Height","K") |
---|
| 543 | CALL histdef2d(iff,flag_s_lcl,"s_lcl","Condensation level","m") |
---|
| 544 | CALL histdef2d(iff,flag_s_capCL,"s_capCL","Conv avlbl pot enerfor ABL", "J/m2" ) |
---|
| 545 | CALL histdef2d(iff,flag_s_oliqCL,"s_oliqCL","Liq Water in BL","kg/m2") |
---|
| 546 | CALL histdef2d(iff,flag_s_cteiCL,"s_cteiCL","Instability criteria(ABL)","K") |
---|
| 547 | CALL histdef2d(iff,flag_s_therm,"s_therm","Exces du thermique", "K") |
---|
| 548 | CALL histdef2d(iff,flag_s_trmb1,"s_trmb1","deep_cape(HBTM2)","J/m2") |
---|
| 549 | CALL histdef2d(iff,flag_s_trmb2,"s_trmb2","inhibition (HBTM2)","J/m2") |
---|
| 550 | CALL histdef2d(iff,flag_s_trmb3,"s_trmb3","Point Omega (HBTM2)","m") |
---|
[907] | 551 | |
---|
| 552 | ! Champs interpolles sur des niveaux de pression |
---|
| 553 | ! iif=1 on ecrit u v w phi sur 850 700 500 200 au niv 1 |
---|
| 554 | ! iif=2 on ecrit w et ph 500 seulement au niv 1 |
---|
| 555 | ! et u v sur 850 700 500 200 |
---|
| 556 | ! iif=3 on ecrit ph a 500 seulement au niv 1 |
---|
| 557 | ! on ecrit u v t q a 850 700 500 200 au niv 3 |
---|
| 558 | |
---|
[929] | 559 | DO k=1, nlevSTD |
---|
| 560 | IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) |
---|
| 561 | IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) |
---|
| 562 | IF(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200")THEN |
---|
| 563 | CALL histdef2d(iff,flag_ulevsSTD,"u"//bb2,"Zonal wind "//bb2//"mb","m/s") |
---|
| 564 | CALL histdef2d(iff,flag_vlevsSTD,"v"//bb2,"Meridional wind "//bb2//"mb","m/s") |
---|
| 565 | CALL histdef2d(iff,flag_wlevsSTD,"w"//bb2,"Vertical wind "//bb2//"mb","m/s") |
---|
| 566 | CALL histdef2d(iff,flag_philevsSTD,"phi"//bb2,"Geopotential "//bb2//"mb","m") |
---|
| 567 | CALL histdef2d(iff,flag_qlevsSTD,"q"//bb2,"Specific humidity "//bb2//"mb","kg/kg" ) |
---|
| 568 | CALL histdef2d(iff,flag_tlevsSTD,"t"//bb2,"Temperature "//bb2//"mb","K") |
---|
| 569 | ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. |
---|
[907] | 570 | ENDDO |
---|
| 571 | |
---|
| 572 | !IM diagnostiques flux ocean-atm ou ocean-glace de mer |
---|
| 573 | !IM pour utilisation dans un modele de "slab" ocean |
---|
[929] | 574 | CALL histdef2d(iff,flag_fluxo,"fluxo","Flux turbulents ocean-atmosphere","W/m2") |
---|
| 575 | CALL histdef2d(iff,flag_fluxg,"fluxg","Flux turbulents ocean-glace de mer","W/m2") |
---|
| 576 | CALL histdef2d(iff,flag_t_oce_sic,"t_oce_sic","Temp mixte oce-sic","K") |
---|
[907] | 577 | |
---|
[929] | 578 | IF (OCEAN.EQ.'force ') THEN |
---|
| 579 | CALL histdef2d(iff,flag_lmt_bils,"lmt_bils","Bilan au sol atmosphere forcee","W/m2") |
---|
| 580 | ELSE IF (OCEAN.EQ.'slab ') THEN |
---|
| 581 | CALL histdef2d(iff,flag_slab_bils,"slab_bils","Bilan au sol Slab","W/m2") |
---|
| 582 | CALL histdef2d(iff,flag_tslab,"tslab", "Slab SST ", "K") |
---|
| 583 | CALL histdef2d(iff,flag_seaice,"seaice","Slab seaice","kg/m2") |
---|
| 584 | CALL histdef2d(iff,flag_siceh,"siceh","Slab seaice height","m") |
---|
| 585 | ENDIF |
---|
[907] | 586 | |
---|
[929] | 587 | CALL histdef2d(iff,flag_weakinv, "weakinv","Weak inversion", "-") |
---|
| 588 | CALL histdef2d(iff,flag_dthmin,"dthmin","dTheta mini", "K/m") |
---|
| 589 | CALL histdef2d(iff,flag_meantaucld,"meantaucld","ISCCP mean cloud optical thickness","1") |
---|
| 590 | CALL histdef2d(iff,flag_rh2m,"rh2m","Relative humidity at 2m", "%" ) |
---|
| 591 | CALL histdef2d(iff,flag_qsat2m,"qsat2m","Saturant humidity at 2m", "%") |
---|
| 592 | CALL histdef2d(iff,flag_tpot,"tpot","Surface air potential temperature","K") |
---|
| 593 | CALL histdef2d(iff,flag_tpote,"tpote","Surface air equivalent potential temperature","K") |
---|
| 594 | CALL histdef2d(iff,flag_SWnetOR,"SWnetOR","Sfce net SW radiation OR", "W/m2") |
---|
| 595 | CALL histdef2d(iff,flag_SWdownOR,"SWdownOR","Sfce incident SW radiation OR","W/m2") |
---|
| 596 | CALL histdef2d(iff,flag_LWdownOR,"LWdownOR","Sfce incident LW radiation OR","W/m2") |
---|
| 597 | CALL histdef2d(iff,flag_snowl,"snowl","Solid Large-scale Precip.","kg/(m2*s)") |
---|
| 598 | CALL histdef2d(iff,flag_cape_max,"cape_max","CAPE max.", "J/kg") |
---|
| 599 | CALL histdef2d(iff,flag_solldown,"solldown","Down. IR rad. at surface","W/m2") |
---|
| 600 | CALL histdef2d(iff,flag_dtsvdfo,"dtsvdfo","Boundary-layer dTs(o)","K/s") |
---|
| 601 | CALL histdef2d(iff,flag_dtsvdft,"dtsvdft","Boundary-layer dTs(t)","K/s") |
---|
| 602 | CALL histdef2d(iff,flag_dtsvdfg,"dtsvdfg","Boundary-layer dTs(g)","K/s") |
---|
| 603 | CALL histdef2d(iff,flag_dtsvdfi,"dtsvdfi","Boundary-layer dTs(g)","K/s") |
---|
| 604 | CALL histdef2d(iff,flag_rugs,"rugs","rugosity", "-" ) |
---|
[907] | 605 | |
---|
| 606 | ! Champs 3D: |
---|
[929] | 607 | CALL histdef3d(iff,flag_lwcon,"lwcon","Cloud liquid water content","kg/kg") |
---|
| 608 | CALL histdef3d(iff,flag_iwcon,"iwcon","Cloud ice water content","kg/kg") |
---|
| 609 | CALL histdef3d(iff,flag_temp,"temp","Air temperature","K" ) |
---|
| 610 | CALL histdef3d(iff,flag_ovap,"ovap","Specific humidity","kg/kg" ) |
---|
| 611 | CALL histdef3d(iff,flag_geop,"geop","Geopotential height","m2/s2") |
---|
| 612 | CALL histdef3d(iff,flag_vitu,"vitu","Zonal wind", "m/s" ) |
---|
| 613 | CALL histdef3d(iff,flag_vitv,"vitv","Meridional wind","m/s" ) |
---|
| 614 | CALL histdef3d(iff,flag_vitw,"vitw","Vertical wind","m/s" ) |
---|
| 615 | CALL histdef3d(iff,flag_pres,"pres","Air pressure", "Pa" ) |
---|
| 616 | CALL histdef3d(iff,flag_rneb,"rneb","Cloud fraction","-") |
---|
| 617 | CALL histdef3d(iff,flag_rnebcon,"rnebcon","Convective Cloud Fraction","-") |
---|
| 618 | CALL histdef3d(iff,flag_rhum,"rhum","Relative humidity","-") |
---|
| 619 | CALL histdef3d(iff,flag_ozone,"ozone","Ozone concentration", "ppmv") |
---|
| 620 | CALL histdef3d(iff,flag_upwd,"upwd","saturated updraft", "kg/m2/s") |
---|
| 621 | CALL histdef3d(iff,flag_dtphy,"dtphy","Physics dT","K/s") |
---|
| 622 | CALL histdef3d(iff,flag_dqphy,"dqphy","Physics dQ", "(kg/kg)/s") |
---|
| 623 | CALL histdef3d(iff,flag_cldtau,"cldtau","Cloud optical thickness","1") |
---|
| 624 | CALL histdef3d(iff,flag_cldemi,"cldemi","Cloud optical emissivity","1") |
---|
| 625 | CALL histdef3d(iff,flag_pr_con_l,"pmflxr","Convective precipitation lic"," ") |
---|
| 626 | CALL histdef3d(iff,flag_pr_con_i,"pmflxs","Convective precipitation ice"," ") |
---|
| 627 | CALL histdef3d(iff,flag_pr_lsc_l,"prfl","Large scale precipitation lic"," ") |
---|
| 628 | CALL histdef3d(iff,flag_pr_lsc_i,"psfl","Large scale precipitation ice"," ") |
---|
[907] | 629 | |
---|
[929] | 630 | !FH Sorties pour la couche limite |
---|
| 631 | if (iflag_pbl>1) then |
---|
| 632 | CALL histdef3d(iff,flag_tke,"tke","TKE","m2/s2") |
---|
| 633 | CALL histdef3d(iff,flag_tke_max,"tke_max","TKE max","m2/s2") |
---|
| 634 | endif |
---|
[907] | 635 | |
---|
[929] | 636 | CALL histdef3d(iff,flag_kz,"kz","Kz melange","m2/s") |
---|
| 637 | CALL histdef3d(iff,flag_kz_max,"kz_max","Kz melange max","m2/s" ) |
---|
| 638 | CALL histdef3d(iff,flag_clwcon,"clwcon","Convective Cloud Liquid water content", "kg/kg") |
---|
| 639 | CALL histdef3d(iff,flag_Ma,"Ma","undilute adiab updraft","kg/m2/s") |
---|
| 640 | CALL histdef3d(iff,flag_dnwd,"dnwd","saturated downdraft","kg/m2/s") |
---|
| 641 | CALL histdef3d(iff,flag_dnwd0,"dnwd0","unsat. downdraft", "kg/m2/s") |
---|
| 642 | CALL histdef3d(iff,flag_dtdyn,"dtdyn","Dynamics dT","K/s") |
---|
| 643 | CALL histdef3d(iff,flag_dqdyn,"dqdyn","Dynamics dQ", "(kg/kg)/s") |
---|
| 644 | CALL histdef3d(iff,flag_dtcon,"dtcon","Convection dT","K/s") |
---|
| 645 | CALL histdef3d(iff,flag_ducon,"ducon","Convection du","m/s2") |
---|
| 646 | CALL histdef3d(iff,flag_dqcon,"dqcon","Convection dQ", "(kg/kg)/s") |
---|
| 647 | CALL histdef3d(iff,flag_dtlsc,"dtlsc","Condensation dT", "K/s") |
---|
| 648 | CALL histdef3d(iff,flag_dtlschr,"dtlschr","Large-scale condensational heating rate","K/s") |
---|
| 649 | CALL histdef3d(iff,flag_dqlsc,"dqlsc","Condensation dQ","(kg/kg)/s") |
---|
| 650 | CALL histdef3d(iff,flag_dtvdf,"dtvdf","Boundary-layer dT", "K/s") |
---|
| 651 | CALL histdef3d(iff,flag_dqvdf,"dqvdf","Boundary-layer dQ","(kg/kg)/s") |
---|
| 652 | CALL histdef3d(iff,flag_dteva,"dteva","Reevaporation dT", "K/s") |
---|
| 653 | CALL histdef3d(iff,flag_dqeva,"dqeva","Reevaporation dQ","(kg/kg)/s") |
---|
| 654 | CALL histdef3d(iff,flag_ptconv,"ptconv","POINTS CONVECTIFS"," ") |
---|
| 655 | CALL histdef3d(iff,flag_ratqs,"ratqs", "RATQS"," ") |
---|
| 656 | CALL histdef3d(iff,flag_dtthe,"dtthe","Dry adjust. dT", "K/s") |
---|
| 657 | CALL histdef3d(iff,flag_dqthe,"dqthe","Dry adjust. dQ","(kg/kg)/s") |
---|
| 658 | CALL histdef3d(iff,flag_dtajs,"dtajs","Dry adjust. dT", "K/s") |
---|
| 659 | CALL histdef3d(iff,flag_dqajs,"dqajs","Dry adjust. dQ","(kg/kg)/s") |
---|
| 660 | CALL histdef3d(iff,flag_dtswr,"dtswr","SW radiation dT","K/s") |
---|
| 661 | CALL histdef3d(iff,flag_dtsw0,"dtsw0","CS SW radiation dT","K/s") |
---|
| 662 | CALL histdef3d(iff,flag_dtlwr,"dtlwr","LW radiation dT","K/s") |
---|
| 663 | CALL histdef3d(iff,flag_dtlw0,"dtlw0", "CS LW radiation dT","K/s") |
---|
| 664 | CALL histdef3d(iff,flag_dtec,"dtec","Cinetic dissip dT","K/s") |
---|
| 665 | CALL histdef3d(iff,flag_duvdf,"duvdf","Boundary-layer dU","m/s2") |
---|
| 666 | CALL histdef3d(iff,flag_dvvdf,"dvvdf","Boundary-layer dV", "m/s2") |
---|
[907] | 667 | |
---|
[929] | 668 | IF (ok_orodr) THEN |
---|
| 669 | CALL histdef3d(iff,flag_duoro,"duoro","Orography dU","m/s2") |
---|
| 670 | CALL histdef3d(iff,flag_dvoro,"dvoro","Orography dV", "m/s2") |
---|
| 671 | ENDIF |
---|
[907] | 672 | |
---|
[929] | 673 | IF (ok_orolf) THEN |
---|
| 674 | CALL histdef3d(iff,flag_dulif,"dulif","Orography dU","m/s2") |
---|
| 675 | CALL histdef3d(iff,flag_dvlif,"dvlif","Orography dV", "m/s2") |
---|
| 676 | ENDIF |
---|
[907] | 677 | |
---|
[929] | 678 | if (nqmax>=3) THEN |
---|
| 679 | DO iq=3,nqmax |
---|
| 680 | iiq=niadv(iq) |
---|
| 681 | CALL histdef3d ( iff, flag_trac, tnom(iq),ttext(iiq), "-" ) |
---|
| 682 | ENDDO |
---|
[907] | 683 | endif |
---|
| 684 | |
---|
[929] | 685 | CALL histend(nid_files(iff)) |
---|
[907] | 686 | |
---|
[929] | 687 | ndex2d = 0 |
---|
| 688 | ndex3d = 0 |
---|
[907] | 689 | |
---|
[929] | 690 | ENDIF ! clef_files |
---|
[907] | 691 | |
---|
[929] | 692 | ENDDO ! |
---|
| 693 | end subroutine phys_output_open |
---|
[907] | 694 | |
---|
[929] | 695 | SUBROUTINE histdef2d (iff,flag_var,nomvar,titrevar,unitvar) |
---|
| 696 | |
---|
| 697 | use ioipsl |
---|
| 698 | USE dimphy |
---|
| 699 | USE mod_phys_lmdz_para |
---|
[907] | 700 | |
---|
[929] | 701 | IMPLICIT NONE |
---|
| 702 | |
---|
| 703 | include "dimensions.h" |
---|
| 704 | include "temps.h" |
---|
| 705 | include "indicesol.h" |
---|
| 706 | include "advtrac.h" |
---|
| 707 | include "clesphys.h" |
---|
[907] | 708 | |
---|
[929] | 709 | integer :: iff |
---|
| 710 | integer, dimension(nfiles) :: flag_var |
---|
| 711 | character(len=*) :: nomvar |
---|
| 712 | character(len=*) :: titrevar |
---|
| 713 | character(len=*) :: unitvar |
---|
| 714 | |
---|
| 715 | if ( flag_var(iff)<=lev_files(iff) ) then |
---|
| 716 | call histdef (nid_files(iff),nomvar,titrevar,unitvar, & |
---|
| 717 | iim,jj_nb,nhorim(iff), 1,1,1, -99, 32, & |
---|
| 718 | type_ecri(iff), zstophym(iff),zoutm(iff)) |
---|
| 719 | endif |
---|
| 720 | end subroutine histdef2d |
---|
[907] | 721 | |
---|
[929] | 722 | SUBROUTINE histdef3d (iff,flag_var,nomvar,titrevar,unitvar) |
---|
[907] | 723 | |
---|
[929] | 724 | use ioipsl |
---|
| 725 | USE dimphy |
---|
| 726 | USE mod_phys_lmdz_para |
---|
[907] | 727 | |
---|
[929] | 728 | IMPLICIT NONE |
---|
[907] | 729 | |
---|
[929] | 730 | include "dimensions.h" |
---|
| 731 | include "temps.h" |
---|
| 732 | include "indicesol.h" |
---|
| 733 | include "advtrac.h" |
---|
| 734 | include "clesphys.h" |
---|
[907] | 735 | |
---|
[929] | 736 | integer :: iff |
---|
| 737 | integer, dimension(nfiles) :: flag_var |
---|
| 738 | character(len=*) :: nomvar |
---|
| 739 | character(len=*) :: titrevar |
---|
| 740 | character(len=*) :: unitvar |
---|
[907] | 741 | |
---|
[929] | 742 | if ( flag_var(iff)<=lev_files(iff) ) then |
---|
| 743 | call histdef (nid_files(iff),nomvar,titrevar,unitvar, & |
---|
| 744 | iim,jj_nb,nhorim(iff), klev,1,klev,nvertm(iff), 32, & |
---|
| 745 | type_ecri(iff), zstophym(iff),zoutm(iff)) |
---|
| 746 | endif |
---|
| 747 | end subroutine histdef3d |
---|
[907] | 748 | |
---|
| 749 | |
---|
| 750 | END MODULE phys_output_mod |
---|
| 751 | |
---|