Changeset 5791 for LMDZ6/branches/contrails/libf/phylmdiso/isotrac_mod.F90
- Timestamp:
- Jul 28, 2025, 7:23:15 PM (7 days ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5654-5683,5685-5690,5692-5715,5718-5721,5726-5727,5729,5744-5761,5763-5778,5780,5785-5789
- Property svn:mergeinfo changed
-
LMDZ6/branches/contrails/libf/phylmdiso/isotrac_mod.F90
r5199 r5791 4 4 MODULE isotrac_mod 5 5 USE infotrac_phy, ONLY: niso, ntiso, nzone, delPhase 6 USE isotopes_mod, ONLY: ridicule , get_in7 6 USE isotopes_mod, ONLY: ridicule 7 USE ioipsl_getin_p_mod, ONLY : getin_p 8 8 IMPLICIT NONE 9 9 SAVE … … 148 148 USE isotopes_mod, ONLY: iso_eau, ntracisoOR, initialisation_iso 149 149 USE dimphy, ONLY: klon, klev 150 USE strings_mod, ONLY: int2str, strStack, strTail, strHead, strIdx, fmsg150 USE strings_mod, ONLY: num2str, strStack, strTail, strHead, strIdx, maxlen 151 151 152 152 IMPLICIT NONE … … 156 156 INTEGER :: izone_pres, izone_lat 157 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 158 LOGICAL :: lerr 159 CHARACTER(LEN=maxlen) :: modname 160 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) 160 164 161 165 !--- Initialize … … 171 175 ALLOCATE( boite_map(klon,klev)) 172 176 173 IF(initialisation_iso == 0) CALL get _in('initialisation_isotrac', initialisation_isotrac)177 IF(initialisation_iso == 0) CALL getin_p('initialisation_isotrac', initialisation_isotrac) 174 178 175 179 !--- Read tracing option 176 CALL get _in('option_traceurs', option_traceurs)180 CALL getin_p('option_traceurs', option_traceurs) 177 181 178 182 !--- Genral case: no traceurs in ORCHIDEE … … 214 218 !======================================================================================================================== 215 219 ! 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)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) 227 231 nzone_opt = 2 + COUNT([use_bassin_Atlantic, use_bassin_Medit, use_bassin_Indian, & 228 232 use_bassin_Austral, use_bassin_Pacific, use_bassin_MerArabie, use_bassin_BengalGolf, & … … 291 295 option_cond=0 292 296 DO izone=1,nzone_temp 293 strtrac(izone) = 't'//TRIM( int2str(izone))297 strtrac(izone) = 't'//TRIM(num2str(izone)) 294 298 WRITE(*,*) 'izone, strtrac=', izone, strtrac(izone) 295 299 END DO … … 352 356 ! 1 par defaut pour colorier a la fois condensat LS et condensat convectif. 353 357 ! Mais on peut mettre 2 si on ne veut que colorier que le condensat convectif. 354 CALL get _in('option_cond',option_cond)358 CALL getin_p('option_cond',option_cond) 355 359 strtrac(izone_poubelle)='res' 356 360 strtrac(izone_cond)='con' … … 435 439 option_cond=0 436 440 DO izone=1,nzone_temp 437 strtrac(izone) = 't'//TRIM( int2str(izone))441 strtrac(izone) = 't'//TRIM(num2str(izone)) 438 442 WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) 439 443 END DO … … 470 474 DO izone_lat=1,nzone_lat 471 475 izone=izone_lat+(izone_pres-1)*nzone_lat 472 strtrac(izone) = 't'//TRIM( int2str(izone_pres))//TRIM(int2str(izone_lat))476 strtrac(izone) = 't'//TRIM(num2str(izone_pres))//TRIM(num2str(izone_lat)) 473 477 write(*,*) 'izone_pres, izone_lat, izone, strtrac = ',izone_pres, izone_lat, izone, strtrac(izone) 474 478 END DO … … 530 534 izone_cond=nzone_temp+2 531 535 DO izone=1,nzone_temp 532 strtrac(izone) = 't'//TRIM( int2str(izone))536 strtrac(izone) = 't'//TRIM(num2str(izone)) 533 537 WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) 534 538 END DO !do izone=1,nzone_temp … … 576 580 option_cond=1 577 581 DO izone=1,nzone_temp 578 strtrac(izone) = 't'//TRIM( int2str(izone))582 strtrac(izone) = 't'//TRIM(num2str(izone)) 579 583 WRITE(*,*) 'izone, strtrac = ', izone, strtrac(izone) 580 584 END DO … … 586 590 CASE(20) !=== TRACING TROPICAL/EXTRATROPICAL/EXTRATROPICAL RECYCLING TO STUDY HUMIDITY AND SUBTROPICAL ISOTOPES CONTROL 587 591 !======================================================================================================================== 588 CALL get _in('lim_tag20', lim_tag20, 35.0)592 CALL getin_p('lim_tag20', lim_tag20, 35.0) 589 593 nzone_opt=3 590 594 izone_cont=1 … … 621 625 CASE(22) !=== TRACING WATER VAPOUR PROCESSED IN THE 3-LEVELS SCONVECTION ZONES BT, MT AND UT 622 626 !======================================================================================================================== 623 CALL get _in('lim_precip_tag22', lim_precip_tag22, 20.0)627 CALL getin_p('lim_precip_tag22', lim_precip_tag22, 20.0) 624 628 nzone_opt=3 625 629 izone_cont=1 … … 649 653 IF(option_tmin == 1) THEN 650 654 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)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) 654 658 END IF 655 659 … … 659 663 #ifdef ISOVERIF 660 664 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))))665 WRITE(*,*) 'index_zone = '//TRIM(strStack(num2str(index_zone(1:ntiso)))) 666 WRITE(*,*) 'index_iso = '//TRIM(strStack(num2str(index_iso (1:ntiso)))) 663 667 DO izone=1,nzone 664 WRITE(*,*)'itZonIso('//TRIM( int2str(izone))//',:) = '//strStack(int2str(itZonIso(izone,:)))668 WRITE(*,*)'itZonIso('//TRIM(num2str(izone))//',:) = '//strStack(num2str(itZonIso(izone,:))) 665 669 END DO 666 670 DO izone=1,nzone 667 WRITE(*,*)'strtrac('//TRIM( int2str(izone))//',:) = '//TRIM(strtrac(izone))671 WRITE(*,*)'strtrac('//TRIM(num2str(izone))//',:) = '//TRIM(strtrac(izone)) 668 672 END DO 669 673 WRITE(*,*) 'ntracisoOR=',ntracisoOR
Note: See TracChangeset
for help on using the changeset viewer.