Changeset 3331
- Timestamp:
- May 22, 2018, 4:30:21 PM (7 years ago)
- Location:
- LMDZ5/branches/IPSLCM5A2.1_ISO
- Files:
-
- 1007 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/IPSLCM5A2.1_ISO/DefLists/field_def_lmdz.xml
r2875 r3331 418 418 <field id="dqthe2d" long_name="Thermal dQ" unit="(kg/m2)/s" /> 419 419 <field id="dqajs2d" long_name="Dry ajdust dQ" unit="(kg/m2)/s" /> 420 <field id="precipHDO" /> 421 <field id="precipO18" /> 422 <field id="precipeau" /> 423 <field id="plulHDO" /> 424 <field id="plulO18" /> 425 <field id="pluleau" /> 426 <field id="plucHDO" /> 427 <field id="plucO18" /> 428 <field id="pluceau" /> 429 <field id="evapHDO" /> 430 <field id="evapO18" /> 431 <field id="evapeau" /> 420 432 </field_group> 421 433 422 434 <field_group id="fields_3D" domain_ref="dom_glo" axis_ref="presnivs"> 435 <field id="H2Ov_HDO" /> 436 <field id="H2Ov_O18" /> 437 <field id="H2Ov_eau" /> 438 <field id="H2Ol_HDO" /> 439 <field id="H2Ol_O18" /> 440 <field id="H2Ol_eau" /> 441 <field id="ovapHDO" /> 442 <field id="ovapO18" /> 443 <field id="ovapeau" /> 444 <field id="dqdynHDO" /> 445 <field id="dqdynO18" /> 446 <field id="dqdyneau" /> 447 <field id="dqldynHDO" /> 448 <field id="dqldynO18" /> 449 <field id="dqldyneau" /> 450 <field id="dqconHDO" /> 451 <field id="dqconO18" /> 452 <field id="dqconeau" /> 453 <field id="dqvdfHDO" /> 454 <field id="dqvdfO18" /> 455 <field id="dqvdfeau" /> 456 <field id="dqajsHDO" /> 457 <field id="dqajsO18" /> 458 <field id="dqajseau" /> 459 <field id="dqevaHDO" /> 460 <field id="dqevaO18" /> 461 <field id="dqevaeau" /> 462 <field id="dqlscHDO" /> 463 <field id="dqlscO18" /> 464 <field id="dqlsceau" /> 465 <field id="dqch4HDO" /> 466 <field id="dqch4O18" /> 467 <field id="dqch4eau" /> 468 423 469 <field id="tke" long_name="TKE" unit="m2/s2" /> 424 470 <field id="tke_ter" long_name="Max Turb. Kinetic Energy ter" unit="m2/s2" /> … … 628 674 <field id="cumPB" long_name="Cumulated tracer PBVL1" unit="-" /> 629 675 <field id="cumAga" long_name="Cumulated tracer Aga" unit="-" /> 676 <field id="cumH2Ov_HDO" /> 677 <field id="cumH2Ov_O18" /> 678 <field id="cumH2Ov_eau" /> 679 <field id="cumH2Ol_HDO" /> 680 <field id="cumH2Ol_O18" /> 681 <field id="cumH2Ol_eau" /> 630 682 </field_group> 631 683 632 684 <field_group id="fields_trac" domain_ref="dom_glo" axis_ref="presnivs"> 685 <field id="dH2Ov_HDO_vdf" /> 686 <field id="dH2Ov_HDO_the" /> 687 <field id="dH2Ov_HDO_con" /> 688 <field id="dH2Ov_HDO_lessi_impa" /> 689 <field id="dH2Ov_HDO_lessi_nucl" /> 690 <field id="dH2Ov_HDO_insc" /> 691 <field id="dH2Ov_HDO_bcscav" /> 692 <field id="dH2Ov_HDO_evapls" /> 693 <field id="dH2Ov_HDO_ls" /> 694 <field id="dH2Ov_HDO_trsp" /> 695 <field id="dH2Ov_HDO_sscav" /> 696 <field id="dH2Ov_HDO_sat" /> 697 <field id="dH2Ov_HDO_uscav" /> 698 699 <field id="dH2Ov_O18_vdf" /> 700 <field id="dH2Ov_O18_the" /> 701 <field id="dH2Ov_O18_con" /> 702 <field id="dH2Ov_O18_lessi_impa" /> 703 <field id="dH2Ov_O18_lessi_nucl" /> 704 <field id="dH2Ov_O18_insc" /> 705 <field id="dH2Ov_O18_bcscav" /> 706 <field id="dH2Ov_O18_evapls" /> 707 <field id="dH2Ov_O18_ls" /> 708 <field id="dH2Ov_O18_trsp" /> 709 <field id="dH2Ov_O18_sscav" /> 710 <field id="dH2Ov_O18_sat" /> 711 <field id="dH2Ov_O18_uscav" /> 712 713 <field id="dH2Ov_eau_vdf" /> 714 <field id="dH2Ov_eau_the" /> 715 <field id="dH2Ov_eau_con" /> 716 <field id="dH2Ov_eau_lessi_impa" /> 717 <field id="dH2Ov_eau_lessi_nucl" /> 718 <field id="dH2Ov_eau_insc" /> 719 <field id="dH2Ov_eau_bcscav" /> 720 <field id="dH2Ov_eau_evapls" /> 721 <field id="dH2Ov_eau_ls" /> 722 <field id="dH2Ov_eau_trsp" /> 723 <field id="dH2Ov_eau_sscav" /> 724 <field id="dH2Ov_eau_sat" /> 725 <field id="dH2Ov_eau_uscav" /> 726 727 <field id="dH2Ol_HDO_vdf" /> 728 <field id="dH2Ol_HDO_the" /> 729 <field id="dH2Ol_HDO_con" /> 730 <field id="dH2Ol_HDO_lessi_impa" /> 731 <field id="dH2Ol_HDO_lessi_nucl" /> 732 <field id="dH2Ol_HDO_insc" /> 733 <field id="dH2Ol_HDO_bcscav" /> 734 <field id="dH2Ol_HDO_evapls" /> 735 <field id="dH2Ol_HDO_ls" /> 736 <field id="dH2Ol_HDO_trsp" /> 737 <field id="dH2Ol_HDO_sscav" /> 738 <field id="dH2Ol_HDO_sat" /> 739 <field id="dH2Ol_HDO_uscav" /> 740 741 <field id="dH2Ol_O18_vdf" /> 742 <field id="dH2Ol_O18_the" /> 743 <field id="dH2Ol_O18_con" /> 744 <field id="dH2Ol_O18_lessi_impa" /> 745 <field id="dH2Ol_O18_lessi_nucl" /> 746 <field id="dH2Ol_O18_insc" /> 747 <field id="dH2Ol_O18_bcscav" /> 748 <field id="dH2Ol_O18_evapls" /> 749 <field id="dH2Ol_O18_ls" /> 750 <field id="dH2Ol_O18_trsp" /> 751 <field id="dH2Ol_O18_sscav" /> 752 <field id="dH2Ol_O18_sat" /> 753 <field id="dH2Ol_O18_uscav" /> 754 755 <field id="dH2Ol_eau_vdf" /> 756 <field id="dH2Ol_eau_the" /> 757 <field id="dH2Ol_eau_con" /> 758 <field id="dH2Ol_eau_lessi_impa" /> 759 <field id="dH2Ol_eau_lessi_nucl" /> 760 <field id="dH2Ol_eau_insc" /> 761 <field id="dH2Ol_eau_bcscav" /> 762 <field id="dH2Ol_eau_evapls" /> 763 <field id="dH2Ol_eau_ls" /> 764 <field id="dH2Ol_eau_trsp" /> 765 <field id="dH2Ol_eau_sscav" /> 766 <field id="dH2Ol_eau_sat" /> 767 <field id="dH2Ol_eau_uscav" /> 768 633 769 <field id="RN" long_name="Tracer RNVL1" unit="-" /> 634 770 <field id="dRN_vdf" long_name="Tendance tracer RNVL1" unit="-" /> -
LMDZ5/branches/IPSLCM5A2.1_ISO/DefLists/file_def_histmth_lmdz.xml
r2589 r3331 1 1 2 <file_definition> 2 3 <file_group id="defile"> … … 409 410 <field field_ref="dqthe2d" level="4" /> 410 411 <field field_ref="dqajs2d" level="4" /> 412 413 <field field_ref="precipHDO" level="1" /> 414 <field field_ref="precipO18" level="1" /> 415 <field field_ref="precipeau" level="1" /> 416 <field field_ref="plulHDO" level="1" /> 417 <field field_ref="plulO18" level="1" /> 418 <field field_ref="pluleau" level="1" /> 419 <field field_ref="plucHDO" level="1" /> 420 <field field_ref="plucO18" level="1" /> 421 <field field_ref="pluceau" level="1" /> 422 <field field_ref="evapHDO" level="1" /> 423 <field field_ref="evapO18" level="1" /> 424 <field field_ref="evapeau" level="1" /> 425 426 427 428 429 430 411 431 </field_group> 412 432 … … 565 585 <field field_ref="rsdcs4co2" level="5" /> 566 586 <field field_ref="rldcs4co2" level="5" /> 587 588 <field field_ref="ovapHDO" level="1" /> 589 <field field_ref="ovapO18" level="1" /> 590 <field field_ref="ovapeau" level="1" /> 591 <field field_ref="dqdynHDO" level="1" /> 592 <field field_ref="dqdynO18" level="1" /> 593 <field field_ref="dqdyneau" level="1" /> 594 <field field_ref="dqldynHDO" level="1" /> 595 <field field_ref="dqldynO18" level="1" /> 596 <field field_ref="dqldyneau" level="1" /> 597 <field field_ref="dqconHDO" level="1" /> 598 <field field_ref="dqconO18" level="1" /> 599 <field field_ref="dqconeau" level="1" /> 600 <field field_ref="dqvdfHDO" level="1" /> 601 <field field_ref="dqvdfO18" level="1" /> 602 <field field_ref="dqvdfeau" level="1" /> 603 <field field_ref="dqajsHDO" level="1" /> 604 <field field_ref="dqajsO18" level="1" /> 605 <field field_ref="dqajseau" level="1" /> 606 <field field_ref="dqevaHDO" level="1" /> 607 <field field_ref="dqevaO18" level="1" /> 608 <field field_ref="dqevaeau" level="1" /> 609 <field field_ref="dqlscHDO" level="1" /> 610 <field field_ref="dqlscO18" level="1" /> 611 <field field_ref="dqlsceau" level="1" /> 612 <field field_ref="dqch4HDO" level="1" /> 613 <field field_ref="dqch4O18" level="1" /> 614 <field field_ref="dqch4eau" level="1" /> 615 616 617 567 618 </field_group> 568 619 </file> -
LMDZ5/branches/IPSLCM5A2.1_ISO/libf/dyn3d_common/infotrac.F90
r2567 r3331 11 11 ! number of tracers used in the physics 12 12 INTEGER, SAVE :: nbtr 13 14 ! CRisi: on retranche les isotopes des traceurs habituels 15 ! On fait un tableaux d'indices des traceurs qui passeront dans phytrac 16 INTEGER, SAVE :: nqtottr 17 INTEGER, ALLOCATABLE, DIMENSION(:), SAVE :: itr_indice 13 18 14 19 ! CRisi: nb traceurs pères= directement advectés par l'air … … 98 103 99 104 INTEGER :: nqtrue ! number of tracers read from tracer.def, without higer order of moment 100 INTEGER :: iq, new_iq, iiq, jq, ierr 105 INTEGER :: iq, new_iq, iiq, jq, ierr,itr 101 106 INTEGER :: ifils,ipere,generation ! CRisi 102 107 LOGICAL :: continu,nouveau_traceurdef 103 108 INTEGER :: IOstatus ! gestion de la retrocompatibilite de traceur.def 104 CHARACTER(len= 15) :: tchaine109 CHARACTER(len=30) :: tchaine 105 110 106 111 character(len=*),parameter :: modname="infotrac_init" … … 203 208 CALL abort_gcm('infotrac_init','Bad number of water phases',1) 204 209 END IF 205 ! nbtr has been read from INCA by init_const_lmdz() in gcm.F 206 #ifdef INCA 207 CALL Init_chem_inca_trac(nbtr) 208 #endif 209 nqtrue=nbtr+nqo 210 211 ALLOCATE(hadv_inca(nbtr), vadv_inca(nbtr)) 210 ! On déplace ce qui suit plus bas, une fois qu'on connait nbtr retranché des 211 ! isotopes 212 ! ! nbtr has been read from INCA by init_const_lmdz() in gcm.F 213 !#ifdef INCA 214 ! CALL Init_chem_inca_trac(nbtr) 215 !#endif 216 ! nqtrue=nbtr+nqo 217 ! 218 ! ALLOCATE(hadv_inca(nbtr), vadv_inca(nbtr)) 212 219 213 220 END IF ! type_trac … … 300 307 write(lunout,*) 'C''est la nouvelle version de traceur.def' 301 308 tnom_0(iq)=tchaine(1:iiq-1) 302 tnom_transp(iq)=tchaine(iiq+1: 15)309 tnom_transp(iq)=tchaine(iiq+1:LEN_TRIM(tchaine)) 303 310 else 304 311 write(lunout,*) 'C''est l''ancienne version de traceur.def' … … 364 371 !jyg< 365 372 ! 366 ! Transfert number of tracers to Reprobus 367 IF (type_trac == 'repr') THEN 368 #ifdef REPROBUS 369 CALL Init_chem_rep_trac(nbtr) 370 #endif 371 END IF 373 ! On déplace ce qui suit plus bas une fois qu'on a retranché les isotopes de 374 ! nbtr 375 !! Transfert number of tracers to Reprobus 376 ! IF (type_trac == 'repr') THEN 377 !#ifdef REPROBUS 378 ! CALL Init_chem_rep_trac(nbtr) 379 !#endif 380 ! END IF 372 381 ! 373 382 ! Allocate variables depending on nbtr 374 383 ! 375 ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr))376 conv_flg(:) = 1 ! convection activated for all tracers377 pbl_flg(:) = 1 ! boundary layer activated for all tracers384 ! ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr)) 385 ! conv_flg(:) = 1 ! convection activated for all tracers 386 ! pbl_flg(:) = 1 ! boundary layer activated for all tracers 378 387 ! 379 388 !! ELSE ! type_trac=inca : config_inca='aero' ou 'chem' … … 416 425 write(lunout,*) 'C''est la nouvelle version de traceur.def' 417 426 tnom_0(iq)=tchaine(1:iiq-1) 418 tnom_transp(iq)=tchaine(iiq+1: 15)427 tnom_transp(iq)=tchaine(iiq+1:LEN_TRIM(tchaine)) 419 428 else 420 429 write(lunout,*) 'C''est l''ancienne version de traceur.def' … … 423 432 tnom_transp(iq) = 'air' 424 433 endif 425 write(lunout,*) ' tnom_0(iq)=<',trim(tnom_0(iq)),'>'434 write(lunout,*) 'infotrac 426: tnom_0(iq)=<',trim(tnom_0(iq)),'>' 426 435 write(lunout,*) 'tnom_transp(iq)=<',trim(tnom_transp(iq)),'>' 427 436 … … 607 616 continu=.true. 608 617 ipere=1 609 do while (continu) 618 do while (continu) 619 write(lunout,*) 'infotrac 610: ipere,tnom_0(ipere)=',ipere,tnom_0(ipere) 620 write(lunout,*) 'tnom_transp(iq)=',tnom_transp(iq) 610 621 if (tnom_transp(iq) == tnom_0(ipere)) then 611 622 ! Son père est ipere 612 623 WRITE(lunout,*) 'Le traceur',iq,'appele ', & 613 624 & trim(tnom_0(iq)),' est le fils de ',ipere,'appele ',trim(tnom_0(ipere)) 625 if (iq.eq.ipere) then 626 CALL abort_gcm('infotrac_init','Un fils est son propre pere',1) 627 endif 614 628 nqfils(ipere)=nqfils(ipere)+1 615 629 iqfils(nqfils(ipere),ipere)=iq … … 621 635 WRITE(lunout,*) 'Le traceur',iq,'appele ', & 622 636 & trim(tnom_0(iq)),', est orpelin.' 637 write(lunout,*) 'ipere,nqtot=',ipere,nqtot 623 638 CALL abort_gcm('infotrac_init','Un traceur est orphelin',1) 624 639 endif !if (ipere.gt.nqtot) then … … 676 691 ! detecter quels sont les traceurs isotopiques parmi des traceurs 677 692 call infotrac_isoinit(tnom_0,nqtrue) 693 694 if (ntraciso.gt.0) then 695 ! retrancher les traceurs isotopiques de la liste des traceurs qui passent dans 696 ! phytrac 697 nbtr=nbtr-nqo*ntraciso 698 699 ! faire un tableau d'indice des traceurs qui passeront dans phytrac 700 nqtottr=nqtot-nqo*(1+ntraciso) 701 write(*,*) 'infotrac 704: nqtottr,nqtot,nqo=',nqtottr,nqtot,nqo 702 ! Rq: nqtottr n'est pas forcément égal à nbtr dans le cas où new_iq /= nqtrue 703 ALLOCATE (itr_indice(nqtot)) 704 itr_indice(:)=0 705 itr=0 706 do iq=nqo+1, nqtot 707 if (iso_num(iq).eq.0) then 708 itr=itr+1 709 write(*,*) 'itr=',itr 710 itr_indice(itr)=iq 711 endif !if (iso_num(iq).eq.0) then 712 enddo 713 if (itr.ne.nqtottr) then 714 CALL abort_gcm('infotrac_init','pb dans le calcul de nqtottr',1) 715 endif 716 endif !if (ntraciso.gt.0) then 717 718 ! on déplace les initialisations de REPROBUS ou INCA ici, avec la nouvelle 719 ! valeur de nbtr 720 721 if (type_trac == 'inca') then 722 ! nbtr has been read from INCA by init_const_lmdz() in gcm.F 723 #ifdef INCA 724 CALL Init_chem_inca_trac(nbtr) 725 #endif 726 nqtrue=nbtr+nqo 727 728 ALLOCATE(hadv_inca(nbtr), vadv_inca(nbtr)) 729 endif 730 731 ! Transfert number of tracers to Reprobus 732 IF (type_trac == 'repr') THEN 733 #ifdef REPROBUS 734 CALL Init_chem_rep_trac(nbtr) 735 #endif 736 END IF 737 ! 738 ! Allocate variables depending on nbtr 739 ! 740 ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr)) 741 conv_flg(:) = 1 ! convection activated for all tracers 742 pbl_flg(:) = 1 ! boundary layer activated for all tracers 743 678 744 679 745 !----------------------------------------------------------------------- … … 732 798 733 799 do iq=nqo+1,nqtot 734 !write(lunout,*) 'infotrac 569: iq,tnom_0(iq)=',iq,tnom_0(iq)800 write(lunout,*) 'infotrac 569: iq,tnom_0(iq)=',iq,tnom_0(iq) 735 801 do phase=1,nqo 736 802 do ixt= 1,niso_possibles 737 803 tnom_trac=trim(tnom_0(phase))//'_' 738 804 tnom_trac=trim(tnom_trac)//trim(tnom_iso(ixt)) 739 !write(*,*) 'phase,ixt,tnom_trac=',phase,ixt,tnom_trac805 write(*,*) 'phase,ixt,tnom_trac=',phase,ixt,tnom_trac 740 806 IF (tnom_0(iq) == tnom_trac) then 741 !write(lunout,*) 'Ce traceur est un isotope'807 write(lunout,*) 'Ce traceur est un isotope' 742 808 nb_iso(ixt,phase)=nb_iso(ixt,phase)+1 743 809 nb_isoind(phase)=nb_isoind(phase)+1 … … 746 812 indnum_fn_num(ixt)=iso_indnum(iq) 747 813 phase_num(iq)=phase 748 !write(lunout,*) 'iso_num(iq)=',iso_num(iq)749 !write(lunout,*) 'iso_indnum(iq)=',iso_indnum(iq)750 !write(lunout,*) 'indnum_fn_num(ixt)=',indnum_fn_num(ixt)751 !write(lunout,*) 'phase_num(iq)=',phase_num(iq)814 write(lunout,*) 'iso_num(iq)=',iso_num(iq) 815 write(lunout,*) 'iso_indnum(iq)=',iso_indnum(iq) 816 write(lunout,*) 'indnum_fn_num(ixt)=',indnum_fn_num(ixt) 817 write(lunout,*) 'phase_num(iq)=',phase_num(iq) 752 818 goto 20 753 819 else if (iqpere(iq).gt.0) then 754 820 if (tnom_0(iqpere(iq)) == tnom_trac) then 755 !write(lunout,*) 'Ce traceur est le fils d''un isotope'821 write(lunout,*) 'Ce traceur est le fils d''un isotope' 756 822 ! c'est un traceur d'isotope 757 823 nb_traciso(ixt,phase)=nb_traciso(ixt,phase)+1 … … 760 826 zone_num(iq)=nb_traciso(ixt,phase) 761 827 phase_num(iq)=phase 762 !write(lunout,*) 'iso_num(iq)=',iso_num(iq)763 !write(lunout,*) 'phase_num(iq)=',phase_num(iq)764 !write(lunout,*) 'zone_num(iq)=',zone_num(iq)828 write(lunout,*) 'iso_num(iq)=',iso_num(iq) 829 write(lunout,*) 'phase_num(iq)=',phase_num(iq) 830 write(lunout,*) 'zone_num(iq)=',zone_num(iq) 765 831 goto 20 766 832 endif !if (tnom_0(iqpere(iq)) == trim(tnom_0(phase))//trim(tnom_iso(ixt))) then … … 771 837 enddo !do iq=1,nqtot 772 838 773 ! write(lunout,*) 'iso_num=',iso_num 774 ! write(lunout,*) 'iso_indnum=',iso_indnum 775 ! write(lunout,*) 'zone_num=',zone_num 776 ! write(lunout,*) 'phase_num=',phase_num 777 ! write(lunout,*) 'indnum_fn_num=',indnum_fn_num 839 write(lunout,*) 'iso_num=',iso_num 840 write(lunout,*) 'iso_indnum=',iso_indnum 841 write(lunout,*) 'zone_num=',zone_num 842 write(lunout,*) 'phase_num=',phase_num 843 write(lunout,*) 'indnum_fn_num=',indnum_fn_num 844 write(lunout,*) 'nb_iso=',nb_iso 778 845 779 846 do ixt= 1,niso_possibles … … 823 890 ! dimensions isotopique: 824 891 ntraciso=niso*(ntraceurs_zone+1) 825 ! WRITE(lunout,*) 'niso=',niso 826 ! WRITE(lunout,*) 'ntraceurs_zone,ntraciso=',ntraceurs_zone,ntraciso 892 WRITE(lunout,*) 'niso=',niso 893 WRITE(lunout,*) 'ntraceurs_zone,ntraciso=',ntraceurs_zone,ntraciso 894 WRITE(lunout,*) 'use_iso=',use_iso 827 895 828 896 ! flags isotopiques: … … 832 900 ok_isotopes=.false. 833 901 endif 834 ! WRITE(lunout,*) 'ok_isotopes=',ok_isotopes902 WRITE(lunout,*) 'infotrac 837: ok_isotopes=',ok_isotopes 835 903 836 904 if (ok_isotopes) then -
LMDZ5/branches/IPSLCM5A2.1_ISO/libf/dyn3dmem/check_isotopes_loc.F
r2281 r3331 12 12 13 13 ! locals 14 integer ixt,phase,k,i,iq,iiso,izone,ieau,iqeau 14 integer ixt,phase,k,i,iq,iiso,izone,ieau,iqeau,ixt2,iq2 15 15 real xtractot,xiiso 16 16 real borne … … 24 24 parameter (errmaxrel=1e-3) 25 25 parameter (qmin=1e-11) 26 parameter (deltaDmax= 200.0,deltaDmin=-999.9)26 parameter (deltaDmax=1000.0,deltaDmin=-999.0) 27 27 parameter (ridicule=1e-12) 28 28 real deltaD 29 real dexcessmax,dexcessmin 30 parameter (dexcessmax=6000.0,dexcessmin=-100.0) 29 31 30 32 if (ok_isotopes) then … … 134 136 enddo ! do phase=1,nqo 135 137 endif !if (use_iso(2)) then 138 139 !write(*,*) 'check_isotopes 103' 140 ! verifier que dexcess est raisonable 141 if (use_iso(3).and.use_iso(2)) then 142 ixt=indnum_fn_num(3) 143 ixt2=indnum_fn_num(2) 144 do phase=1,nqo 145 iq=iqiso(ixt,phase) 146 iq2=iqiso(ixt2,phase) 147 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 148 do k=1,llm 149 DO i = ijb,ije 150 if (q(i,k,iq).gt.qmin) then 151 deltaD=(q(i,k,iq2)/q(i,k,phase)/tnat(2)-1)*1000 152 & -8.0*(q(i,k,iq)/q(i,k,phase)/tnat(3)-1)*1000 153 if ((deltaD.gt.dexcessmax).or.(deltaD.lt.dexcessmin)) then 154 write(*,*) 'erreur detectee iso_verif_aberrant O18:' 155 write(*,*) err_msg 156 write(*,*) 'ixt,ixt2,phase=',ixt,ixt2,phase 157 write(*,*) 'q,iq,i,k,=',q(i,k,phase),iq,i,k 158 write(*,*) 'xt=',q(i,k,:) 159 write(*,*) 'dexcess=',deltaD 160 stop 161 endif !if ((deltaD.gt.deltaDmax).or.(deltaD.lt.deltaDmin)) then 162 endif !if (q(i,k,iq).gt.qmin) then 163 enddo !DO i = ijb,ije 164 enddo !do k=1,llm 165 c$OMP END DO NOWAIT 166 enddo ! do phase=1,nqo 167 endif !if (use_iso(2)) then 168 136 169 137 170 -
LMDZ5/branches/IPSLCM5A2.1_ISO/libf/dyn3dmem/dynetat0_loc.f90
r3229 r3331 153 153 DO iq=1,nqtot 154 154 var=tname(iq) 155 #ifdef INCA156 IF (var .eq. "O3" ) THEN157 IF(NF90_INQ_VARID(fID,var,vID) == NF90_NoErr) THEN158 CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:); CYCLE159 ELSE160 WRITE(lunout,*) 'Tracer O3 is missing - it is initialized to OX'161 IF(NF90_INQ_VARID(fID,"OX",vID) == NF90_NoErr) THEN162 CALL get_var2("OX",q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:); CYCLE163 ENDIF164 ENDIF165 ENDIF166 #endif167 155 IF(NF90_INQ_VARID(fID,var,vID)==NF90_NoErr) THEN 168 156 CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:); CYCLE … … 171 159 WRITE(lunout,*)" It is hence initialized to zero" 172 160 q(ijb_u:ije_u,:,iq)=0. 161 END DO !DO iq=1,nqtot 162 173 163 !--- CRisi: for isotops, theoretical initialization using very simplified 174 ! Rayleigh distillation las. 164 ! Rayleigh distillation. 165 DO iq=1,nqtot 166 if (ok_iso_verif) then 167 write(*,*) 'dynetat0_loc 167: iq,iso_num(iq),iqpere(iq)=',iq,iso_num(iq),iqpere(iq) 168 endif 175 169 IF(ok_isotopes.AND.iso_num(iq)>0) THEN 176 170 IF(zone_num(iq)==0) q(:,:,iq)=q(:,:,iqpere(iq))*tnat(iso_num(iq)) & … … 178 172 IF(zone_num(iq)==1) q(:,:,iq)=q(:,:,iqiso(iso_indnum(iq),phase_num(iq))) 179 173 END IF 180 END DO 174 END DO !DO iq=1,nqtot 175 176 if (ok_iso_verif) then 177 call check_isotopes(q,ijb_u,ije_u,'dynetat0_loc 171') 178 endif !if (ok_iso_verif) then 179 181 180 DEALLOCATE(q_glo) 182 181 CALL err(NF90_CLOSE(fID),"close",fichnom) -
LMDZ5/branches/IPSLCM5A2.1_ISO/libf/phylmd/calcul_fluxs_mod.F90
r2538 r3331 215 215 zx_nh(i) + zx_sl(i) * zx_nq(i)) & 216 216 + dtime * dif_grnd(i)) 217 218 217 ! 219 218 ! Y'a-t-il fonte de neige?
Note: See TracChangeset
for help on using the changeset viewer.