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 5659 for branches/2015/dev_r5072_UKMO2_OBS_simplification/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90 – NEMO

Ignore:
Timestamp:
2015-07-31T11:59:15+02:00 (9 years ago)
Author:
mattmartin
Message:

Updated OBS simplification branch to the head of the trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5072_UKMO2_OBS_simplification/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90

    r4990 r5659  
    3333   PRIVATE 
    3434 
    35    PUBLIC obs_rea_pro_dri  ! Read the profile observations  
     35   PUBLIC obs_rea_prof  ! Read the profile observations  
    3636 
    3737   !!---------------------------------------------------------------------- 
     
    4343CONTAINS 
    4444  
    45    SUBROUTINE obs_rea_pro_dri( kformat, & 
    46       &                        profdata, knumfiles, cfilenames, & 
    47       &                        kvars, kextr, kstp, ddobsini, ddobsend, & 
    48       &                        ldt3d, lds3d, ldignmis, ldsatt, ldavtimset, & 
    49       &                        ldmod, kdailyavtypes ) 
     45   SUBROUTINE obs_rea_prof( profdata, knumfiles, cfilenames, & 
     46      &                     kvars, kextr, kstp, ddobsini, ddobsend, & 
     47      &                     ldt3d, lds3d, ldignmis, ldsatt, ldavtimset, & 
     48      &                     ldmod, kdailyavtypes ) 
    5049      !!--------------------------------------------------------------------- 
    5150      !! 
    52       !!                   *** ROUTINE obs_rea_pro_dri *** 
     51      !!                   *** ROUTINE obs_rea_prof *** 
    5352      !! 
    5453      !! ** Purpose : Read from file the profile observations 
    5554      !! 
    56       !! ** Method  : Depending on kformat either ENACT, CORIOLIS or 
    57       !!              feedback data files are read 
     55      !! ** Method  : Read feedback data in and transform to NEMO internal  
     56      !!              profile data structure 
    5857      !! 
    5958      !! ** Action  :  
     
    6766    
    6867      !! * Arguments 
    69       INTEGER ::  kformat    ! Format of input data 
    70       !                      ! 1: ENACT 
    71       !                      ! 2: Coriolis 
    7268      TYPE(obs_prof), INTENT(OUT) ::  profdata     ! Profile data to be read 
    7369      INTEGER, INTENT(IN) :: knumfiles      ! Number of files to read in 
     
    8985 
    9086      !! * Local declarations 
    91       CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_pro_dri' 
     87      CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_prof' 
    9288      INTEGER :: jvar 
    9389      INTEGER :: ji 
     
    195191         !--------------------------------------------------------------------- 
    196192          
    197          iflag = nf90_open( TRIM( TRIM( cfilenames(jj) ) ), nf90_nowrite, & 
     193         iflag = nf90_open( TRIM( cfilenames(jj) ), nf90_nowrite, & 
    198194            &                      i_file_id ) 
    199195          
     
    202198            IF ( ldignmis ) THEN 
    203199               inpfiles(jj)%nobs = 0 
    204                CALL ctl_warn( 'File ' // TRIM( TRIM( cfilenames(jj) ) ) // & 
     200               CALL ctl_warn( 'File ' // TRIM( cfilenames(jj) ) // & 
    205201                  &           ' not found' ) 
    206202            ELSE  
    207                CALL ctl_stop( 'File ' // TRIM( TRIM( cfilenames(jj) ) ) // & 
     203               CALL ctl_stop( 'File ' // TRIM( cfilenames(jj) ) // & 
    208204                  &           ' not found' ) 
    209205            ENDIF 
     
    220216            !  Read the profile file into inpfiles 
    221217            !------------------------------------------------------------------ 
    222             IF ( kformat == 0 ) THEN 
    223                CALL init_obfbdata( inpfiles(jj) ) 
    224                IF(lwp) THEN 
    225                   WRITE(numout,*) 
    226                   WRITE(numout,*)'Reading from feedback file :', & 
    227                      &           TRIM( cfilenames(jj) ) 
    228                ENDIF 
    229                CALL read_obfbdata( TRIM( cfilenames(jj) ), inpfiles(jj), & 
    230                   &                ldgrid = .TRUE. ) 
    231                IF ( inpfiles(jj)%nvar < 2 ) THEN 
    232                   CALL ctl_stop( 'Feedback format error' ) 
    233                   RETURN 
    234                ENDIF 
    235                IF ( TRIM(inpfiles(jj)%cname(1)) /= 'POTM' ) THEN 
    236                   CALL ctl_stop( 'Feedback format error' ) 
    237                   RETURN 
    238                ENDIF 
    239                IF ( TRIM(inpfiles(jj)%cname(2)) /= 'PSAL' ) THEN 
    240                   CALL ctl_stop( 'Feedback format error' ) 
    241                   RETURN 
    242                ENDIF 
    243                IF ( ldmod .AND. ( inpfiles(jj)%nadd == 0 ) ) THEN 
    244                   CALL ctl_stop( 'Model not in input data' ) 
    245                   RETURN 
    246                ENDIF 
    247             ELSEIF ( kformat == 1 ) THEN 
    248                CALL read_enactfile( TRIM( cfilenames(jj) ), inpfiles(jj), & 
    249                   &                 numout, lwp, .TRUE. ) 
    250             ELSEIF ( kformat == 2 ) THEN 
    251                CALL read_coriofile( TRIM( cfilenames(jj) ), inpfiles(jj), & 
    252                   &                 numout, lwp, .TRUE. ) 
    253             ELSE 
    254                CALL ctl_stop( 'File format unknown' ) 
     218            CALL init_obfbdata( inpfiles(jj) ) 
     219            IF(lwp) THEN 
     220               WRITE(numout,*) 
     221               WRITE(numout,*)'Reading from feedback file :', & 
     222                  &           TRIM( cfilenames(jj) ) 
     223            ENDIF 
     224            CALL read_obfbdata( TRIM( cfilenames(jj) ), inpfiles(jj), & 
     225               &                ldgrid = .TRUE. ) 
     226                
     227            IF ( inpfiles(jj)%nvar < 2 ) THEN 
     228               CALL ctl_stop( 'Feedback format error' ) 
     229               RETURN 
     230            ENDIF 
     231            IF ( ldmod .AND. ( inpfiles(jj)%nadd == 0 ) ) THEN 
     232               CALL ctl_stop( 'Model not in input data' ) 
     233               RETURN 
    255234            ENDIF 
    256235             
     
    836815      DEALLOCATE( inpfiles ) 
    837816 
    838    END SUBROUTINE obs_rea_pro_dri 
     817   END SUBROUTINE obs_rea_prof 
    839818 
    840819END MODULE obs_read_prof 
Note: See TracChangeset for help on using the changeset viewer.