Ignore:
Timestamp:
Aug 2, 2024, 2:12:03 PM (3 months ago)
Author:
abarral
Message:

Add missing klon on strataer_emiss_mod.F90
Correct various missing explicit declarations
Replace tabs by spaces (tabs are not part of the fortran charset)
Continue cleaning modules
Removed unused arguments and variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmdiso/physiq_mod.F90

    r5153 r5158  
    26042604    WRITE(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
    26052605#endif
    2606     do ixt=1,ntraciso
     2606    DO ixt=1,ntraciso
    26072607#ifdef ISOVERIF
    26082608      WRITE(*,*) 'physiq tmp 1762a: ixt,iqiso_vap=',ixt,iqIsoPha(ixt,ivap)
     
    26842684      WRITE(lunout,*)' WARNING: tr_ancien initialised to tr_seri'
    26852685       itr = 0
    2686        do iq = 1, nqtot
     2686       DO iq = 1, nqtot
    26872687         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    26882688         itr = itr+1
     
    27052705#ifdef ISOVERIF
    27062706      IF ((iso_HDO.gt.0).AND.(iso_O18.gt.0)) THEN
    2707         do i=1,klon
    2708          do k=1,klev
     2707        DO i=1,klon
     2708         DO k=1,klev
    27092709            IF (q_seri(i,k).gt.ridicule) THEN
    27102710               IF (iso_verif_o18_aberrant_nostop( &
     
    27762776         DO k = 1, klev
    27772777         DO i = 1, klon
    2778             do ixt=1,ntraciso
     2778            DO ixt=1,ntraciso
    27792779              d_xt_dyn(ixt,i,k) =  &
    27802780                 (xt_seri(ixt,i,k)-xt_ancien(ixt,i,k))/phys_tstep
     
    27912791         DO k = 1, klev
    27922792         DO i = 1, klon
    2793            do ixt=1,ntraciso
     2793           DO ixt=1,ntraciso
    27942794           CALL iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 2220')
    27952795           CALL iso_verif_noNaN(xtl_seri(ixt,i,k),'physiq 2220b')
     
    28652865         DO k = 1, klev
    28662866          DO i = 1, klon
    2867            do ixt=1,ntraciso
     2867           DO ixt=1,ntraciso
    28682868            d_xt_dyn(ixt,i,k)= 0.0
    28692869            d_xtl_dyn(ixt,i,k)= 0.0
     
    30173017 DO k = 1, klev
    30183018     DO i = 1, klon
    3019       do ixt=1,ntraciso
     3019      DO ixt=1,ntraciso
    30203020      CALL iso_verif_noNaN(xt_seri(ixt,i,k), &
    30213021           'reevap 2417: apres evap tot')
     
    31883188! Conservation des variables avant l'appel à l a diffusion pour les tehrmic  !
    31893189    IF (iflag_thermals_tenv / 10 == 1 ) then                                 !
    3190         do k=1,klev                                                          !
    3191            do i=1,klon                                                       !
     3190        DO k=1,klev                                                          !
     3191           DO i=1,klon                                                       !
    31923192              t_env(i,k)=t_seri(i,k)                                         !
    31933193              q_env(i,k)=q_seri(i,k)   
    31943194#ifdef ISO
    3195               do ixt=1,ntraciso
     3195              DO ixt=1,ntraciso
    31963196                xt_env(ixt,i,k)=xt_seri(ixt,i,k)
    31973197              enddo
     
    32003200        enddo                                                                !
    32013201    ELSE IF (iflag_thermals_tenv / 10 == 2 ) then                            !
    3202         do k=1,klev                                                          !
    3203            do i=1,klon                                                       !
     3202        DO k=1,klev                                                          !
     3203           DO i=1,klon                                                       !
    32043204              t_env(i,k)=t_seri(i,k)                                         !
    32053205           enddo                                                             !
     
    33193319       ! WRITE(*,*) 'physiq 2402: apres pbl_surface'
    33203320#ifdef ISOVERIF
    3321       do i=1,klon
    3322        do k=1,klev
    3323         do ixt=1,ntraciso
     3321      DO i=1,klon
     3322       DO k=1,klev
     3323        DO ixt=1,ntraciso
    33243324            CALL iso_verif_noNaN(d_xt_vdf(ixt,i,k),'physiq 1993a')
    33253325            CALL iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 1993b')
     
    33293329#endif 
    33303330#ifdef ISOVERIF   
    3331       do i=1,klon
    3332        do k=1,klev     
     3331      DO i=1,klon
     3332       DO k=1,klev
    33333333#ifdef ISOTRAC     
    33343334        CALL iso_verif_traceur_justmass(d_xt_vdf(1,i,k),'physiq 2443')
     
    33453345!        WRITE(*,*) 'physiq 2665: d_q_vdf,d_xt_vdf(iso_eau,554,19)=',d_q_vdf(554,19),d_xt_vdf(iso_eau,554,19)
    33463346!        WRITE(*,*) 'd_q_vdf,d_xt_vdf(iso_eau,2,1)=',d_q_vdf(2,1),d_xt_vdf(iso_eau,2,1)
    3347       do i=1,klon
     3347      DO i=1,klon
    33483348!        WRITE(*,*) 'physiq 2667: i,k=',i,k
    33493349!        WRITE(*,*) 'd_q_vdf,d_xt_vdf(iso_eau,554,19)=',d_q_vdf(554,19),d_xt_vdf(iso_eau,554,19)
    33503350!        WRITE(*,*) 'd_q_vdf,d_xt_vdf(iso_eau,2,1)=',d_q_vdf(2,1),d_xt_vdf(iso_eau,2,1)
    3351         do k=1,klev
     3351        DO k=1,klev
    33523352!          WRITE(*,*) 'physiq 2670: i,k=',i,k
    33533353!        WRITE(*,*) 'd_q_vdf,d_xt_vdf(iso_eau,554,19)=',d_q_vdf(554,19),d_xt_vdf(iso_eau,554,19)
     
    33603360                 xt_seri(iso_eau,i,k),q_seri(i,k), &
    33613361                 'physiq 1985',errmax,errmaxrel)
    3362           do nsrf=1,nbsrf
     3362          DO nsrf=1,nbsrf
    33633363              CALL iso_verif_egalite_choix(fluxxt(iso_eau,i,k,nsrf), &
    33643364                 fluxq(i,k,nsrf),'physiq 1991',errmax,errmaxrel)
     
    33683368      endif !if (iso_eau.gt.0) THEN
    33693369      IF ((iso_HDO.gt.0).AND.(iso_O18.gt.0)) THEN
    3370         do i=1,klon
    3371          do k=1,klev
     3370        DO i=1,klon
     3371         DO k=1,klev
    33723372            IF (q_seri(i,k).gt.ridicule) THEN
    33733373               IF (iso_verif_o18_aberrant_nostop( &
     
    36403640         
    36413641#ifdef ISOVERIF
    3642        do k = 1, klev
    3643         do i = 1, klon
     3642       DO k = 1, klev
     3643        DO i = 1, klon
    36443644          CALL iso_verif_positif(q_seri(i,k),'physic 2929')
    36453645        enddo
     
    36523652                 wake_deltaxt, &
    36533653                 'physiq 2704c, wake_deltaxt',ntraciso,klon,klev)
    3654       do k = 1, klev
    3655         do i = 1, klon
    3656            do ixt=1,ntraciso
     3654      DO k = 1, klev
     3655        DO i = 1, klon
     3656           DO ixt=1,ntraciso
    36573657             CALL iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 2757')
    36583658           enddo ! do ixt=1,ntraciso
     
    36733673      endif
    36743674      IF ((iso_HDO.gt.0).AND.(iso_O18.gt.0)) THEN
    3675         do k = 1, klev
    3676         do i = 1, klon
     3675        DO k = 1, klev
     3676        DO i = 1, klon
    36773677            IF (q_seri(i,k).gt.ridicule) THEN
    36783678               IF (iso_verif_o18_aberrant_nostop( &
     
    37033703                q_x(i,k) = q_seri(i,k) - wake_s(i)*wake_deltaq(i,k)
    37043704#ifdef ISO
    3705                 do ixt=1,ntraciso
     3705                DO ixt=1,ntraciso
    37063706                  xt_w(ixt,i,k) = xt_seri(ixt,i,k) + (1-wake_s(i))*wake_deltaxt(ixt,i,k)
    37073707                  xt_x(ixt,i,k) = xt_seri(ixt,i,k) - wake_s(i)*wake_deltaxt(ixt,i,k)
     
    37383738                q_x(:,:) = q_seri(:,:)
    37393739#ifdef ISO
    3740                 do ixt=1,ntraciso
     3740                DO ixt=1,ntraciso
    37413741                  xt_w(ixt,:,:) = xt_seri(ixt,:,:)
    37423742                  xt_x(ixt,:,:) = xt_seri(ixt,:,:)
     
    37773777                      d_deltaq_ajs_cv(i,k) = d_q_adjwk(i,k)
    37783778#ifdef ISO
    3779                       do ixt=1,ntraciso
     3779                      DO ixt=1,ntraciso
    37803780                       xt_w(ixt,i,k) = xt_w(ixt,i,k) + d_xt_adjwk(ixt,i,k)
    37813781                       d_deltaxt_ajs_cv(ixt,i,k) = d_xt_adjwk(ixt,i,k)
     
    37863786                      d_deltaq_ajs_cv(i,k) = 0.
    37873787#ifdef ISO
    3788                       do ixt=1,ntraciso
     3788                      DO ixt=1,ntraciso
    37893789                       d_deltaxt_ajs_cv(ixt,i,k) = 0.
    37903790                      enddo
     
    38263826#ifdef ISOVERIF
    38273827       WRITE(*,*) 'physic 2553: avant appel concvl'
    3828        do k = 1, klev
    3829         do i = 1, klon
    3830            do ixt=1,ntraciso
     3828       DO k = 1, klev
     3829        DO i = 1, klon
     3830           DO ixt=1,ntraciso
    38313831             CALL iso_verif_noNaN(xt_seri(ixt,i,k),'physiq 2925a')
    38323832             CALL iso_verif_noNaN(xt_x(ixt,i,k),'physiq 2925b')
     
    38973897          IF ((bidouille_anti_divergence).AND. &
    38983898                 (iso_eau.gt.0)) THEN
    3899            do k=1,klev
    3900             do i=1,klon 
     3899           DO k=1,klev
     3900            DO i=1,klon
    39013901             xt_seri(iso_eau,i,k)= q_seri(i,k)
    39023902             xt_x(iso_eau,i,k)= q_x(i,k)
     
    40504050                    d_q_con(i,k) = d_q_con(i,k) + wake_s(i)*d_q_adjwk(i,k)
    40514051#ifdef ISO
    4052                    do ixt=1,ntraciso
     4052                   DO ixt=1,ntraciso
    40534053                     fxtd(ixt,i,k) = fxtd(ixt,i,k) + wake_s(i)*d_xt_adjwk(ixt,i,k)/phys_tstep
    40544054                     d_xt_con(ixt,i,k) = d_xt_con(ixt,i,k) + wake_s(i)*d_xt_adjwk(ixt,i,k)
     
    40874087
    40884088       IF (.NOT. ok_gust) THEN
    4089           do i = 1, klon
     4089          DO i = 1, klon
    40904090             wd(i)=0.0
    40914091          enddo
     
    42314231          z_apres(i) = 0.0
    42324232#ifdef ISO
    4233         do ixt=1,ntraciso
     4233        DO ixt=1,ntraciso
    42344234          zxt_apres(ixt,i) = 0.0
    42354235        enddo !do ixt=1,ntraciso
     
    42454245          DO k = 1, klev
    42464246            DO i = 1, klon
    4247               do ixt=1,ntraciso
     4247              DO ixt=1,ntraciso
    42484248                zxt_apres(ixt,i) = zxt_apres(ixt,i)  &
    42494249                  + (xt_seri(ixt,i,k)+xtl_seri(ixt,i,k)) &
     
    42594259#ifdef ISO
    42604260         DO i = 1, klon
    4261             do ixt=1,ntraciso
     4261            DO ixt=1,ntraciso
    42624262              zxt_factor(ixt,i) = (zxt_avant(ixt,i)-(xtrain_con(ixt,i) &
    42634263                +xtsnow_con(ixt,i))*phys_tstep)/zxt_apres(ixt,i)
     
    42714271                q_seri(i,k) = q_seri(i,k) * z_factor(i)
    42724272#ifdef ISO
    4273                 do ixt=1,ntraciso
     4273                DO ixt=1,ntraciso
    42744274                  xt_seri(ixt,i,k)=xt_seri(ixt,i,k)*zxt_factor(ixt,i) 
    42754275                enddo ! do ixt=1,ntraciso
     
    43264326                dq_a(i,k)    = d_q_con(i,k)/phys_tstep - fqd(i,k)
    43274327#ifdef ISO
    4328                 do ixt=1,ntraciso
     4328                DO ixt=1,ntraciso
    43294329                dxt_dwn(ixt,i,k)  = fxtd(ixt,i,k) 
    43304330                dxt_a(ixt,i,k)    = d_xt_con(ixt,i,k)/phys_tstep - fxtd(ixt,i,k)
     
    43424342                     ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/phys_tstep
    43434343#ifdef ISO
    4344              do ixt=1,ntraciso
     4344             DO ixt=1,ntraciso
    43454345                dxt_dwn(:,k,ixt)= dxt_dwn(:,k,ixt)+ &
    43464346                     ok_wk_lsp(:)*(d_xt_eva(:,k,ixt)+d_xt_lsc(:,k,ixt))/phys_tstep
     
    43614361                           ok_wk_lsp(i)*d_q_lsc(i,k)/phys_tstep
    43624362#ifdef ISO
    4363                       do ixt=1,ntraciso
     4363                      DO ixt=1,ntraciso
    43644364                        dxt_dwn(:,k,ixt)= dxt_dwn(:,k,ixt)+ &
    43654365                           ok_wk_lsp(:)*d_xt_lsc(:,k,ixt)/phys_tstep
     
    45164516#ifdef ISOVERIF         
    45174517      WRITE(*,*) 'physiq 3570'
    4518          do k=1,klev
    4519            do i=1,klon
     4518         DO k=1,klev
     4519           DO i=1,klon
    45204520             IF (iso_eau.gt.0) THEN
    45214521                CALL iso_verif_egalite_choix(xt_seri(iso_eau,i,k), &
     
    45644564!#ifdef ISOVERIF         
    45654565       IF ((iso_eau.gt.0).AND.(bidouille_anti_divergence)) THEN
    4566         do k=1,klev   
    4567         do i=1,klon
     4566        DO k=1,klev
     4567        DO i=1,klon
    45684568            xt_seri(iso_eau,i,k)=q_seri(i,k)
    45694569        enddo !do i=1,klon
     
    46024602! A detruire en 2024 une fois les tests documentes et les choix faits        !
    46034603          IF (iflag_thermals_tenv /10 == 0 ) then                            !
    4604             do k=1,klev                                                      !
    4605                do i=1,klon                                                   !
     4604            DO k=1,klev                                                      !
     4605               DO i=1,klon                                                   !
    46064606                  t_env(i,k)=t_seri(i,k)                                     !
    46074607                  q_env(i,k)=q_seri(i,k)                                     !
    46084608#ifdef ISO
    4609                   do ixt=1,ntraciso
     4609                  DO ixt=1,ntraciso
    46104610                        xt_env(ixt,i,k)=xt_seri(ixt,i,k)
    46114611                  enddo
     
    46144614            enddo                                                            !
    46154615          ELSE IF (iflag_thermals_tenv / 10 == 2 ) then                      !
    4616             do k=1,klev                                                      !
    4617                do i=1,klon                                                   !
     4616            DO k=1,klev                                                      !
     4617               DO i=1,klon                                                   !
    46184618                  q_env(i,k)=q_seri(i,k)                                     !
    46194619#ifdef ISO
    4620                   do ixt=1,ntraciso
     4620                  DO ixt=1,ntraciso
    46214621                        xt_env(ixt,i,k)=xt_seri(ixt,i,k)
    46224622                  enddo
     
    46254625            enddo                                                            !
    46264626          ELSE IF (iflag_thermals_tenv / 10 == 3 ) then                      !
    4627             do k=1,klev                                                      !
    4628                do i=1,klon                                                   !
     4627            DO k=1,klev                                                      !
     4628               DO i=1,klon                                                   !
    46294629                  t_env(i,k)=t(i,k)                                          !
    46304630                  q_env(i,k)=qx(i,k,1)                                       !
    46314631#ifdef ISO
    4632                   do ixt=1,ntraciso
     4632                  DO ixt=1,ntraciso
    46334633                        xt_env(ixt,i,k)=xt_seri(ixt,i,k)
    46344634                  enddo
     
    46524652                   v_therm(i,k) = v_seri(i,k)
    46534653#ifdef ISO
    4654                    do ixt=1,ntraciso
     4654                   DO ixt=1,ntraciso
    46554655                     xt_therm(ixt,i,k) = xt_seri(ixt,i,k) - wake_s(i)*wake_deltaxt(ixt,i,k)
    46564656                     xt_env(ixt,i,k) = xt_env(ixt,i,k) - wake_s(i)*wake_deltaxt(ixt,i,k)
     
    46684668                   v_therm(i,k) = v_seri(i,k)
    46694669#ifdef ISO
    4670                    do ixt=1,ntraciso
     4670                   DO ixt=1,ntraciso
    46714671                     xt_therm(ixt,i,k) = xt_seri(ixt,i,k)
    46724672                   enddo !do ixt=1,ntraciso
     
    47404740                   d_q_ajs(i,k) = d_q_ajs(i,k)*(1.-wake_s(i))
    47414741#ifdef ISO
    4742                    do ixt=1,ntraciso
     4742                   DO ixt=1,ntraciso
    47434743                     d_deltaxt_the(ixt,i,k) = - d_xt_ajs(ixt,i,k)
    47444744                     d_xt_ajs(ixt,i,k) = d_xt_ajs(ixt,i,k)*(1.-wake_s(i))
     
    48404840      endif   
    48414841      IF ((iso_HDO.gt.0).AND.(iso_O18.gt.0)) THEN
    4842         do k = 1, klev
    4843         do i = 1, klon
     4842        DO k = 1, klev
     4843        DO i = 1, klon
    48444844            IF (q_seri(i,k).gt.ridicule) THEN
    48454845               IF (iso_verif_o18_aberrant_nostop( &
     
    49534953#endif         
    49544954#ifdef ISOVERIF
    4955        do k=1,klev
    4956         do i=1,klon
     4955       DO k=1,klev
     4956        DO i=1,klon
    49574957           IF ((iso_O17.gt.0).AND.(iso_O18.gt.0)) THEN
    49584958            IF ((q_seri(i,k).gt.ridicule).AND.(k.lt.nlevmaxO17)) THEN
     
    49954995
    49964996        ! verif température
    4997         do k=1,klev
    4998            do i=1,klon
     4997        DO k=1,klev
     4998           DO i=1,klon
    49994999             CALL iso_verif_positif(370.0-t_seri(i,k), &
    50005000                'physiq 3535, avant il pleut')
     
    50085008          IF ((bidouille_anti_divergence).AND. &
    50095009                 (iso_eau.gt.0)) THEN
    5010            do k=1,klev
    5011             do i=1,klon 
     5010           DO k=1,klev
     5011            DO i=1,klon
    50125012             xt_seri(iso_eau,i,k)= q_seri(i,k)
    50135013            enddo !do i=1,klon
     
    50715071#ifdef ISOVERIF
    50725072      DO k = 1, klev
    5073         do i=1,klon
     5073        DO i=1,klon
    50745074        IF (iso_O18.gt.0.AND.iso_HDO.gt.0) THEN
    50755075        IF (ql_seri(i,k).gt.ridicule) THEN
     
    51085108             rain_num(i)=rain_num(i)+(ql_seri(i,k)-oliqmax)*zmasse(i,k)/pdtphys
    51095109#ifdef ISO
    5110              do ixt=1,ntraciso
     5110             DO ixt=1,ntraciso
    51115111                xtl_seri(ixt,i,k)=xtl_seri(ixt,i,k)/ql_seri(i,k)*oliqmax
    51125112             enddo
     
    51225122             rain_num(i)=rain_num(i)+(qs_seri(i,k)-oicemax)*zmasse(i,k)/pdtphys
    51235123#ifdef ISO
    5124              do ixt=1,ntraciso
     5124             DO ixt=1,ntraciso
    51255125                xts_seri(ixt,i,k)=xts_seri(ixt,i,k)/qs_seri(i,k)*oliqmax
    51265126             enddo
     
    52295229      ENDDO !DO k = 1, klev
    52305230      IF ((iso_O17.gt.0).AND.(iso_O18.gt.0)) THEN
    5231         do i=1,klon
    5232           do k=1,nlev
     5231        DO i=1,klon
     5232          DO k=1,nlev
    52335233           IF ((q_seri(i,k).gt.ridicule).AND.(k.lt.nlevmaxO17)) THEN
    52345234            CALL iso_verif_aberrant_o17(xt_seri(iso_o17,i,k) &
     
    54445444#ifdef ISO
    54455445      DO i = 1, klon
    5446          do ixt=1,ntraciso
     5446         DO ixt=1,ntraciso
    54475447           xtrain_fall(ixt,i)=xtrain_con(ixt,i) + xtrain_lsc(ixt,i)
    54485448           xtsnow_fall(ixt,i)=xtsnow_con(ixt,i) + xtsnow_lsc(ixt,i)
     
    54865486#endif
    54875487#ifdef ISOVERIF   
    5488        do i=1,klon   
    5489          do ixt=1,ntraciso           
     5488       DO i=1,klon
     5489         DO ixt=1,ntraciso
    54905490           CALL iso_verif_noNaN(xtsnow_con(ixt,i), &
    54915491                   'physiq 4942')
     
    55005500#ifdef ISO
    55015501        IF ((iso_eau.gt.0).AND.(bidouille_anti_divergence)) THEN
    5502         do i=1,klon
     5502        DO i=1,klon
    55035503            xtrain_fall(iso_eau,i)=rain_fall(i)
    55045504        enddo !do i=1,klon
     
    66006600END IF
    66016601      IF ((iso_HDO.gt.0).AND.(iso_O18.gt.0)) THEN
    6602         do i=1,klon
    6603          do k=1,klev
     6602        DO i=1,klon
     6603         DO k=1,klev
    66046604            IF (q_seri(i,k).gt.ridicule) THEN
    66056605               IF (iso_verif_o18_aberrant_nostop( &
     
    67506750       IF (iso_HTO.gt.0) then ! Tritium
    67516751       ixt=iso_HTO
    6752        do i=1,klon
    6753        do k=1,klev
     6752       DO i=1,klon
     6753       DO k=1,klev
    67546754          IF (iso_verif_positif_strict_nostop(xt_seri(ixt,i,k), &
    67556755            'physiq 5620 : xt_seri(HTO) nul ou negatif').EQ.1) THEN
     
    70937093    ! C Risi: dispatcher les isotopes dans les xt_seri
    70947094#ifdef ISO
    7095     do ixt=1,ntraciso
     7095    DO ixt=1,ntraciso
    70967096      DO k = 1, klev
    70977097       DO i = 1, klon
     
    73097309END IF
    73107310         WRITE(*,*) 'physiq 3731: verif avant phyisoredem'
    7311          do k=1,klev
    7312           do i=1,klon
     7311         DO k=1,klev
     7312          DO i=1,klon
    73137313            IF (iso_eau.gt.0) THEN
    73147314               CALL iso_verif_egalite_choix(xt_ancien(iso_eau,i,k), &
Note: See TracChangeset for help on using the changeset viewer.