Changeset 1305 for trunk/LMDZ.VENUS/libf/phyvenus/physiq.F
- Timestamp:
- Jul 8, 2014, 2:21:53 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/physiq.F
r1301 r1305 56 56 USE ioipsl 57 57 ! USE histcom ! not needed; histcom is included in ioipsl 58 USE chemparam_mod 58 59 USE infotrac 59 60 USE control_mod … … 65 66 USE iophy 66 67 use cpdet_mod, only: cpdet, t2tpot 68 use ieee_arithmetic 67 69 IMPLICIT none 68 70 c====================================================================== … … 198 200 REAL uq(klon) ! integr. verticale du transport zonal de l'eau 199 201 c 202 REAL Fsedim(klon,klev+1) ! Flux de sedimentation (kg.m-2) 200 203 201 204 c====================================================================== … … 285 288 REAL u_seri(klon,klev), v_seri(klon,klev) 286 289 c 287 REAL tr_seri(klon,klev,nqmax) 288 REAL d_tr(klon,klev,nqmax) 290 REAL :: tr_seri(klon,klev,nqmax) 291 REAL :: d_tr(klon,klev,nqmax) 292 293 c Variables tendance sedimentation 294 295 REAL :: d_tr_sed(klon,klev,2) 296 REAL :: d_tr_ssed(klon) 289 297 c 290 298 c pour ioipsl … … 530 538 ENDDO 531 539 540 c--------- 541 c Ecriture fichier initialisation 542 c PRINT*,'Ecriture Initial_State.csv' 543 c OPEN(88,file='Trac_Point.csv', 544 c & form='formatted') 545 c--------- 546 547 c--------- 548 c Initialisation des parametres des nuages 549 c=============================================== 550 551 if ((nlon .EQ. 1) .AND. ok_cloud) then 552 PRINT*,'Open profile_cloud_parameters.csv' 553 OPEN(66,file='profile_cloud_parameters.csv', 554 & form='formatted') 555 endif 556 557 if ((nlon .EQ. 1) .AND. ok_sedim) then 558 PRINT*,'Open profile_cloud_sedim.csv' 559 OPEN(77,file='profile_cloud_sedim.csv', 560 & form='formatted') 561 endif 562 563 if ((nlon .GT. 1) .AND. ok_chem) then 564 c !!! DONC 3D !!! 565 CALL chemparam_ini() 566 endif 532 567 568 if ((nlon .GT. 1) .AND. ok_cloud) then 569 c !!! DONC 3D !!! 570 CALL cloud_ini(nlon,nlev) 571 endif 572 533 573 ENDIF ! debut 534 574 c==================================================================== … … 704 744 if (tr_scheme.eq.1) then 705 745 ! Case 1: pseudo-chemistry with relaxation toward fixed profile 746 706 747 call phytrac_relax (debut,lafin,nqmax, 707 748 I nlon,nlev,dtime,pplay, … … 713 754 ! However, the variable 'source' could be used in physiq 714 755 ! so the call to phytrac_emiss could be to initialise it. 756 715 757 call phytrac_emiss ( (rjourvrai+gmtime)*RDAY, 716 758 I debut,lafin,nqmax, … … 718 760 I rlatd,rlond, 719 761 O tr_seri) 720 elseif (tr_scheme.eq.3) then 721 ! Case 3: Full chemistry 722 ! call phytrac_chem ( ?? ) 723 print*,"Chemistry not yet implemented..." 724 print*,"See Aurelien Stolzenbach" 725 endif 726 endif 762 763 elseif (tr_scheme.eq.3) then ! identical to ok_chem.or.ok_cloud 764 ! Case 3: Full chemistry and/or clouds 765 766 call phytrac_chimie( 767 I debut, 768 I gmtime, 769 I nqmax, 770 I nlon, 771 I rlatd, 772 I rlond, 773 I nlev, 774 I dtime, 775 I t_seri,pplay, 776 O tr_seri, 777 O NBRTOT, 778 O WH2SO4, 779 O rho_droplet) 780 781 c CALL WriteField_phy('Pression',pplay,nlev) 782 c CALL WriteField_phy('PressionBnd',paprs,nlev+1) 783 c CALL WriteField_phy('Temp',t_seri,nlev) 784 c IF (ok_cloud) THEN 785 c CALL WriteField_phy('NBRTOT',NBRTOT,nlev) 786 c ENDIF 787 c CALL WriteField_phy('SAl',tr_seri(:,:,i_h2so4liq),nlev) 788 c CALL WriteField_phy('SAg',tr_seri(:,:,i_h2so4),nlev) 789 790 if (ok_sedim) then 791 792 CALL new_cloud_sedim( 793 I klon, 794 I nlev, 795 I dtime, 796 I pplay, 797 I paprs, 798 I t_seri, 799 I WH2SO4, 800 I tr_seri, 801 I nqmax, 802 I NBRTOT, 803 I rho_droplet, 804 O Fsedim, 805 O d_tr_sed, 806 O d_tr_ssed) 807 808 DO k = 1, klev 809 DO i = 1, klon 810 811 c WRITE(88,"(11(e15.8,','))") pplay(5,25), 812 c & t_seri(5,25),tr_seri(5,25,i_h2oliq), 813 c & tr_seri(5,25,i_h2o),tr_seri(5,25,i_h2so4liq), 814 c & tr_seri(5,25,i_h2so4),NBRTOT(5,25),WH2SO4(5,25), 815 c & Fsedim(5,25),d_tr_sed(5,25,1),d_tr_sed(5,25,2) 816 817 c-------------------- 818 c Ce test est necessaire pour eviter Xliq=NaN 819 IF (ieee_is_nan(d_tr_sed(i,k,1)).OR. 820 & ieee_is_nan(d_tr_sed(i,k,2))) THEN 821 PRINT*,'sedim NaN PROBLEM' 822 PRINT*,'d_tr_sed Nan?',d_tr_sed(i,k,:),'Temp',t_seri(i,k) 823 PRINT*,'lat-lon',i,'level',k,'dtime',dtime 824 PRINT*,'NBRTOT',NBRTOT(i,k),'F_sed',Fsedim(i,k) 825 PRINT*,'===============================================' 826 d_tr_sed(i,k,:)=0. 827 ENDIF 828 c-------------------- 829 830 tr_seri(i,k,i_h2so4liq) = tr_seri(i,k,i_h2so4liq)+ 831 & d_tr_sed(i,k,1) 832 tr_seri(i,k,i_h2oliq) = tr_seri(i,k,i_h2oliq)+ 833 & d_tr_sed(i,k,2) 834 d_tr_sed(i,k,:) = d_tr_sed(i,k,:) / dtime 835 Fsedim(i,k) = Fsedim(i,k) / dtime 836 837 ENDDO 838 ENDDO 839 840 Fsedim(:,klev+1) = 0. 841 842 endif ! ok_sedim 843 844 endif ! tr_scheme 845 endif ! iflag_trac 727 846 728 847 c
Note: See TracChangeset
for help on using the changeset viewer.