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