| [3927] | 1 | #ifdef ISO |
|---|
| 2 | #ifdef ISOTRAC |
|---|
| 3 | |
|---|
| 4 | MODULE isotrac_mod |
|---|
| [5199] | 5 | USE infotrac_phy, ONLY: niso, ntiso, nzone, delPhase |
|---|
| [5754] | 6 | USE isotopes_mod, ONLY: ridicule |
|---|
| 7 | USE ioipsl_getin_p_mod, ONLY : getin_p |
|---|
| [4325] | 8 | IMPLICIT NONE |
|---|
| 9 | SAVE |
|---|
| [3927] | 10 | |
|---|
| [4325] | 11 | !=== CONTENT: ALL THE ISOTOPIC TRACERS RELATED VARIABLES === |
|---|
| 12 | ! |
|---|
| 13 | ! option 1: on trace evap ocean et continent separement |
|---|
| [3927] | 14 | ! option 2: on trace evap ocean, continent et evap precip |
|---|
| [4325] | 15 | ! option 3: on trace evap differents bassins oceaniques |
|---|
| 16 | ! + continents + residu |
|---|
| 17 | ! attention, choisir dans ce cas les bassins oceaniques |
|---|
| [3927] | 18 | ! dans iso_traceurs_opt3F90.h |
|---|
| [4325] | 19 | ! option 4: tracage par temperature minimale |
|---|
| 20 | ! dans ce cas, on definit des bins dans iso_traceurs_opt4.h |
|---|
| 21 | ! option 5: pour AMMA: on taggue residu/AEJ/flux mousson/Harmattan |
|---|
| [3927] | 22 | ! option 6: taggage des ddfts |
|---|
| [4325] | 23 | ! option 7: pour Sandrine: taggage de la vapeur a 700hPa pour omega500<-20 TODO |
|---|
| 24 | ! option 8: pour Sandrine: taggage de la vapeur entre 950 et 800hPa, omega de 0 a 25 hPa et de l'evaoration en omega<-20. TODO |
|---|
| [3927] | 25 | ! option 9: taggage du condensat et de la revap precip |
|---|
| 26 | ! option 10: taggage evap oce, transpiration et evaporation |
|---|
| 27 | ! fractionante. A utiliser quand on couple avec ORCHIDEE |
|---|
| 28 | ! option 11: comme 2, mais on trace juste revap precip et reste |
|---|
| 29 | ! option 12: taggage evap oce, sol nu, canop et reste evap cont. |
|---|
| 30 | ! A utiliser quand on couple avec ORCHIDEE |
|---|
| [4325] | 31 | ! option 13: taggage temperature minimale + revap precip |
|---|
| 32 | ! option 14: taggage lat et altitude de derniere saturation (niveaux de pression) + evap surf |
|---|
| [3927] | 33 | ! otion 15: taggage irrigation |
|---|
| 34 | ! option 16: taggage precip selon saisons et fonte neige: seulement pour ORCHIDEE |
|---|
| [4325] | 35 | ! option 17: taggage temperature minimum de condensation directement dans la convection et la cond LS, + evap sfc, condensat et precipitation |
|---|
| [3927] | 36 | ! option 18: idem 17 mais on tague qsmin au lieu de Tmin |
|---|
| 37 | ! option 19: on tag vap residuelle, vap residuelle dans ddfts, sfc, cond, rev |
|---|
| 38 | ! option 20: on taggue vapeur tropicale vs vapeur extratropicale |
|---|
| 39 | ! option 21: taggage de 2 boites 3D: extratropiques (>35°) et UT tropicale (15-15°, > 500hPa) |
|---|
| [4325] | 40 | ! option 22: tagage de la vapeur proccessee dans les zones tres convectives |
|---|
| [3927] | 41 | |
|---|
| [4325] | 42 | !--- nzone_opt (value of nzone for the selected option) must be equal to nzone as defined in onfotrac |
|---|
| 43 | REAL, PARAMETER :: ridicule_trac = ridicule * 1e4 |
|---|
| 44 | INTEGER, SAVE :: option_traceurs, nzone_opt, nzoneOR |
|---|
| 45 | !$OMP THREADPRIVATE(option_traceurs,nzone_opt,nzoneOR) |
|---|
| 46 | INTEGER, SAVE :: initialisation_isotrac |
|---|
| 47 | !$OMP THREADPRIVATE(initialisation_isotrac) |
|---|
| 48 | ! 1 pour idealise |
|---|
| 49 | ! 0 pour lecture dans fichier |
|---|
| [3927] | 50 | |
|---|
| [4325] | 51 | !=== VARIABLES SPECIFIC TO THE SELECTED OPTION, BUT NEEDED FOR THE COMPUTATION OF THE NUMBER OF ZONES ; TO BE INITIALIZED IN traceurs_init |
|---|
| [3927] | 52 | |
|---|
| [4325] | 53 | !--- option 3 |
|---|
| 54 | LOGICAL, SAVE :: use_bassin_Austral, use_bassin_Atlantic, use_bassin_MidLats, use_bassin_SouthIndian, use_bassin_MerArabie |
|---|
| 55 | !$OMP THREADPRIVATE(use_bassin_Austral, use_bassin_Atlantic, use_bassin_MidLats, use_bassin_SouthIndian, use_bassin_MerArabie) |
|---|
| 56 | INTEGER, SAVE :: bassin_Austral, bassin_Atlantic, bassin_MidLats, bassin_SouthIndian, bassin_MerArabie |
|---|
| 57 | !$OMP THREADPRIVATE( bassin_Austral, bassin_Atlantic, bassin_MidLats, bassin_SouthIndian, bassin_MerArabie) |
|---|
| 58 | LOGICAL, SAVE :: use_bassin_Pacific, use_bassin_Indian, use_bassin_Tropics, use_bassin_BengalGolf, use_bassin_HighLats, use_bassin_Medit |
|---|
| 59 | !$OMP THREADPRIVATE(use_bassin_Pacific, use_bassin_Indian, use_bassin_Tropics, use_bassin_BengalGolf, use_bassin_HighLats, use_bassin_Medit) |
|---|
| 60 | INTEGER, SAVE :: bassin_Pacific, bassin_Indian, bassin_Tropics, bassin_BengalGolf, bassin_HighLats, bassin_Medit |
|---|
| 61 | !$OMP THREADPRIVATE( bassin_Pacific, bassin_Indian, bassin_Tropics, bassin_BengalGolf, bassin_HighLats, bassin_Medit) |
|---|
| [3927] | 62 | |
|---|
| [4325] | 63 | !--- option 4 |
|---|
| 64 | INTEGER, PARAMETER :: nzone_temp = 1 |
|---|
| 65 | REAL, SAVE :: zone_temp1, zone_tempf, zone_tempa |
|---|
| 66 | !$OMP THREADPRIVATE(zone_temp1, zone_tempf, zone_tempa) |
|---|
| 67 | REAL, SAVE :: zone_temp(nzone_temp-1) |
|---|
| [3927] | 68 | !$OMP THREADPRIVATE(zone_temp) |
|---|
| 69 | |
|---|
| [4325] | 70 | !--- option 5 |
|---|
| 71 | INTEGER, SAVE :: izone_aej, izone_harmattan, izone_mousson |
|---|
| 72 | !$OMP THREADPRIVATE(izone_aej, izone_harmattan, izone_mousson) |
|---|
| [3927] | 73 | |
|---|
| [4325] | 74 | !--- option 6 |
|---|
| 75 | INTEGER, SAVE :: izone_ddft |
|---|
| 76 | !$OMP THREADPRIVATE(izone_ddft) |
|---|
| [3927] | 77 | |
|---|
| [4325] | 78 | !--- option 10 |
|---|
| 79 | INTEGER, SAVE :: izone_contfrac |
|---|
| 80 | !$OMP THREADPRIVATE(izone_contfrac) |
|---|
| [3927] | 81 | |
|---|
| [4325] | 82 | !--- option 12 |
|---|
| 83 | INTEGER, SAVE :: izone_contcanop |
|---|
| 84 | !$OMP THREADPRIVATE(izone_contcanop) |
|---|
| [3927] | 85 | |
|---|
| [4325] | 86 | !--- option 13 |
|---|
| 87 | INTEGER, PARAMETER :: nzone_pres = 3 |
|---|
| 88 | REAL, SAVE :: zone_pres(nzone_pres-1) |
|---|
| 89 | !$OMP THREADPRIVATE(zone_pres) |
|---|
| [3927] | 90 | |
|---|
| [4325] | 91 | !--- option 14 |
|---|
| 92 | INTEGER, PARAMETER :: nzone_lat = 4 |
|---|
| 93 | REAL, SAVE :: zone_pres1, zone_presf, zone_presa |
|---|
| 94 | !$OMP THREADPRIVATE(zone_pres1, zone_presf, zone_presa) |
|---|
| 95 | REAL, SAVE :: dlattag, lattag_min, zone_lat(nzone_lat-1) |
|---|
| 96 | !$OMP THREADPRIVATE(dlattag, lattag_min, zone_lat) |
|---|
| [3927] | 97 | |
|---|
| [4325] | 98 | !--- option 15 |
|---|
| 99 | INTEGER, SAVE :: izone_irrig |
|---|
| 100 | !$OMP THREADPRIVATE(izone_irrig) |
|---|
| [3927] | 101 | |
|---|
| [4325] | 102 | !--- option 17 |
|---|
| 103 | REAL, SAVE :: seuil_tag_tmin, seuil_tag_tmin_ls |
|---|
| 104 | !$OMP THREADPRIVATE(seuil_tag_tmin, seuil_tag_tmin_ls) |
|---|
| 105 | INTEGER, SAVE :: option_seuil_tag_tmin |
|---|
| 106 | !$OMP THREADPRIVATE(option_seuil_tag_tmin) |
|---|
| [3927] | 107 | |
|---|
| [4325] | 108 | !--- option 20 |
|---|
| 109 | INTEGER, SAVE :: izone_trop, izone_extra |
|---|
| 110 | !$OMP THREADPRIVATE(izone_trop, izone_extra) |
|---|
| 111 | REAL, SAVE :: lim_tag20 |
|---|
| 112 | !$OMP THREADPRIVATE(lim_tag20) |
|---|
| [3927] | 113 | |
|---|
| [4325] | 114 | !--- option 21: on garde izone_trop, izone_extra |
|---|
| [3927] | 115 | |
|---|
| [4325] | 116 | !--- option 22 |
|---|
| 117 | INTEGER, SAVE :: izone_conv_BT, izone_conv_UT |
|---|
| 118 | !$OMP THREADPRIVATE(izone_conv_BT, izone_conv_UT) |
|---|
| 119 | REAL, SAVE :: lim_precip_tag22 |
|---|
| 120 | !$OMP THREADPRIVATE(lim_precip_tag22) |
|---|
| [3927] | 121 | |
|---|
| [4325] | 122 | |
|---|
| 123 | INTEGER, ALLOCATABLE, SAVE :: index_iso(:), index_zone(:), itZonIso_loc(:,:) |
|---|
| 124 | !$OMP THREADPRIVATE( index_iso, index_zone, itZonIso_loc) |
|---|
| 125 | CHARACTER(LEN=3), ALLOCATABLE :: strtrac(:) |
|---|
| 126 | !$OMP THREADPRIVATE( strtrac) |
|---|
| 127 | INTEGER, ALLOCATABLE, SAVE :: bassin_map(:), boite_map(:,:) |
|---|
| 128 | !$OMP THREADPRIVATE( bassin_map, boite_map) |
|---|
| [3927] | 129 | |
|---|
| [4325] | 130 | !=== RECYCLING AND EVAPORATION TREATMENT |
|---|
| 131 | INTEGER, SAVE :: izone_cont, izone_oce !--- For land and ocean recycling |
|---|
| 132 | !$OMP THREADPRIVATE(izone_cont, izone_oce) |
|---|
| 133 | INTEGER, SAVE :: izone_poubelle !--- For small numerical residues |
|---|
| 134 | !$OMP THREADPRIVATE(izone_poubelle) |
|---|
| 135 | INTEGER, SAVE :: izone_init !--- For default initialization |
|---|
| 136 | !$OMP THREADPRIVATE(izone_init) |
|---|
| 137 | INTEGER, SAVE :: izone_revap !--- For droplets evaporation |
|---|
| 138 | !$OMP THREADPRIVATE(izone_revap) |
|---|
| 139 | INTEGER, SAVE :: option_revap, option_tmin, option_cond, izone_cond |
|---|
| 140 | !$OMP THREADPRIVATE(option_revap, option_tmin, option_cond, izone_cond) |
|---|
| 141 | REAL, PARAMETER :: evap_franche = 1e-6 !--- In kg/m2/s |
|---|
| [3927] | 142 | |
|---|
| [4325] | 143 | CONTAINS |
|---|
| [3927] | 144 | |
|---|
| [4325] | 145 | SUBROUTINE iso_traceurs_init() |
|---|
| [3927] | 146 | |
|---|
| [4325] | 147 | USE infotrac_phy, ONLY: itZonIso, isoName, isoZone |
|---|
| 148 | USE isotopes_mod, ONLY: iso_eau, ntracisoOR, initialisation_iso |
|---|
| 149 | USE dimphy, ONLY: klon, klev |
|---|
| [5754] | 150 | USE strings_mod, ONLY: num2str, strStack, strTail, strHead, strIdx, maxlen |
|---|
| [3927] | 151 | |
|---|
| [4325] | 152 | IMPLICIT NONE |
|---|
| 153 | ! Define which zones and isotopes correspond to isotopic tagging tracers |
|---|
| 154 | ! Modify traceurs.h variables |
|---|
| 155 | INTEGER :: izone, ixt, k |
|---|
| 156 | INTEGER :: izone_pres, izone_lat |
|---|
| 157 | INTEGER :: nzone_opt |
|---|
| [5754] | 158 | LOGICAL :: lerr |
|---|
| 159 | CHARACTER(LEN=maxlen) :: modname |
|---|
| [3927] | 160 | |
|---|
| [5754] | 161 | modname = 'iso_traceurs_init' |
|---|
| 162 | lerr = iso_eau == 0 |
|---|
| 163 | IF(lerr) CALL abort_physics(TRIM(modname)//' 18', 'isotrac does not work without H216O isotope', 1) |
|---|
| [3927] | 164 | |
|---|
| [4325] | 165 | !--- Initialize |
|---|
| 166 | option_traceurs = 0 |
|---|
| 167 | initialisation_isotrac = 0 |
|---|
| [3927] | 168 | |
|---|
| [4325] | 169 | !--- Allocate |
|---|
| 170 | ALLOCATE(index_iso (ntiso)) |
|---|
| 171 | ALLOCATE(index_zone(ntiso)) |
|---|
| 172 | ALLOCATE(itZonIso_loc(nzone,niso)) |
|---|
| 173 | ALLOCATE(strtrac(nzone)) |
|---|
| 174 | ALLOCATE(bassin_map(klon)) |
|---|
| 175 | ALLOCATE( boite_map(klon,klev)) |
|---|
| [3927] | 176 | |
|---|
| [5754] | 177 | IF(initialisation_iso == 0) CALL getin_p('initialisation_isotrac', initialisation_isotrac) |
|---|
| [3927] | 178 | |
|---|
| [4325] | 179 | !--- Read tracing option |
|---|
| [5754] | 180 | CALL getin_p('option_traceurs', option_traceurs) |
|---|
| [3927] | 181 | |
|---|
| [4325] | 182 | !--- Genral case: no traceurs in ORCHIDEE |
|---|
| 183 | ntracisoOR=niso |
|---|
| [3927] | 184 | |
|---|
| [4325] | 185 | ! partie a editer ! pour definir les differentes zones |
|---|
| 186 | SELECT CASE(option_traceurs) |
|---|
| 187 | !======================================================================================================================== |
|---|
| 188 | CASE(1) !=== TRACING LAND/OCEAN |
|---|
| 189 | !======================================================================================================================== |
|---|
| 190 | nzone_opt=2 |
|---|
| 191 | izone_cont=1 |
|---|
| 192 | izone_oce=2 |
|---|
| 193 | izone_poubelle=2 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 194 | izone_init=2 ! zone d'initialisation par defaut |
|---|
| 195 | option_revap=0 |
|---|
| 196 | option_tmin=0 |
|---|
| 197 | izone_revap=0 |
|---|
| 198 | option_cond=0 |
|---|
| 199 | strtrac(izone_cont) = 'con' |
|---|
| 200 | strtrac(izone_oce) = 'oce' |
|---|
| 201 | !======================================================================================================================== |
|---|
| 202 | CASE(2) !=== TRACING LAND/OCEAN/DROPLETS REEVAPORATION |
|---|
| 203 | !======================================================================================================================== |
|---|
| 204 | nzone_opt=3 |
|---|
| 205 | izone_cont=1 |
|---|
| 206 | izone_oce=2 |
|---|
| 207 | izone_poubelle=2 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 208 | izone_init=2 ! zone d'initialisation par defaut |
|---|
| 209 | option_revap=1 |
|---|
| 210 | option_tmin=0 |
|---|
| 211 | izone_revap=3 |
|---|
| 212 | option_cond=0 |
|---|
| 213 | strtrac(izone_cont) = 'con' |
|---|
| 214 | strtrac(izone_oce) = 'oce' |
|---|
| 215 | strtrac(izone_revap)= 'rev' |
|---|
| 216 | !======================================================================================================================== |
|---|
| 217 | CASE(3) !=== TRACING OCEANS BASINS + RESIDUE (LAST DIMENSION). NO DROPLETS EVAPORATION TRACING. |
|---|
| 218 | !======================================================================================================================== |
|---|
| 219 | ! lire les use_bassin |
|---|
| [5754] | 220 | CALL getin_p('use_bassin_Atlantic', use_bassin_Atlantic) |
|---|
| 221 | CALL getin_p('use_bassin_Medit', use_bassin_Medit) |
|---|
| 222 | CALL getin_p('use_bassin_Indian', use_bassin_Indian) |
|---|
| 223 | CALL getin_p('use_bassin_Austral', use_bassin_Austral) |
|---|
| 224 | CALL getin_p('use_bassin_Pacific', use_bassin_Pacific) |
|---|
| 225 | CALL getin_p('use_bassin_MerArabie', use_bassin_MerArabie) |
|---|
| 226 | CALL getin_p('use_bassin_BengalGolf', use_bassin_BengalGolf) |
|---|
| 227 | CALL getin_p('use_bassin_SouthIndian',use_bassin_SouthIndian) |
|---|
| 228 | CALL getin_p('use_bassin_Tropics', use_bassin_Tropics) |
|---|
| 229 | CALL getin_p('use_bassin_Midlats', use_bassin_Midlats) |
|---|
| 230 | CALL getin_p('use_bassin_HighLats', use_bassin_HighLats) |
|---|
| [4325] | 231 | nzone_opt = 2 + COUNT([use_bassin_Atlantic, use_bassin_Medit, use_bassin_Indian, & |
|---|
| 232 | use_bassin_Austral, use_bassin_Pacific, use_bassin_MerArabie, use_bassin_BengalGolf, & |
|---|
| 233 | use_bassin_SouthIndian, use_bassin_Tropics, use_bassin_Midlats, use_bassin_HighLats]) |
|---|
| 234 | izone_cont=nzone |
|---|
| 235 | izone_oce=0 ! pas de sens car separee en bassins |
|---|
| 236 | izone_poubelle=nzone-1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 237 | izone_init=nzone-1 ! zone d'initialisation par defaut |
|---|
| 238 | option_revap=0 ! on ne trace pas les gouttes |
|---|
| 239 | option_tmin=0 |
|---|
| 240 | izone_revap=0 ! pas de sens car on taggue pas les gouttes separemment |
|---|
| 241 | option_cond=0 |
|---|
| [3927] | 242 | #ifdef ISOVERIF |
|---|
| [4325] | 243 | IF(use_bassin_Indian) THEN !=== NON COMPATIBLE WITH A DETAILED INDIAN CUTTING |
|---|
| 244 | IF(use_bassin_MerArabie .OR. use_bassin_SouthIndian .OR. use_bassin_BengalGolf) THEN |
|---|
| 245 | WRITE(*,*) 'traceurs_init 73'; STOP |
|---|
| 246 | END IF |
|---|
| 247 | ! CALL iso_verif_egalite(float(use_bassin_MerArabie), 0.0, 'iso_traceurs_init 73: revoir def des bassins') |
|---|
| 248 | ! CALL iso_verif_egalite(float(use_bassin_BengalGolf), 0.0, 'iso_traceurs_init 73: revoir def des bassins') |
|---|
| 249 | ! CALL iso_verif_egalite(float(use_bassin_SouthIndian), 0.0, 'iso_traceurs_init 73: revoir def des bassins') |
|---|
| 250 | END IF |
|---|
| [3927] | 251 | #endif |
|---|
| [4325] | 252 | bassin_Atlantic = 1 |
|---|
| 253 | bassin_Medit = bassin_Atlantic + COUNT([use_bassin_Medit]); WRITE(*,*) 'bassin_Atlantic =' ,bassin_Atlantic |
|---|
| 254 | bassin_Indian = bassin_Medit + COUNT([use_bassin_Indian]); WRITE(*,*) 'bassin_Medit =' ,bassin_Medit |
|---|
| 255 | bassin_Austral = bassin_Indian + COUNT([use_bassin_Austral]); WRITE(*,*) 'bassin_Indian =' ,bassin_Indian |
|---|
| 256 | bassin_Pacific = bassin_Austral + COUNT([use_bassin_Pacific]); WRITE(*,*) 'bassin_Austral =' ,bassin_Austral |
|---|
| 257 | bassin_MerArabie = bassin_Pacific + COUNT([use_bassin_MerArabie]); WRITE(*,*) 'bassin_MerArabie =' ,bassin_MerArabie |
|---|
| 258 | bassin_BengalGolf = bassin_MerArabie + COUNT([use_bassin_BengalGolf]); WRITE(*,*) 'bassin_BengalGolf =' ,bassin_BengalGolf |
|---|
| 259 | bassin_SouthIndian= bassin_BengalGolf + COUNT([use_bassin_SouthIndian]); WRITE(*,*) 'bassin_SouthIndian =' ,bassin_SouthIndian |
|---|
| 260 | bassin_Tropics = bassin_SouthIndian + COUNT([use_bassin_Tropics]); WRITE(*,*) 'bassin_Tropics =' ,bassin_Tropics |
|---|
| 261 | bassin_MidLats = bassin_Tropics + COUNT([use_bassin_MidLats]); WRITE(*,*) 'bassin_MidLats =' ,bassin_MidLats |
|---|
| 262 | bassin_HighLats = bassin_MidLats + COUNT([use_bassin_HighLats]); WRITE(*,*) 'bassin_HighLats =' ,bassin_HighLats |
|---|
| 263 | IF(use_bassin_atlantic ) strtrac(bassin_atlantic) = 'atl' |
|---|
| 264 | IF(use_bassin_medit ) strtrac(bassin_medit) = 'med' |
|---|
| 265 | IF(use_bassin_indian ) strtrac(bassin_indian) = 'ind' |
|---|
| 266 | IF(use_bassin_austral ) strtrac(bassin_austral) = 'aus' |
|---|
| 267 | IF(use_bassin_pacific ) strtrac(bassin_pacific) = 'pac' |
|---|
| 268 | IF(use_bassin_merarabie ) strtrac(bassin_merarabie) = 'ara' |
|---|
| 269 | IF(use_bassin_BengalGolf ) strtrac(bassin_BengalGolf) = 'ben' |
|---|
| 270 | IF(use_bassin_SouthIndian) strtrac(bassin_SouthIndian)= 'ins' |
|---|
| 271 | IF(use_bassin_tropics ) strtrac(bassin_tropics) = 'tro' |
|---|
| 272 | IF(use_bassin_midlats ) strtrac(bassin_midlats) = 'mid' |
|---|
| 273 | IF(use_bassin_HighLats ) strtrac(bassin_HighLats) = 'hau' |
|---|
| 274 | strtrac(nzone-1)='res' |
|---|
| 275 | strtrac(nzone)='con' |
|---|
| 276 | !======================================================================================================================== |
|---|
| 277 | CASE(4) !=== TRACING MINIMAL EXPERIENCED TEMPERATURE AS IN THE ARTICLE ON LfG, EXCEPT NO REVAPORATION |
|---|
| 278 | !======================================================================================================================== |
|---|
| 279 | zone_temp1 = 293.0 ! en K |
|---|
| 280 | ! zone_tempf = 223.0 ! en K |
|---|
| 281 | zone_tempf = 243.0 ! en K |
|---|
| 282 | ! courbure de la relation entre l'indice et la temperature: 0 pour lineaire, <0 pour plus de detal en bas |
|---|
| [3927] | 283 | ! zone 1: >= zone_temp1 |
|---|
| [4325] | 284 | ! zone 2 a 4: intermediaire, |
|---|
| [3927] | 285 | ! zone 5: <zone_tempf |
|---|
| [4325] | 286 | nzone_opt=nzone_temp+1 |
|---|
| 287 | zone_tempa=-4.0 ! en K |
|---|
| 288 | izone_cont=nzone |
|---|
| 289 | izone_oce=nzone |
|---|
| 290 | izone_poubelle=nzone |
|---|
| 291 | izone_init=nzone ! zone d'initialisation par defaut |
|---|
| 292 | option_revap=0 |
|---|
| 293 | option_tmin=0 |
|---|
| 294 | izone_revap=0 |
|---|
| 295 | option_cond=0 |
|---|
| 296 | DO izone=1,nzone_temp |
|---|
| [5748] | 297 | strtrac(izone) = 't'//TRIM(num2str(izone)) |
|---|
| [4325] | 298 | WRITE(*,*) 'izone, strtrac=', izone, strtrac(izone) |
|---|
| 299 | END DO |
|---|
| 300 | strtrac(izone_poubelle)='pou' |
|---|
| 301 | ! Initialization of temperatures zones |
|---|
| 302 | DO izone=1,nzone_temp-1 |
|---|
| 303 | zone_temp(izone) = zone_temp1+float(izone-1) & |
|---|
| 304 | * (zone_tempa*float(izone-nzone_temp+1) & |
|---|
| 305 | + (zone_tempf-zone_temp1)/float(nzone_temp-2)) |
|---|
| 306 | END DO |
|---|
| 307 | WRITE(*,*) 'iso_trac_init 183: zone_temp=', zone_temp |
|---|
| 308 | !======================================================================================================================== |
|---|
| 309 | CASE(5) !=== TRACING AEJ/MOONSOON FLUX/Harmattan |
|---|
| 310 | !======================================================================================================================== |
|---|
| 311 | ! WRITE*,*) 'iso_traceurs_init 129' |
|---|
| 312 | nzone_opt=4 |
|---|
| 313 | izone_cont=1 |
|---|
| 314 | izone_oce=1 |
|---|
| 315 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 316 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 317 | option_revap=0 |
|---|
| 318 | option_tmin=0 |
|---|
| 319 | izone_revap=0 |
|---|
| 320 | izone_aej=2 |
|---|
| 321 | izone_mousson=3 |
|---|
| 322 | izone_harmattan=4 |
|---|
| 323 | option_cond=0 |
|---|
| 324 | strtrac(izone_poubelle) = 'res' |
|---|
| 325 | strtrac(izone_aej) = 'aej' |
|---|
| 326 | strtrac(izone_mousson) = 'mou' |
|---|
| 327 | strtrac(izone_harmattan)= 'sah' |
|---|
| 328 | !======================================================================================================================== |
|---|
| 329 | CASE(6) !=== TRACING DDFTS |
|---|
| 330 | !======================================================================================================================== |
|---|
| 331 | nzone_opt=2 |
|---|
| 332 | izone_cont=1 |
|---|
| 333 | izone_oce=1 |
|---|
| 334 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 335 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 336 | option_revap=0 |
|---|
| 337 | option_tmin=0 |
|---|
| 338 | izone_revap=0 |
|---|
| 339 | izone_ddft=2 |
|---|
| 340 | option_cond=0 |
|---|
| 341 | strtrac(izone_poubelle)='res' |
|---|
| 342 | strtrac(izone_ddft)='dft' |
|---|
| 343 | !======================================================================================================================== |
|---|
| 344 | CASE(9) !=== TRACING CONDENSATION |
|---|
| 345 | !======================================================================================================================== |
|---|
| 346 | nzone_opt=3 |
|---|
| 347 | izone_cont=1 |
|---|
| 348 | izone_oce=1 |
|---|
| 349 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 350 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 351 | option_revap=1 |
|---|
| 352 | option_tmin=0 |
|---|
| 353 | izone_revap=2 |
|---|
| 354 | izone_cond=3 |
|---|
| 355 | option_cond=1 |
|---|
| 356 | ! 1 par defaut pour colorier a la fois condensat LS et condensat convectif. |
|---|
| 357 | ! Mais on peut mettre 2 si on ne veut que colorier que le condensat convectif. |
|---|
| [5754] | 358 | CALL getin_p('option_cond',option_cond) |
|---|
| [4325] | 359 | strtrac(izone_poubelle)='res' |
|---|
| 360 | strtrac(izone_cond)='con' |
|---|
| 361 | strtrac(izone_revap)='rev' |
|---|
| 362 | !======================================================================================================================== |
|---|
| 363 | CASE(10) !=== TRACING EVAPORATION FROM OCEAN/LAND, NON FRAC/LAND FRAC ; ONLY WHEN COUPLED WITH ORCHIDEE |
|---|
| 364 | !======================================================================================================================== |
|---|
| 365 | #ifndef CPP_VEGET |
|---|
| 366 | WRITE(*,*) 'iso_traceurs_init 219: option_traceurs=10 inutile si on ne couple pas avec ORCHIDEE'; STOP |
|---|
| [3927] | 367 | #endif |
|---|
| [4325] | 368 | nzone_opt=3 |
|---|
| 369 | izone_cont=1 ! sous-entendu non fractionnant |
|---|
| 370 | izone_oce=2 |
|---|
| 371 | izone_poubelle=2 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 372 | izone_init=2 ! zone d'initialisation par defaut |
|---|
| 373 | option_revap=0 |
|---|
| 374 | option_tmin=0 |
|---|
| 375 | izone_revap=0 |
|---|
| 376 | izone_contfrac=3 |
|---|
| 377 | izone_contcanop=3 |
|---|
| 378 | izone_irrig=0 |
|---|
| 379 | option_cond=0 |
|---|
| 380 | strtrac(izone_oce)='oce' |
|---|
| 381 | strtrac(izone_cont)='con' |
|---|
| 382 | strtrac(izone_contfrac)='enu' ! evap sol nu |
|---|
| 383 | !======================================================================================================================== |
|---|
| 384 | CASE(11) !=== TRACING DROPLETS REEVAPORATION + REST |
|---|
| 385 | !======================================================================================================================== |
|---|
| 386 | nzone_opt=2 |
|---|
| 387 | izone_cont=1 |
|---|
| 388 | izone_oce=1 |
|---|
| 389 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 390 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 391 | option_revap=1 |
|---|
| 392 | option_tmin=0 |
|---|
| 393 | izone_revap=2 |
|---|
| 394 | izone_irrig=0 |
|---|
| 395 | option_cond=0 |
|---|
| 396 | strtrac(izone_poubelle)='res' |
|---|
| 397 | strtrac(izone_revap)='rev' |
|---|
| 398 | !======================================================================================================================== |
|---|
| 399 | CASE(12) !=== TRACING NAKED GROUND EVAPORATION, CANOPY EVAPORATION, REST OF LAND EVAPORATION AND OCEAN EVAPORATION |
|---|
| 400 | !======================================================================================================================== |
|---|
| 401 | #ifndef CPP_VEGET |
|---|
| 402 | WRITE(*,*) 'iso_traceurs_init 257: option_traceurs=10 inutile si on ne couple pas avec ORCHIDEE'; STOP |
|---|
| [3927] | 403 | #endif |
|---|
| [4325] | 404 | nzone_opt=2 |
|---|
| 405 | izone_cont=1 |
|---|
| 406 | izone_oce=2 |
|---|
| 407 | izone_poubelle=2 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 408 | izone_init=2 ! zone d'initialisation par defaut |
|---|
| 409 | option_revap=0 |
|---|
| 410 | option_tmin=0 |
|---|
| 411 | izone_revap=0 |
|---|
| 412 | izone_contfrac=3 |
|---|
| 413 | izone_contcanop=4 |
|---|
| 414 | izone_irrig=0 |
|---|
| 415 | option_cond=0 |
|---|
| 416 | strtrac(izone_oce)='oce' |
|---|
| 417 | strtrac(izone_cont)='con' |
|---|
| 418 | strtrac(izone_contfrac)='enu' ! evap sol nu |
|---|
| 419 | strtrac(izone_contcanop)='eca'! evap canop |
|---|
| 420 | !======================================================================================================================== |
|---|
| 421 | CASE(13) !=== TRACING MINIMUM EXPERIENCED TEMPERATIRES + REEVAPORATION AS IN THE ARTICLE ON LdG |
|---|
| 422 | !======================================================================================================================== |
|---|
| 423 | zone_temp1=293.0 ! en K |
|---|
| 424 | ! zone_tempf=223.0 ! en K |
|---|
| 425 | zone_tempf=243.0 ! en K |
|---|
| 426 | zone_tempa=-4.0 ! courbure de la relation entre l'indice et la temperature: 0 pour lineaire, <0 pour plus de detal en bas |
|---|
| 427 | ! zone 1: >= zone_temp1 |
|---|
| 428 | ! zone 2 a 4: intermediaire, |
|---|
| 429 | ! zone 5: <zone_tempf |
|---|
| 430 | nzone_opt=nzone_temp+1 |
|---|
| 431 | izone_cont=1 |
|---|
| 432 | izone_oce=1 |
|---|
| 433 | izone_poubelle=1 |
|---|
| 434 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 435 | option_revap=1 |
|---|
| 436 | option_tmin=0 |
|---|
| 437 | izone_revap=nzone |
|---|
| 438 | izone_irrig=0 |
|---|
| 439 | option_cond=0 |
|---|
| 440 | DO izone=1,nzone_temp |
|---|
| [5748] | 441 | strtrac(izone) = 't'//TRIM(num2str(izone)) |
|---|
| [4325] | 442 | WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) |
|---|
| 443 | END DO |
|---|
| 444 | strtrac(izone_revap)='rev' |
|---|
| 445 | ! initialisation des zones de tempearture |
|---|
| 446 | DO izone=1,nzone_temp-1 |
|---|
| 447 | zone_temp(izone) = zone_temp1+float(izone-1) & |
|---|
| 448 | *(zone_tempa*float(izone-nzone_temp+1) & |
|---|
| 449 | +(zone_tempf-zone_temp1)/float(nzone_temp-2)) |
|---|
| 450 | END DO |
|---|
| 451 | WRITE(*,*) 'zone_temp=',zone_temp |
|---|
| 452 | !======================================================================================================================== |
|---|
| 453 | CASE(14) !=== TRACING PRES AND LAT OF LAST SATURATION DEFINED AS rh>90% |
|---|
| 454 | !======================================================================================================================== |
|---|
| 455 | zone_pres1=600.0*100.0 ! en Pa |
|---|
| 456 | zone_presf=300.0*100.0 ! en Pa |
|---|
| 457 | zone_presa=0.0 ! courbure de la relation entre l'indice et la temperature: 0 pour lineaire |
|---|
| 458 | lattag_min=10.0 ! en degres |
|---|
| 459 | dlattag=15.0 |
|---|
| 460 | ! zone 1: >= zone_pres1 |
|---|
| 461 | ! zone 2 a 4: intermediaire, |
|---|
| 462 | ! zone 5: <zone_presf |
|---|
| 463 | nzone_opt=nzone_pres*nzone_lat+1 |
|---|
| 464 | izone_cont=nzone |
|---|
| 465 | izone_oce=nzone |
|---|
| 466 | izone_poubelle=nzone |
|---|
| 467 | izone_init=nzone ! zone d'initialisation par defaut |
|---|
| 468 | option_revap=0 |
|---|
| 469 | option_tmin=0 |
|---|
| 470 | izone_revap=0 |
|---|
| 471 | izone_irrig=0 |
|---|
| 472 | option_cond=0 |
|---|
| 473 | DO izone_pres=1,nzone_pres |
|---|
| 474 | DO izone_lat=1,nzone_lat |
|---|
| 475 | izone=izone_lat+(izone_pres-1)*nzone_lat |
|---|
| [5748] | 476 | strtrac(izone) = 't'//TRIM(num2str(izone_pres))//TRIM(num2str(izone_lat)) |
|---|
| [4325] | 477 | write(*,*) 'izone_pres, izone_lat, izone, strtrac = ',izone_pres, izone_lat, izone, strtrac(izone) |
|---|
| 478 | END DO |
|---|
| 479 | END DO |
|---|
| 480 | strtrac(nzone)='sfc' |
|---|
| 481 | ! initialisation des zones de temperature |
|---|
| 482 | DO izone=1,nzone_pres-1 |
|---|
| 483 | zone_pres(izone) = zone_pres1+float(izone-1) & |
|---|
| 484 | *(zone_presa*float(izone-nzone_pres+1) & |
|---|
| 485 | +(zone_presf-zone_pres1)/float(nzone_pres-2)) |
|---|
| 486 | END DO |
|---|
| 487 | WRITE(*,*) 'traceurs_init 332: zone_pres=',zone_pres |
|---|
| 488 | !======================================================================================================================== |
|---|
| 489 | CASE(15) !=== TRACING IRRIGATION IN ORCHIDEE |
|---|
| 490 | !======================================================================================================================== |
|---|
| 491 | #ifndef CPP_VEGET |
|---|
| 492 | WRITE(*,*) 'iso_traceurs_init 257: option_traceurs=15 inutile si on ne couple pas avec ORCHIDEE'; STOP |
|---|
| [3927] | 493 | #endif |
|---|
| [4325] | 494 | nzone_opt=1 |
|---|
| 495 | izone_cont=1 |
|---|
| 496 | izone_oce=1 |
|---|
| 497 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 498 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 499 | option_revap=0 |
|---|
| 500 | option_tmin=0 |
|---|
| 501 | izone_revap=0 |
|---|
| 502 | izone_contfrac=0 |
|---|
| 503 | izone_contcanop=0 |
|---|
| 504 | izone_irrig=2 |
|---|
| 505 | option_cond=0 |
|---|
| 506 | strtrac(izone_poubelle)='res' |
|---|
| 507 | strtrac(izone_irrig)='irrig' |
|---|
| 508 | ! dans ce cas particulier, il y a des traceurs dans ORCHIDEE |
|---|
| 509 | ntracisoOR=ntiso |
|---|
| 510 | !======================================================================================================================== |
|---|
| 511 | CASE(17,18) !=== TRACING MINIMAL EXPERIENCES TEMPERATURES AS IN THE ARTICLE ABOUT LdG, BUT NO EVAPORATION |
|---|
| 512 | !======================================================================================================================== |
|---|
| 513 | zone_temp1=12.0e-3 ! en kg/kg |
|---|
| 514 | zone_tempf=0.2e-3 ! en kg/kg |
|---|
| 515 | zone_tempa=1.2e-3 ! courbure de la relation entre l'indice et la temperature: 0 pour lineaire |
|---|
| 516 | ! zone_temp1=14.0e-3 ! en kg/kg |
|---|
| 517 | ! zone_tempf=0.2e-3 ! en kg/kg |
|---|
| 518 | ! zone_tempa=0.5e-3 |
|---|
| 519 | ! zone_temp1=10.0e-3 ! en kg/kg |
|---|
| 520 | ! zone_tempf=0.5e-3 ! en kg/kg |
|---|
| 521 | ! zone_tempa=0.5e-3 |
|---|
| 522 | ! zone 1: >= zone_temp1 |
|---|
| 523 | ! zone 2 a 4: intermediaire, |
|---|
| 524 | ! zone 5: <zone_tempf |
|---|
| 525 | nzone_opt=nzone_temp+3 |
|---|
| 526 | izone_cont=nzone_temp+1 |
|---|
| 527 | izone_oce=nzone_temp+1 |
|---|
| 528 | izone_poubelle=nzone_temp+1 |
|---|
| 529 | izone_init=nzone_temp+1 ! zone d'initialisation par defaut |
|---|
| 530 | option_revap=1 |
|---|
| 531 | option_tmin=1 |
|---|
| 532 | option_cond=1 |
|---|
| 533 | izone_revap=nzone_temp+3 |
|---|
| 534 | izone_cond=nzone_temp+2 |
|---|
| 535 | DO izone=1,nzone_temp |
|---|
| [5748] | 536 | strtrac(izone) = 't'//TRIM(num2str(izone)) |
|---|
| [4325] | 537 | WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) |
|---|
| 538 | END DO !do izone=1,nzone_temp |
|---|
| 539 | strtrac(izone_poubelle)='sfc' |
|---|
| 540 | strtrac(izone_cond)='con' |
|---|
| 541 | strtrac(izone_revap)='rev' |
|---|
| 542 | ! initialisation des zones de tempearture |
|---|
| 543 | DO izone=1,nzone_temp-1 |
|---|
| 544 | zone_temp(izone) = zone_temp1+float(izone-1) & |
|---|
| 545 | *(zone_tempa*float(izone-nzone_temp+1) & |
|---|
| 546 | +(zone_tempf-zone_temp1)/float(nzone_temp-2)) |
|---|
| 547 | END DO |
|---|
| 548 | WRITE(*,*) 'zone_temp1,zone_tempf,zone_tempa=',zone_temp1,zone_tempf,zone_tempa |
|---|
| 549 | WRITE(*,*) 'zone_temp=',zone_temp |
|---|
| 550 | ! STOP |
|---|
| 551 | !======================================================================================================================== |
|---|
| 552 | CASE(19) !=== TRACING TROPICAL AND EXTRATROPICAL VAPOUR |
|---|
| 553 | !======================================================================================================================== |
|---|
| 554 | zone_temp1=12.0e-3 ! en kg/kg |
|---|
| 555 | zone_tempf=0.2e-3 ! en kg/kg |
|---|
| 556 | zone_tempa=1.2e-3 ! courbure de la relation entre l'indice et la temperature: 0 pour lineaire, <0 pour plus de detail en bas |
|---|
| 557 | ! zone_temp1=14.0e-3 ! en kg/kg |
|---|
| 558 | ! zone_tempf=0.2e-3 ! en kg/kg |
|---|
| 559 | ! zone_tempa=0.5e-3 |
|---|
| 560 | ! zone_temp1=10.0e-3 ! en kg/kg |
|---|
| 561 | ! zone_tempf=0.5e-3 ! en kg/kg |
|---|
| 562 | ! zone_tempa=0.5e-3 |
|---|
| 563 | ! zone 1: >= zone_temp1 |
|---|
| 564 | ! zone 2 a 4: intermediaire, |
|---|
| 565 | ! zone 5: <zone_tempf |
|---|
| 566 | nzone_opt=nzone_temp+4 |
|---|
| 567 | izone_cont=nzone_temp+1 |
|---|
| 568 | izone_oce=nzone_temp+1 |
|---|
| 569 | izone_poubelle=nzone_temp+1 |
|---|
| 570 | IF(option_seuil_tag_tmin == 1) THEN |
|---|
| 571 | izone_init=nzone_temp+1 ! zone d'initialisation par defaut |
|---|
| 572 | ELSE |
|---|
| [3927] | 573 | izone_init=nzone_temp |
|---|
| [4325] | 574 | END IF |
|---|
| 575 | option_revap=1 |
|---|
| 576 | izone_revap=nzone_temp+3 |
|---|
| 577 | izone_cond=nzone_temp+2 |
|---|
| 578 | izone_ddft=nzone_temp+4 |
|---|
| 579 | option_tmin=1 |
|---|
| 580 | option_cond=1 |
|---|
| 581 | DO izone=1,nzone_temp |
|---|
| [5748] | 582 | strtrac(izone) = 't'//TRIM(num2str(izone)) |
|---|
| [4325] | 583 | WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) |
|---|
| 584 | END DO |
|---|
| 585 | strtrac(izone_poubelle)='sfc' |
|---|
| 586 | strtrac(izone_cond)='con' |
|---|
| 587 | strtrac(izone_revap)='rev' |
|---|
| 588 | strtrac(izone_ddft)='dft' |
|---|
| 589 | !======================================================================================================================== |
|---|
| 590 | CASE(20) !=== TRACING TROPICAL/EXTRATROPICAL/EXTRATROPICAL RECYCLING TO STUDY HUMIDITY AND SUBTROPICAL ISOTOPES CONTROL |
|---|
| 591 | !======================================================================================================================== |
|---|
| [5754] | 592 | CALL getin_p('lim_tag20', lim_tag20, 35.0) |
|---|
| [4325] | 593 | nzone_opt=3 |
|---|
| 594 | izone_cont=1 |
|---|
| 595 | izone_oce=1 |
|---|
| 596 | izone_poubelle=2 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 597 | izone_init=2 ! zone d'initialisation par defaut |
|---|
| 598 | option_revap=0 |
|---|
| 599 | option_tmin=0 |
|---|
| 600 | izone_revap=0 |
|---|
| 601 | izone_trop=2 |
|---|
| 602 | izone_extra=3 |
|---|
| 603 | strtrac(izone_trop)='tro' ! tropical vapour |
|---|
| 604 | strtrac(izone_extra)='ext' ! extratropical vapour evaporated in the tropics |
|---|
| 605 | strtrac(izone_cont)='rec' ! recycling |
|---|
| 606 | !======================================================================================================================== |
|---|
| 607 | CASE(21) !=== TRACING TWO 3D BOXES: TROPICAL UT AND EXTRATROPICS ; SIMILAR TO 5 FOR AMMA ZONES TAGGING |
|---|
| 608 | !======================================================================================================================== |
|---|
| 609 | ! WRITE(*,*) 'iso_traceurs_init 129' |
|---|
| 610 | nzone_opt=3 |
|---|
| 611 | izone_cont=1 |
|---|
| 612 | izone_oce=1 |
|---|
| 613 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 614 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 615 | option_revap=0 |
|---|
| 616 | option_tmin=0 |
|---|
| 617 | izone_revap=0 |
|---|
| 618 | izone_trop=2 |
|---|
| 619 | izone_extra=3 |
|---|
| 620 | option_cond=0 |
|---|
| 621 | strtrac(izone_poubelle)='res' |
|---|
| 622 | strtrac(izone_trop)='tro' |
|---|
| 623 | strtrac(izone_extra)='ext' |
|---|
| 624 | !======================================================================================================================== |
|---|
| 625 | CASE(22) !=== TRACING WATER VAPOUR PROCESSED IN THE 3-LEVELS SCONVECTION ZONES BT, MT AND UT |
|---|
| 626 | !======================================================================================================================== |
|---|
| [5754] | 627 | CALL getin_p('lim_precip_tag22', lim_precip_tag22, 20.0) |
|---|
| [4325] | 628 | nzone_opt=3 |
|---|
| 629 | izone_cont=1 |
|---|
| 630 | izone_oce=1 |
|---|
| 631 | izone_poubelle=1 ! zone ou on met les flux non physiques, de reajustement |
|---|
| 632 | izone_init=1 ! zone d'initialisation par defaut |
|---|
| 633 | option_revap=0 |
|---|
| 634 | option_tmin=0 |
|---|
| 635 | izone_revap=0 |
|---|
| 636 | izone_conv_BT=2 |
|---|
| 637 | izone_conv_UT=3 |
|---|
| 638 | option_cond=0 |
|---|
| 639 | strtrac(izone_poubelle)='res' |
|---|
| 640 | strtrac(izone_conv_BT)='cbt' |
|---|
| 641 | strtrac(izone_conv_UT)='cut' |
|---|
| 642 | CASE DEFAULT |
|---|
| [4493] | 643 | WRITE(*,*) 'traceurs_init 36: option pas encore prevue' |
|---|
| 644 | CALL abort_physic ('isotrac_mod 641','option pas encore prevue',1) |
|---|
| [4325] | 645 | END SELECT |
|---|
| [3927] | 646 | |
|---|
| [4325] | 647 | IF(nzone_opt /= nzone) THEN |
|---|
| 648 | WRITE(*,*) 'nzone_opt, nzone=', nzone_opt, nzone |
|---|
| 649 | CALL abort_physic ('isotrac_mod','nzone incoherent',1) |
|---|
| 650 | END IF |
|---|
| [3927] | 651 | |
|---|
| [4325] | 652 | !--- Condensation rate threshold |
|---|
| 653 | IF(option_tmin == 1) THEN |
|---|
| 654 | seuil_tag_tmin = 0.01 |
|---|
| [5754] | 655 | CALL getin_p('seuil_tag_tmin', seuil_tag_tmin, 0.01) |
|---|
| 656 | CALL getin_p('seuil_tag_tmin_ls', seuil_tag_tmin_ls, seuil_tag_tmin) |
|---|
| 657 | CALL getin_p('option_seuil_tag_tmin', option_seuil_tag_tmin, 1) |
|---|
| [4325] | 658 | END IF |
|---|
| [3927] | 659 | |
|---|
| [4403] | 660 | index_zone = [(strIdx(isoZone, strTail(isoName(ixt) ,'_',.TRUE.)), ixt=1, ntiso)] |
|---|
| 661 | index_iso = [(strIdx(isoName, strHead(isoName(ixt) ,'_',.TRUE.)), ixt=1, ntiso)] |
|---|
| [4325] | 662 | itZonIso_loc = itZonIso(:,:) |
|---|
| [3927] | 663 | #ifdef ISOVERIF |
|---|
| [4325] | 664 | WRITE(*,*) 'traceurs_init 65: bilan de l''init:' |
|---|
| [5748] | 665 | WRITE(*,*) 'index_zone = '//TRIM(strStack(num2str(index_zone(1:ntiso)))) |
|---|
| 666 | WRITE(*,*) 'index_iso = '//TRIM(strStack(num2str(index_iso (1:ntiso)))) |
|---|
| [4325] | 667 | DO izone=1,nzone |
|---|
| [5748] | 668 | WRITE(*,*)'itZonIso('//TRIM(num2str(izone))//',:) = '//strStack(num2str(itZonIso(izone,:))) |
|---|
| [4325] | 669 | END DO |
|---|
| 670 | DO izone=1,nzone |
|---|
| [5748] | 671 | WRITE(*,*)'strtrac('//TRIM(num2str(izone))//',:) = '//TRIM(strtrac(izone)) |
|---|
| [4325] | 672 | END DO |
|---|
| 673 | WRITE(*,*) 'ntracisoOR=',ntracisoOR |
|---|
| [3927] | 674 | #endif |
|---|
| 675 | |
|---|
| [4325] | 676 | END SUBROUTINE iso_traceurs_init |
|---|
| [3927] | 677 | |
|---|
| 678 | END MODULE isotrac_mod |
|---|
| 679 | #endif |
|---|
| 680 | #endif |
|---|