New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9186 for branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90 – NEMO

Ignore:
Timestamp:
2018-01-05T14:29:29+01:00 (6 years ago)
Author:
dford
Message:

Initial implementation of 3D biogeochemistry observation operator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90

    r7992 r9186  
    219219               &                ldgrid = .TRUE. ) 
    220220 
    221             IF ( inpfiles(jj)%nvar < 2 ) THEN 
     221            IF ( inpfiles(jj)%nvar /= kvars ) THEN 
    222222               CALL ctl_stop( 'Feedback format error: ', & 
    223                   &           ' less than 2 vars in profile file' ) 
     223                  &           ' unexpected number of vars in profile file' ) 
    224224            ENDIF 
    225225 
     
    320320            ALLOCATE( iobsj1(inowin) ) 
    321321            ALLOCATE( iproc1(inowin) ) 
    322             ALLOCATE( iobsi2(inowin) ) 
    323             ALLOCATE( iobsj2(inowin) ) 
    324             ALLOCATE( iproc2(inowin) ) 
     322            IF ( kvars == 2 ) THEN 
     323               ALLOCATE( iobsi2(inowin) ) 
     324               ALLOCATE( iobsj2(inowin) ) 
     325               ALLOCATE( iproc2(inowin) ) 
     326            ENDIF 
    325327            inowin = 0 
    326328            DO ji = 1, inpfiles(jj)%nobs 
    327329               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    328                IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    329                   & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     330               IF ( kvars == 2 ) THEN 
     331                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     332                     & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     333               ELSE 
     334                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     335               ENDIF 
    330336               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    331337                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    347353               CALL obs_grid_search( inowin, zlam, zphi, iobsi2, iobsj2, & 
    348354                  &                  iproc2, 'V' ) 
     355            ELSE 
     356               CALL obs_grid_search( inowin, zlam, zphi, iobsi1, iobsj1, & 
     357                  &                  iproc1, 'T' ) 
    349358            ENDIF 
    350359 
     
    352361            DO ji = 1, inpfiles(jj)%nobs 
    353362               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    354                IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    355                   & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     363               IF ( kvars == 2 ) THEN 
     364                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     365                     & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     366               ELSE 
     367                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     368               ENDIF 
    356369               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    357370                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    360373                  inpfiles(jj)%iobsi(ji,1) = iobsi1(inowin) 
    361374                  inpfiles(jj)%iobsj(ji,1) = iobsj1(inowin) 
    362                   inpfiles(jj)%iproc(ji,2) = iproc2(inowin) 
    363                   inpfiles(jj)%iobsi(ji,2) = iobsi2(inowin) 
    364                   inpfiles(jj)%iobsj(ji,2) = iobsj2(inowin) 
    365                   IF ( inpfiles(jj)%iproc(ji,1) /= & 
    366                      & inpfiles(jj)%iproc(ji,2) ) THEN 
    367                      CALL ctl_stop( 'Error in obs_read_prof:', & 
    368                         & 'var1 and var2 observation on different processors') 
     375                  IF ( kvars == 2 ) THEN 
     376                     inpfiles(jj)%iproc(ji,2) = iproc2(inowin) 
     377                     inpfiles(jj)%iobsi(ji,2) = iobsi2(inowin) 
     378                     inpfiles(jj)%iobsj(ji,2) = iobsj2(inowin) 
     379                     IF ( inpfiles(jj)%iproc(ji,1) /= & 
     380                        & inpfiles(jj)%iproc(ji,2) ) THEN 
     381                        CALL ctl_stop( 'Error in obs_read_prof:', & 
     382                           & 'var1 and var2 observation on different processors') 
     383                     ENDIF 
    369384                  ENDIF 
    370385               ENDIF 
    371386            END DO 
    372             DEALLOCATE( zlam, zphi, iobsi1, iobsj1, iproc1, iobsi2, iobsj2, iproc2 ) 
     387            DEALLOCATE( zlam, zphi, iobsi1, iobsj1, iproc1 ) 
     388            IF ( kvars == 2 ) THEN 
     389               DEALLOCATE( iobsi2, iobsj2, iproc2 ) 
     390            ENDIF 
    373391 
    374392            DO ji = 1, inpfiles(jj)%nobs 
    375393               IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    376                IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    377                   & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     394               IF ( kvars == 2 ) THEN 
     395                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     396                     & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     397               ELSE 
     398                  IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     399               ENDIF 
    378400               IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    379401                  & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    407429                     IF ( inpfiles(jj)%pdep(ij,ji) >= 6000. ) & 
    408430                        & CYCLE 
    409                      IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
    410                         &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
    411                         &    ldvar1 ) .OR. & 
    412                         & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
    413                         &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
    414                         &     ldvar2 ) ) THEN 
    415                         ip3dt = ip3dt + 1 
    416                         llvalprof = .TRUE. 
     431                     IF ( kvars == 2 ) THEN 
     432                        IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     433                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     434                           &    ldvar1 ) .OR. & 
     435                           & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     436                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     437                           &     ldvar2 ) ) THEN 
     438                           ip3dt = ip3dt + 1 
     439                           llvalprof = .TRUE. 
     440                        ENDIF 
     441                     ELSE 
     442                        IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     443                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     444                           &    ldvar1 ) ) THEN 
     445                           ip3dt = ip3dt + 1 
     446                           llvalprof = .TRUE. 
     447                        ENDIF 
    417448                     ENDIF 
    418449                  END DO loop_p_count 
     
    438469         DO ji = 1, inpfiles(jj)%nobs 
    439470            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    440             IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    441                & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     471            IF ( kvars == 2 ) THEN 
     472               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     473                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     474            ELSE 
     475               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     476            ENDIF 
    442477            IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    443478               & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    453488         DO ji = 1, inpfiles(jj)%nobs 
    454489            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    455             IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    456                & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     490            IF ( kvars == 2 ) THEN 
     491               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     492                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     493            ELSE 
     494               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     495            ENDIF 
    457496            IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND. & 
    458497               & ( inpfiles(jj)%ptim(ji) <= djulend(jj) )       ) THEN 
     
    501540         ji = iprofidx(iindx(jk)) 
    502541 
    503             IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     542         IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
     543         IF ( kvars == 2 ) THEN 
    504544            IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    505545               & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     546         ELSE 
     547            IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     548         ENDIF 
    506549 
    507550         IF ( ( inpfiles(jj)%ptim(ji) >  djulini(jj) ) .AND.  & 
     
    519562 
    520563            IF ( BTEST(inpfiles(jj)%ioqc(ji),2 ) ) CYCLE 
    521             IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
    522                & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     564            IF ( kvars == 2 ) THEN 
     565               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) .AND. & 
     566                  & BTEST(inpfiles(jj)%ivqc(ji,2),2) ) CYCLE 
     567            ELSE 
     568               IF ( BTEST(inpfiles(jj)%ivqc(ji,1),2) ) CYCLE 
     569            ENDIF 
    523570 
    524571            loop_prof : DO ij = 1, inpfiles(jj)%nlev 
     
    535582               ENDIF 
    536583 
    537                IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
    538                   & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
    539  
    540                   llvalprof = .TRUE.  
    541                   EXIT loop_prof 
    542  
     584               IF ( kvars == 2 ) THEN 
     585                  IF ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     586                     & .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) ) THEN 
     587 
     588                     llvalprof = .TRUE.  
     589                     EXIT loop_prof 
     590 
     591                  ENDIF 
    543592               ENDIF 
    544593 
     
    575624               profdata%mi  (iprof,1) = inpfiles(jj)%iobsi(ji,1) 
    576625               profdata%mj  (iprof,1) = inpfiles(jj)%iobsj(ji,1) 
    577                profdata%mi  (iprof,2) = inpfiles(jj)%iobsi(ji,2) 
    578                profdata%mj  (iprof,2) = inpfiles(jj)%iobsj(ji,2) 
     626               IF ( kvars == 2 ) THEN 
     627                  profdata%mi  (iprof,2) = inpfiles(jj)%iobsi(ji,2) 
     628                  profdata%mj  (iprof,2) = inpfiles(jj)%iobsj(ji,2) 
     629               ENDIF 
    579630 
    580631               ! Profile WMO number 
     
    616667                  IF (ldsatt) THEN 
    617668 
    618                      IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
    619                         &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
    620                         &    ldvar1 ) .OR. & 
    621                         & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
    622                         &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
    623                         &   ldvar2 ) ) THEN 
    624                         ip3dt = ip3dt + 1 
     669                     IF ( kvars == 2 ) THEN 
     670                        IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     671                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     672                           &    ldvar1 ) .OR. & 
     673                           & ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     674                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     675                           &   ldvar2 ) ) THEN 
     676                           ip3dt = ip3dt + 1 
     677                        ELSE 
     678                           CYCLE 
     679                        ENDIF 
    625680                     ELSE 
    626                         CYCLE 
     681                        IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,1),2) .AND. & 
     682                           &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2) .AND. & 
     683                           &    ldvar1 ) ) THEN 
     684                           ip3dt = ip3dt + 1 
     685                        ELSE 
     686                           CYCLE 
     687                        ENDIF 
    627688                     ENDIF 
    628689 
     
    693754                  ENDIF 
    694755 
    695                   IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
    696                      &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2)    .AND. & 
    697                      &   ldvar2 ) .OR. ldsatt ) THEN 
    698  
    699                      IF (ldsatt) THEN 
    700  
    701                         ivar2t = ip3dt 
    702  
    703                      ELSE 
    704  
    705                         ivar2t = ivar2t + 1 
     756                  IF ( kvars == 2 ) THEN 
     757                     IF ( ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) .AND. & 
     758                        &   .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2)    .AND. & 
     759                        &   ldvar2 ) .OR. ldsatt ) THEN 
     760 
     761                        IF (ldsatt) THEN 
     762 
     763                           ivar2t = ip3dt 
     764 
     765                        ELSE 
     766 
     767                           ivar2t = ivar2t + 1 
     768 
     769                        ENDIF 
     770 
     771                        ! Depth of var2 observation 
     772                        profdata%var(2)%vdep(ivar2t) = & 
     773                           &                inpfiles(jj)%pdep(ij,ji) 
     774 
     775                        ! Depth of var2 observation QC 
     776                        profdata%var(2)%idqc(ivar2t) = & 
     777                           &                inpfiles(jj)%idqc(ij,ji) 
     778 
     779                        ! Depth of var2 observation QC flags 
     780                        profdata%var(2)%idqcf(:,ivar2t) = & 
     781                           &                inpfiles(jj)%idqcf(:,ij,ji) 
     782 
     783                        ! Profile index 
     784                        profdata%var(2)%nvpidx(ivar2t) = iprof 
     785 
     786                        ! Vertical index in original profile 
     787                        profdata%var(2)%nvlidx(ivar2t) = ij 
     788 
     789                        ! Profile var2 value 
     790                     IF (  ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) ) .AND. & 
     791                       &   ( .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2)    )  ) THEN 
     792                           profdata%var(2)%vobs(ivar2t) = & 
     793                              &                inpfiles(jj)%pob(ij,ji,2) 
     794                           IF ( ldmod ) THEN 
     795                              profdata%var(2)%vmod(ivar2t) = & 
     796                                 &                inpfiles(jj)%padd(ij,ji,1,2) 
     797                           ENDIF 
     798                           ! Count number of profile var2 data as function of type 
     799                           itypvar2( profdata%ntyp(iprof) + 1 ) = & 
     800                              & itypvar2( profdata%ntyp(iprof) + 1 ) + 1 
     801                        ELSE 
     802                           profdata%var(2)%vobs(ivar2t) = fbrmdi 
     803                        ENDIF 
     804 
     805                        ! Profile var2 qc 
     806                        profdata%var(2)%nvqc(ivar2t) = & 
     807                           & inpfiles(jj)%ivlqc(ij,ji,2) 
     808 
     809                        ! Profile var2 qc flags 
     810                        profdata%var(2)%nvqcf(:,ivar2t) = & 
     811                           & inpfiles(jj)%ivlqcf(:,ij,ji,2) 
    706812 
    707813                     ENDIF 
    708  
    709                      ! Depth of var2 observation 
    710                      profdata%var(2)%vdep(ivar2t) = & 
    711                         &                inpfiles(jj)%pdep(ij,ji) 
    712  
    713                      ! Depth of var2 observation QC 
    714                      profdata%var(2)%idqc(ivar2t) = & 
    715                         &                inpfiles(jj)%idqc(ij,ji) 
    716  
    717                      ! Depth of var2 observation QC flags 
    718                      profdata%var(2)%idqcf(:,ivar2t) = & 
    719                         &                inpfiles(jj)%idqcf(:,ij,ji) 
    720  
    721                      ! Profile index 
    722                      profdata%var(2)%nvpidx(ivar2t) = iprof 
    723  
    724                      ! Vertical index in original profile 
    725                      profdata%var(2)%nvlidx(ivar2t) = ij 
    726  
    727                      ! Profile var2 value 
    728                   IF (  ( .NOT. BTEST(inpfiles(jj)%ivlqc(ij,ji,2),2) ) .AND. & 
    729                     &   ( .NOT. BTEST(inpfiles(jj)%idqc(ij,ji),2)    )  ) THEN 
    730                         profdata%var(2)%vobs(ivar2t) = & 
    731                            &                inpfiles(jj)%pob(ij,ji,2) 
    732                         IF ( ldmod ) THEN 
    733                            profdata%var(2)%vmod(ivar2t) = & 
    734                               &                inpfiles(jj)%padd(ij,ji,1,2) 
    735                         ENDIF 
    736                         ! Count number of profile var2 data as function of type 
    737                         itypvar2( profdata%ntyp(iprof) + 1 ) = & 
    738                            & itypvar2( profdata%ntyp(iprof) + 1 ) + 1 
    739                      ELSE 
    740                         profdata%var(2)%vobs(ivar2t) = fbrmdi 
    741                      ENDIF 
    742  
    743                      ! Profile var2 qc 
    744                      profdata%var(2)%nvqc(ivar2t) = & 
    745                         & inpfiles(jj)%ivlqc(ij,ji,2) 
    746  
    747                      ! Profile var2 qc flags 
    748                      profdata%var(2)%nvqcf(:,ivar2t) = & 
    749                         & inpfiles(jj)%ivlqcf(:,ij,ji,2) 
    750  
    751814                  ENDIF 
    752815 
     
    764827 
    765828      CALL obs_mpp_sum_integer ( ivar1t0, ivar1tmpp ) 
    766       CALL obs_mpp_sum_integer ( ivar2t0, ivar2tmpp ) 
     829      IF ( kvars == 2 ) THEN 
     830         CALL obs_mpp_sum_integer ( ivar2t0, ivar2tmpp ) 
     831      ENDIF 
    767832      CALL obs_mpp_sum_integer ( ip3dt,   ip3dtmpp  ) 
    768833 
    769834      CALL obs_mpp_sum_integers( itypvar1, itypvar1mpp, ntyp1770 + 1 ) 
    770       CALL obs_mpp_sum_integers( itypvar2, itypvar2mpp, ntyp1770 + 1 ) 
     835      IF ( kvars == 2 ) THEN 
     836         CALL obs_mpp_sum_integers( itypvar2, itypvar2mpp, ntyp1770 + 1 ) 
     837      ENDIF 
    771838 
    772839      !----------------------------------------------------------------------- 
     
    795862            & '---------------------------------------------------------------' 
    796863         WRITE(numout,*)  
    797          WRITE(numout,'(1X,A)') 'Profile data, '//TRIM( profdata%cvars(2) ) 
    798          WRITE(numout,'(1X,A)') '------------------------' 
    799          DO ji = 0, ntyp1770 
    800             IF ( itypvar2mpp(ji+1) > 0 ) THEN 
    801                WRITE(numout,'(1X,A3,1X,A48,A3,I8)') ctypshort(ji), & 
    802                   & cwmonam1770(ji)(1:52),' = ', & 
    803                   & itypvar2mpp(ji+1) 
    804             ENDIF 
    805          END DO 
    806          WRITE(numout,'(1X,A)') & 
    807             & '---------------------------------------------------------------' 
    808          WRITE(numout,'(1X,A55,I8)') & 
    809             & 'Total profile data for variable '//TRIM( profdata%cvars(2) )// & 
    810             & '             = ', ivar2tmpp 
    811          WRITE(numout,'(1X,A)') & 
    812             & '---------------------------------------------------------------' 
    813          WRITE(numout,*)  
     864         IF ( kvars == 2 ) THEN 
     865            WRITE(numout,'(1X,A)') 'Profile data, '//TRIM( profdata%cvars(2) ) 
     866            WRITE(numout,'(1X,A)') '------------------------' 
     867            DO ji = 0, ntyp1770 
     868               IF ( itypvar2mpp(ji+1) > 0 ) THEN 
     869                  WRITE(numout,'(1X,A3,1X,A48,A3,I8)') ctypshort(ji), & 
     870                     & cwmonam1770(ji)(1:52),' = ', & 
     871                     & itypvar2mpp(ji+1) 
     872               ENDIF 
     873            END DO 
     874            WRITE(numout,'(1X,A)') & 
     875               & '---------------------------------------------------------------' 
     876            WRITE(numout,'(1X,A55,I8)') & 
     877               & 'Total profile data for variable '//TRIM( profdata%cvars(2) )// & 
     878               & '             = ', ivar2tmpp 
     879            WRITE(numout,'(1X,A)') & 
     880               & '---------------------------------------------------------------' 
     881            WRITE(numout,*)  
     882         ENDIF 
    814883      ENDIF 
    815884 
    816885      IF (ldsatt) THEN 
    817886         profdata%nvprot(1)    = ip3dt 
    818          profdata%nvprot(2)    = ip3dt 
    819887         profdata%nvprotmpp(1) = ip3dtmpp 
    820          profdata%nvprotmpp(2) = ip3dtmpp 
     888         IF ( kvars == 2 ) THEN 
     889            profdata%nvprot(2)    = ip3dt 
     890            profdata%nvprotmpp(2) = ip3dtmpp 
     891         ENDIF 
    821892      ELSE 
    822893         profdata%nvprot(1)    = ivar1t 
    823          profdata%nvprot(2)    = ivar2t 
    824894         profdata%nvprotmpp(1) = ivar1tmpp 
    825          profdata%nvprotmpp(2) = ivar2tmpp 
     895         IF ( kvars == 2 ) THEN 
     896            profdata%nvprot(2)    = ivar2t 
     897            profdata%nvprotmpp(2) = ivar2tmpp 
     898         ENDIF 
    826899      ENDIF 
    827900      profdata%nprof        = iprof 
Note: See TracChangeset for help on using the changeset viewer.