Changeset 5659 for branches/2015/dev_r5072_UKMO2_OBS_simplification/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_prof.F90
- Timestamp:
- 2015-07-31T11:59:15+02:00 (9 years ago)
- 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 33 33 PRIVATE 34 34 35 PUBLIC obs_rea_pro _dri! Read the profile observations35 PUBLIC obs_rea_prof ! Read the profile observations 36 36 37 37 !!---------------------------------------------------------------------- … … 43 43 CONTAINS 44 44 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 ) 50 49 !!--------------------------------------------------------------------- 51 50 !! 52 !! *** ROUTINE obs_rea_pro _dri***51 !! *** ROUTINE obs_rea_prof *** 53 52 !! 54 53 !! ** Purpose : Read from file the profile observations 55 54 !! 56 !! ** Method : Depending on kformat either ENACT, CORIOLIS or57 !! feedback data files are read55 !! ** Method : Read feedback data in and transform to NEMO internal 56 !! profile data structure 58 57 !! 59 58 !! ** Action : … … 67 66 68 67 !! * Arguments 69 INTEGER :: kformat ! Format of input data70 ! ! 1: ENACT71 ! ! 2: Coriolis72 68 TYPE(obs_prof), INTENT(OUT) :: profdata ! Profile data to be read 73 69 INTEGER, INTENT(IN) :: knumfiles ! Number of files to read in … … 89 85 90 86 !! * Local declarations 91 CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_pro _dri'87 CHARACTER(LEN=15), PARAMETER :: cpname='obs_rea_prof' 92 88 INTEGER :: jvar 93 89 INTEGER :: ji … … 195 191 !--------------------------------------------------------------------- 196 192 197 iflag = nf90_open( TRIM( TRIM( cfilenames(jj)) ), nf90_nowrite, &193 iflag = nf90_open( TRIM( cfilenames(jj) ), nf90_nowrite, & 198 194 & i_file_id ) 199 195 … … 202 198 IF ( ldignmis ) THEN 203 199 inpfiles(jj)%nobs = 0 204 CALL ctl_warn( 'File ' // TRIM( TRIM( cfilenames(jj)) ) // &200 CALL ctl_warn( 'File ' // TRIM( cfilenames(jj) ) // & 205 201 & ' not found' ) 206 202 ELSE 207 CALL ctl_stop( 'File ' // TRIM( TRIM( cfilenames(jj)) ) // &203 CALL ctl_stop( 'File ' // TRIM( cfilenames(jj) ) // & 208 204 & ' not found' ) 209 205 ENDIF … … 220 216 ! Read the profile file into inpfiles 221 217 !------------------------------------------------------------------ 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 255 234 ENDIF 256 235 … … 836 815 DEALLOCATE( inpfiles ) 837 816 838 END SUBROUTINE obs_rea_pro _dri817 END SUBROUTINE obs_rea_prof 839 818 840 819 END MODULE obs_read_prof
Note: See TracChangeset
for help on using the changeset viewer.