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 15764 for branches/UKMO/r6232_obs_oper_update/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90 – NEMO

Ignore:
Timestamp:
2022-03-21T13:12:29+01:00 (2 years ago)
Author:
jcastill
Message:

Update with the latest changes in branches/UKMO/dev_r5518_obs_oper_update@15400

File:
1 edited

Legend:

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

    r11203 r15764  
    4646      &                     kvars, kextr, kstp, ddobsini, ddobsend, & 
    4747      &                     ldvar, ldignmis, ldsatt, & 
    48       &                     ldmod, kdailyavtypes ) 
     48      &                     ldmod, ldclim, cdvars, kdailyavtypes ) 
    4949      !!--------------------------------------------------------------------- 
    5050      !! 
     
    7878      LOGICAL, INTENT(IN) :: ldsatt     ! Compute salinity at all temperature points 
    7979      LOGICAL, INTENT(IN) :: ldmod      ! Initialize model from input data 
     80      LOGICAL, INTENT(IN) :: ldclim     ! Set flag to show climatology will be output 
    8081      REAL(dp), INTENT(IN) :: ddobsini  ! Obs. ini time in YYYYMMDD.HHMMSS 
    8182      REAL(dp), INTENT(IN) :: ddobsend  ! Obs. end time in YYYYMMDD.HHMMSS 
     83      CHARACTER(len=8), DIMENSION(kvars), INTENT(IN) :: cdvars 
    8284      INTEGER, DIMENSION(imaxavtypes), OPTIONAL :: & 
    8385         & kdailyavtypes                ! Types of daily average observations 
     
    8688      CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_prof' 
    8789      CHARACTER(len=8) :: clrefdate 
    88       CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvars 
     90      CHARACTER(len=8), DIMENSION(:), ALLOCATABLE :: clvarsin 
    8991      INTEGER :: jvar 
    9092      INTEGER :: ji 
     
    220222            ENDIF 
    221223 
    222             IF ( jj == 1 ) THEN 
    223                ALLOCATE( clvars( inpfiles(jj)%nvar ) ) 
    224                DO ji = 1, inpfiles(jj)%nvar 
    225                  clvars(ji) = inpfiles(jj)%cname(ji) 
    226                END DO 
     224            IF ( jj == 1 ) THEN  
     225               ALLOCATE( clvarsin( inpfiles(jj)%nvar ) )  
     226               DO ji = 1, inpfiles(jj)%nvar  
     227                 clvarsin(ji) = inpfiles(jj)%cname(ji)  
     228                 IF ( clvarsin(ji) /= cdvars(ji) ) THEN  
     229                    CALL ctl_stop( 'Feedback file variables do not match', &  
     230                        &           ' expected variable names for this type' )  
     231                 ENDIF  
     232               END DO  
    227233            ELSE 
    228                DO ji = 1, inpfiles(jj)%nvar 
    229                   IF ( inpfiles(jj)%cname(ji) /= clvars(ji) ) THEN 
    230                      CALL ctl_stop( 'Feedback file variables not consistent', & 
    231                         &           ' with previous files for this type' ) 
    232                   ENDIF 
    233                END DO 
     234               DO ji = 1, inpfiles(jj)%nvar  
     235                  IF ( inpfiles(jj)%cname(ji) /= clvarsin(ji) ) THEN  
     236                     CALL ctl_stop( 'Feedback file variables not consistent', &  
     237                        &           ' with previous files for this type' )  
     238                  ENDIF  
     239               END DO  
    234240            ENDIF 
    235241 
     
    500506      ENDIF 
    501507      CALL obs_prof_alloc( profdata, kvars, kextr, iprof, iv3dt, & 
    502          &                 kstp, jpi, jpj, jpk ) 
     508         &                 kstp, jpi, jpj, jpk, ldclim ) 
    503509 
    504510      ! * Read obs/positions, QC, all variable and assign to profdata 
     
    506512      profdata%nprof     = 0 
    507513      profdata%nvprot(:) = 0 
    508       profdata%cvars(:)  = clvars(:) 
     514      profdata%cvars(:)  = clvarsin(:) 
    509515      iprof = 0 
    510516 
     
    696702                              profdata%var(jvar)%vmod(ivart(jvar)) = & 
    697703                                 &                inpfiles(jj)%padd(ij,ji,1,jvar) 
     704                           ENDIF 
     705                           IF ( profdata%lclim ) THEN  
     706                              profdata%var(jvar)%vclm(ivart(jvar)) = fbrmdi  
    698707                           ENDIF 
    699708                           ! Count number of profile var1 data as function of type 
     
    805814      ! Deallocate temporary data 
    806815      !----------------------------------------------------------------------- 
    807       DEALLOCATE( ifileidx, iprofidx, zdat, clvars ) 
     816      DEALLOCATE( ifileidx, iprofidx, zdat, clvarsin ) 
    808817 
    809818      !----------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.