Changeset 9016
- Timestamp:
- 2017-12-13T15:30:00+01:00 (6 years ago)
- Location:
- branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/CONFIG/SHARED/namelist_ref
r8695 r9016 1201 1201 ln_vel3d = .false. ! Logical switch for velocity observations 1202 1202 ln_sss = .false. ! Logical swithc for SSS observations 1203 ln_logchl = .false. ! Logical switch for log(Chl) obs 1204 ln_spm = .false. ! Logical switch for SPM obs 1205 ln_fco2 = .false. 1206 ln_pco2 = .false. 1203 ln_slchltot = .false. ! Logical switch for surface total log10(chlorophyll) obs 1204 ln_slchldia = .false. ! Logical switch for surface diatom log10(chlorophyll) obs 1205 ln_slchlnon = .false. ! Logical switch for surface non-diatom log10(chlorophyll) obs 1206 ln_slchldin = .false. ! Logical switch for surface dinoflagellate log10(chlorophyll) obs 1207 ln_slchlmic = .false. ! Logical switch for surface microphytoplankton log10(chlorophyll) obs 1208 ln_slchlnan = .false. ! Logical switch for surface nanophytoplankton log10(chlorophyll) obs 1209 ln_slchlpic = .false. ! Logical switch for surface picophytoplankton log10(chlorophyll) obs 1210 ln_schltot = .false. ! Logical switch for surface total chlorophyll obs 1211 ln_sspm = .false. ! Logical switch for surface suspended particulate matter obs 1212 ln_sfco2 = .false. ! Logical switch for surface fugacity of carbon dioxide obs 1213 ln_spco2 = .false. ! Logical switch for surface partial pressure of carbon dioxide obs 1207 1214 ln_altbias = .false. ! Logical switch for altimeter bias correction 1208 1215 ln_sstbias = .false. ! Logical switch for SST bias correction -
branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r8695 r9016 98 98 & profdataqc !: Profile data after quality control 99 99 100 CHARACTER(len= 25), PUBLIC, DIMENSION(:), ALLOCATABLE :: &100 CHARACTER(len=8), PUBLIC, DIMENSION(:), ALLOCATABLE :: & 101 101 & cobstypesprof, & !: Profile obs types 102 102 & cobstypessurf !: Surface obs types … … 147 147 148 148 CHARACTER(len=128), DIMENSION(jpmaxnfiles) :: & 149 & cn_profbfiles, 150 & cn_sstfbfiles, 151 & cn_slafbfiles, 152 & cn_sicfbfiles, 153 & cn_velfbfiles, 154 & cn_sssfbfiles, 155 & cn_s urf_logchl_totalfbfiles,& ! Surface total log10(chlorophyll) input filenames156 & cn_s urf_logchl_diatfbfiles,& ! Surface diatom log10(chlorophyll) input filenames157 & cn_s urf_logchl_nondiatfbfiles, & ! Surface non-diatom log10(chlorophyll) input filenames158 & cn_s urf_logchl_dinofbfiles,& ! Surface dinoflagellate log10(chlorophyll) input filenames159 & cn_s urf_logchl_microfbfiles,& ! Surface microphytoplankton log10(chlorophyll) input filenames160 & cn_s urf_logchl_nanofbfiles,& ! Surface nanophytoplankton log10(chlorophyll) input filenames161 & cn_s urf_logchl_picofbfiles,& ! Surface picophytoplankton log10(chlorophyll) input filenames162 & cn_s urf_chl_totalfbfiles,& ! Surface total chlorophyll input filenames163 & cn_s urf_spmfbfiles,& ! Surface suspended particulate matter input filenames164 & cn_s urf_fco2fbfiles,& ! Surface fugacity of carbon dioxide input filenames165 & cn_s urf_pco2fbfiles,& ! Surface partial pressure of carbon dioxide input filenames166 & cn_sstbiasfiles 149 & cn_profbfiles, & ! T/S profile input filenames 150 & cn_sstfbfiles, & ! Sea surface temperature input filenames 151 & cn_slafbfiles, & ! Sea level anomaly input filenames 152 & cn_sicfbfiles, & ! Seaice concentration input filenames 153 & cn_velfbfiles, & ! Velocity profile input filenames 154 & cn_sssfbfiles, & ! Sea surface salinity input filenames 155 & cn_slchltotfbfiles, & ! Surface total log10(chlorophyll) input filenames 156 & cn_slchldiafbfiles, & ! Surface diatom log10(chlorophyll) input filenames 157 & cn_slchlnonfbfiles, & ! Surface non-diatom log10(chlorophyll) input filenames 158 & cn_slchldinfbfiles, & ! Surface dinoflagellate log10(chlorophyll) input filenames 159 & cn_slchlmicfbfiles, & ! Surface microphytoplankton log10(chlorophyll) input filenames 160 & cn_slchlnanfbfiles, & ! Surface nanophytoplankton log10(chlorophyll) input filenames 161 & cn_slchlpicfbfiles, & ! Surface picophytoplankton log10(chlorophyll) input filenames 162 & cn_schltotfbfiles, & ! Surface total chlorophyll input filenames 163 & cn_sspmfbfiles, & ! Surface suspended particulate matter input filenames 164 & cn_sfco2fbfiles, & ! Surface fugacity of carbon dioxide input filenames 165 & cn_spco2fbfiles, & ! Surface partial pressure of carbon dioxide input filenames 166 & cn_sstbiasfiles ! SST bias input filenames 167 167 168 168 CHARACTER(LEN=128) :: & … … 170 170 171 171 172 LOGICAL :: ln_t3d 173 LOGICAL :: ln_s3d 174 LOGICAL :: ln_sla 175 LOGICAL :: ln_sst 176 LOGICAL :: ln_sic 177 LOGICAL :: ln_sss 178 LOGICAL :: ln_vel3d 179 LOGICAL :: ln_s urf_logchl_total! Logical switch for surface total log10(chlorophyll) obs180 LOGICAL :: ln_s urf_logchl_diat! Logical switch for surface diatom log10(chlorophyll) obs181 LOGICAL :: ln_s urf_logchl_nondiat! Logical switch for surface non-diatom log10(chlorophyll) obs182 LOGICAL :: ln_s urf_logchl_dino! Logical switch for surface dinoflagellate log10(chlorophyll) obs183 LOGICAL :: ln_s urf_logchl_micro! Logical switch for surface microphytoplankton log10(chlorophyll) obs184 LOGICAL :: ln_s urf_logchl_nano! Logical switch for surface nanophytoplankton log10(chlorophyll) obs185 LOGICAL :: ln_s urf_logchl_pico! Logical switch for surface picophytoplankton log10(chlorophyll) obs186 LOGICAL :: ln_s urf_chl_total! Logical switch for surface total chlorophyll obs187 LOGICAL :: ln_s urf_spm! Logical switch for surface suspended particulate matter obs188 LOGICAL :: ln_s urf_fco2! Logical switch for surface fugacity of carbon dioxide obs189 LOGICAL :: ln_s urf_pco2! Logical switch for surface partial pressure of carbon dioxide obs190 LOGICAL :: ln_nea 191 LOGICAL :: ln_altbias 192 LOGICAL :: ln_sstbias 193 LOGICAL :: ln_ignmis 194 LOGICAL :: ln_s_at_t 195 LOGICAL :: ln_bound_reject 172 LOGICAL :: ln_t3d ! Logical switch for temperature profiles 173 LOGICAL :: ln_s3d ! Logical switch for salinity profiles 174 LOGICAL :: ln_sla ! Logical switch for sea level anomalies 175 LOGICAL :: ln_sst ! Logical switch for sea surface temperature 176 LOGICAL :: ln_sic ! Logical switch for sea ice concentration 177 LOGICAL :: ln_sss ! Logical switch for sea surface salinity obs 178 LOGICAL :: ln_vel3d ! Logical switch for velocity (u,v) obs 179 LOGICAL :: ln_slchltot ! Logical switch for surface total log10(chlorophyll) obs 180 LOGICAL :: ln_slchldia ! Logical switch for surface diatom log10(chlorophyll) obs 181 LOGICAL :: ln_slchlnon ! Logical switch for surface non-diatom log10(chlorophyll) obs 182 LOGICAL :: ln_slchldin ! Logical switch for surface dinoflagellate log10(chlorophyll) obs 183 LOGICAL :: ln_slchlmic ! Logical switch for surface microphytoplankton log10(chlorophyll) obs 184 LOGICAL :: ln_slchlnan ! Logical switch for surface nanophytoplankton log10(chlorophyll) obs 185 LOGICAL :: ln_slchlpic ! Logical switch for surface picophytoplankton log10(chlorophyll) obs 186 LOGICAL :: ln_schltot ! Logical switch for surface total chlorophyll obs 187 LOGICAL :: ln_sspm ! Logical switch for surface suspended particulate matter obs 188 LOGICAL :: ln_sfco2 ! Logical switch for surface fugacity of carbon dioxide obs 189 LOGICAL :: ln_spco2 ! Logical switch for surface partial pressure of carbon dioxide obs 190 LOGICAL :: ln_nea ! Logical switch to remove obs near land 191 LOGICAL :: ln_altbias ! Logical switch for altimeter bias 192 LOGICAL :: ln_sstbias ! Logical switch for bias correction of SST 193 LOGICAL :: ln_ignmis ! Logical switch for ignoring missing files 194 LOGICAL :: ln_s_at_t ! Logical switch to compute model S at T obs 195 LOGICAL :: ln_bound_reject ! Logical switch for rejecting obs near the boundary 196 196 197 197 REAL(dp) :: rn_dobsini ! Obs window start date YYYYMMDD.HHMMSS … … 207 207 LOGICAL :: llvar1 ! Logical for profile variable 1 208 208 LOGICAL :: llvar2 ! Logical for profile variable 1 209 LOGICAL :: ltype_fp indegs! Local version of ln_*_fp_indegs209 LOGICAL :: ltype_fp_indegs ! Local version of ln_*_fp_indegs 210 210 LOGICAL :: ltype_night ! Local version of ln_sstnight (false for other variables) 211 211 … … 223 223 NAMELIST/namobs/ln_diaobs, ln_t3d, ln_s3d, ln_sla, & 224 224 & ln_sst, ln_sic, ln_sss, ln_vel3d, & 225 & ln_surf_logchl_total, ln_surf_logchl_diat, & 226 & ln_surf_logchl_nondiat, ln_surf_logchl_dino, & 227 & ln_surf_logchl_micro, ln_surf_logchl_nano, & 228 & ln_surf_logchl_pico, ln_surf_chl_total, & 229 & ln_surf_spm, ln_surf_fco2, ln_surf_pco2, & 225 & ln_slchltot, ln_slchldia, ln_slchlnon, & 226 & ln_slchldin, ln_slchlmic, ln_slchlnan, & 227 & ln_slchlpic, ln_schltot, & 228 & ln_sspm, ln_sfco2, ln_spco2, & 230 229 & ln_altbias, ln_sstbias, ln_nea, & 231 230 & ln_grid_global, ln_grid_search_lookup, & … … 237 236 & cn_sstfbfiles, cn_sicfbfiles, & 238 237 & cn_velfbfiles, cn_sssfbfiles, & 239 & cn_surf_logchl_totalfbfiles, & 240 & cn_surf_logchl_diatfbfiles, & 241 & cn_surf_logchl_nondiatfbfiles, & 242 & cn_surf_logchl_dinofbfiles, & 243 & cn_surf_logchl_microfbfiles, & 244 & cn_surf_logchl_nanofbfiles, & 245 & cn_surf_logchl_picofbfiles, & 246 & cn_surf_chl_totalfbfiles, cn_surf_spmfbfiles, & 247 & cn_surf_fco2fbfiles, cn_surf_pco2fbfiles, & 238 & cn_slchltotfbfiles, cn_slchldiafbfiles, & 239 & cn_slchlnonfbfiles, cn_slchldinfbfiles, & 240 & cn_slchlmicfbfiles, cn_slchlnanfbfiles, & 241 & cn_slchlpicfbfiles, & 242 & cn_schltotfbfiles, cn_sspmfbfiles, & 243 & cn_sfco2fbfiles, cn_spco2fbfiles, & 248 244 & cn_sstbiasfiles, cn_altbiasfile, & 249 245 & cn_gridsearchfile, rn_gridsearchres, & … … 272 268 273 269 ! Some namelist arrays need initialising 274 cn_profbfiles(:) 275 cn_slafbfiles(:) 276 cn_sstfbfiles(:) 277 cn_sicfbfiles(:) 278 cn_velfbfiles(:) 279 cn_sssfbfiles(:) 280 cn_s urf_logchl_totalfbfiles(:)= ''281 cn_s urf_logchl_diatfbfiles(:)= ''282 cn_s urf_logchl_nondiatfbfiles(:) = ''283 cn_s urf_logchl_dinofbfiles(:)= ''284 cn_s urf_logchl_microfbfiles(:)= ''285 cn_s urf_logchl_nanofbfiles(:)= ''286 cn_s urf_logchl_picofbfiles(:)= ''287 cn_s urf_chl_totalfbfiles(:)= ''288 cn_s urf_spmfbfiles(:)= ''289 cn_s urf_fco2fbfiles(:)= ''290 cn_s urf_pco2fbfiles(:)= ''291 cn_sstbiasfiles(:) 292 nn_profdavtypes(:) 270 cn_profbfiles(:) = '' 271 cn_slafbfiles(:) = '' 272 cn_sstfbfiles(:) = '' 273 cn_sicfbfiles(:) = '' 274 cn_velfbfiles(:) = '' 275 cn_sssfbfiles(:) = '' 276 cn_slchltotfbfiles(:) = '' 277 cn_slchldiafbfiles(:) = '' 278 cn_slchlnonfbfiles(:) = '' 279 cn_slchldinfbfiles(:) = '' 280 cn_slchlmicfbfiles(:) = '' 281 cn_slchlnanfbfiles(:) = '' 282 cn_slchlpicfbfiles(:) = '' 283 cn_schltotfbfiles(:) = '' 284 cn_sspmfbfiles(:) = '' 285 cn_sfco2fbfiles(:) = '' 286 cn_spco2fbfiles(:) = '' 287 cn_sstbiasfiles(:) = '' 288 nn_profdavtypes(:) = -1 293 289 294 290 CALL ini_date( rn_dobsini ) … … 328 324 WRITE(numout,*) ' Logical switch for velocity observations ln_vel3d = ', ln_vel3d 329 325 WRITE(numout,*) ' Logical switch for SSS observations ln_sss = ', ln_sss 330 WRITE(numout,*) ' Logical switch for surf _logchl_total obs ln_surf_logchl_total = ', ln_surf_logchl_total331 WRITE(numout,*) ' Logical switch for surf _logchl_diat obs ln_surf_logchl_diat = ', ln_surf_logchl_diat332 WRITE(numout,*) ' Logical switch for surf _logchl_nondiat ln_surf_logchl_nondiat = ', ln_surf_logchl_nondiat333 WRITE(numout,*) ' Logical switch for surf _logchl_dino obs ln_surf_logchl_dino = ', ln_surf_logchl_dino334 WRITE(numout,*) ' Logical switch for surf _logchl_micro obs ln_surf_logchl_micro = ', ln_surf_logchl_micro335 WRITE(numout,*) ' Logical switch for surf _logchl_nano obs ln_surf_logchl_nano = ', ln_surf_logchl_nano336 WRITE(numout,*) ' Logical switch for surf _logchl_pico obs ln_surf_logchl_pico = ', ln_surf_logchl_pico337 WRITE(numout,*) ' Logical switch for surf _chl_total obs ln_surf_chl_total = ', ln_surf_chl_total338 WRITE(numout,*) ' Logical switch for surface SPM observations ln_surf_spm = ', ln_surf_spm339 WRITE(numout,*) ' Logical switch for surface fCO2 observations ln_surf_fco2 = ', ln_surf_fco2340 WRITE(numout,*) ' Logical switch for surface pCO2 observations ln_surf_pco2 = ', ln_surf_pco2326 WRITE(numout,*) ' Logical switch for surface total logchl obs ln_slchltot = ', ln_slchltot 327 WRITE(numout,*) ' Logical switch for surface diatom logchl obs ln_slchldia = ', ln_slchldia 328 WRITE(numout,*) ' Logical switch for surface non-diatom logchl obs ln_slchlnon = ', ln_slchlnon 329 WRITE(numout,*) ' Logical switch for surface dino logchl obs ln_slchldin = ', ln_slchldin 330 WRITE(numout,*) ' Logical switch for surface micro logchl obs ln_slchlmic = ', ln_slchlmic 331 WRITE(numout,*) ' Logical switch for surface nano logchl obs ln_slchlnan = ', ln_slchlnan 332 WRITE(numout,*) ' Logical switch for surface pico logchl obs ln_slchlpic = ', ln_slchlpic 333 WRITE(numout,*) ' Logical switch for surface total chl obs ln_schltot = ', ln_schltot 334 WRITE(numout,*) ' Logical switch for surface SPM observations ln_sspm = ', ln_sspm 335 WRITE(numout,*) ' Logical switch for surface fCO2 observations ln_sfco2 = ', ln_sfco2 336 WRITE(numout,*) ' Logical switch for surface pCO2 observations ln_spco2 = ', ln_spco2 341 337 WRITE(numout,*) ' Global distribution of observations ln_grid_global = ', ln_grid_global 342 338 WRITE(numout,*) ' Logical switch for obs grid search lookup ln_grid_search_lookup = ', ln_grid_search_lookup … … 380 376 381 377 nproftypes = COUNT( (/ln_t3d .OR. ln_s3d, ln_vel3d /) ) 382 nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_sss, & 383 & ln_surf_logchl_total, ln_surf_logchl_diat, & 384 & ln_surf_logchl_nondiat, ln_surf_logchl_dino, & 385 & ln_surf_logchl_micro, ln_surf_logchl_nano, & 386 & ln_surf_logchl_pico, ln_surf_chl_total, & 387 & ln_surf_spm, ln_surf_fco2, ln_surf_pco2 /) ) 378 nsurftypes = COUNT( (/ln_sla, ln_sst, ln_sic, ln_sss, & 379 & ln_slchltot, ln_slchldia, ln_slchlnon, ln_slchldin, & 380 & ln_slchlmic, ln_slchlnan, ln_slchlpic, ln_schltot, & 381 & ln_sspm, ln_sfco2, ln_spco2 /) ) 388 382 389 383 IF ( nproftypes == 0 .AND. nsurftypes == 0 ) THEN … … 453 447 ENDIF 454 448 455 IF (ln_s urf_logchl_total) THEN449 IF (ln_slchltot) THEN 456 450 jtype = jtype + 1 457 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_total', &458 & cn_s urf_logchl_totalfbfiles, ifilessurf, cobstypessurf, clsurffiles )459 ENDIF 460 461 IF (ln_s urf_logchl_diat) THEN451 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchltot', & 452 & cn_slchltotfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 453 ENDIF 454 455 IF (ln_slchldia) THEN 462 456 jtype = jtype + 1 463 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_diat', &464 & cn_s urf_logchl_diatfbfiles, ifilessurf, cobstypessurf, clsurffiles )465 ENDIF 466 467 IF (ln_s urf_logchl_nondiat) THEN457 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchldia', & 458 & cn_slchldiafbfiles, ifilessurf, cobstypessurf, clsurffiles ) 459 ENDIF 460 461 IF (ln_slchlnon) THEN 468 462 jtype = jtype + 1 469 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_nondiat', &470 & cn_s urf_logchl_nondiatfbfiles, ifilessurf, cobstypessurf, clsurffiles )471 ENDIF 472 473 IF (ln_s urf_logchl_dino) THEN463 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchlnon', & 464 & cn_slchlnonfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 465 ENDIF 466 467 IF (ln_slchldin) THEN 474 468 jtype = jtype + 1 475 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_dino', &476 & cn_s urf_logchl_dinofbfiles, ifilessurf, cobstypessurf, clsurffiles )477 ENDIF 478 479 IF (ln_s urf_logchl_micro) THEN469 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchldin', & 470 & cn_slchldinfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 471 ENDIF 472 473 IF (ln_slchlmic) THEN 480 474 jtype = jtype + 1 481 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_micro', &482 & cn_s urf_logchl_microfbfiles, ifilessurf, cobstypessurf, clsurffiles )483 ENDIF 484 485 IF (ln_s urf_logchl_nano) THEN475 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchlmic', & 476 & cn_slchlmicfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 477 ENDIF 478 479 IF (ln_slchlnan) THEN 486 480 jtype = jtype + 1 487 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_nano', &488 & cn_s urf_logchl_nanofbfiles, ifilessurf, cobstypessurf, clsurffiles )489 ENDIF 490 491 IF (ln_s urf_logchl_pico) THEN481 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchlnan', & 482 & cn_slchlnanfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 483 ENDIF 484 485 IF (ln_slchlpic) THEN 492 486 jtype = jtype + 1 493 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_logchl_pico', &494 & cn_s urf_logchl_picofbfiles, ifilessurf, cobstypessurf, clsurffiles )495 ENDIF 496 497 IF (ln_s urf_chl_total) THEN487 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'slchlpic', & 488 & cn_slchlpicfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 489 ENDIF 490 491 IF (ln_schltot) THEN 498 492 jtype = jtype + 1 499 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_chl_total', &500 & cn_s urf_chl_totalfbfiles, ifilessurf, cobstypessurf, clsurffiles )501 ENDIF 502 503 IF (ln_s urf_spm) THEN493 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'schltot', & 494 & cn_schltotfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 495 ENDIF 496 497 IF (ln_sspm) THEN 504 498 jtype = jtype + 1 505 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_spm', &506 & cn_s urf_spmfbfiles, ifilessurf, cobstypessurf, clsurffiles )507 ENDIF 508 509 IF (ln_s urf_fco2) THEN499 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'sspm', & 500 & cn_sspmfbfiles, ifilessurf, cobstypessurf, clsurffiles ) 501 ENDIF 502 503 IF (ln_sfco2) THEN 510 504 jtype = jtype + 1 511 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_fco2', &512 & cn_s urf_fco2fbfiles, ifilessurf, cobstypessurf, clsurffiles )513 ENDIF 514 515 IF (ln_s urf_pco2) THEN505 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'sfco2', & 506 & cn_sfco2fbfiles, ifilessurf, cobstypessurf, clsurffiles ) 507 ENDIF 508 509 IF (ln_spco2) THEN 516 510 jtype = jtype + 1 517 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 's urf_pco2', &518 & cn_s urf_pco2fbfiles, ifilessurf, cobstypessurf, clsurffiles )511 CALL obs_settypefiles( nsurftypes, jpmaxnfiles, jtype, 'spco2', & 512 & cn_spco2fbfiles, ifilessurf, cobstypessurf, clsurffiles ) 519 513 ENDIF 520 514 521 515 DO jtype = 1, nsurftypes 522 516 523 IF ( TRIM( n2dintsurf(jtype)) == 'sla' ) THEN517 IF ( TRIM(cobstypessurf(jtype)) == 'sla' ) THEN 524 518 IF ( nn_2dint_sla == -1 ) THEN 525 519 n2dint_type = nn_2dint_default … … 529 523 rtype_avglamscl = rn_sla_avglamscl 530 524 rtype_avgphiscl = rn_sla_avgphiscl 531 ltype_fp indegs = ln_sla_fpindegs525 ltype_fp_indegs = ln_sla_fp_indegs 532 526 ltype_night = .FALSE. 533 ELSE IF ( TRIM( n2dintsurf(jtype)) == 'sst' ) THEN527 ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sst' ) THEN 534 528 IF ( nn_2dint_sst == -1 ) THEN 535 529 n2dint_type = nn_2dint_default … … 539 533 rtype_avglamscl = rn_sst_avglamscl 540 534 rtype_avgphiscl = rn_sst_avgphiscl 541 ltype_fp indegs = ln_sst_fpindegs535 ltype_fp_indegs = ln_sst_fp_indegs 542 536 ltype_night = ln_sstnight 543 ELSE IF ( TRIM( n2dintsurf(jtype)) == 'sic' ) THEN537 ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sic' ) THEN 544 538 IF ( nn_2dint_sic == -1 ) THEN 545 539 n2dint_type = nn_2dint_default … … 549 543 rtype_avglamscl = rn_sic_avglamscl 550 544 rtype_avgphiscl = rn_sic_avgphiscl 551 ltype_fp indegs = ln_sic_fpindegs545 ltype_fp_indegs = ln_sic_fp_indegs 552 546 ltype_night = .FALSE. 553 ELSE IF ( TRIM( n2dintsurf(jtype)) == 'sss' ) THEN547 ELSE IF ( TRIM(cobstypessurf(jtype)) == 'sss' ) THEN 554 548 IF ( nn_2dint_sss == -1 ) THEN 555 549 n2dint_type = nn_2dint_default … … 559 553 rtype_avglamscl = rn_sss_avglamscl 560 554 rtype_avgphiscl = rn_sss_avgphiscl 561 ltype_fp indegs = ln_sss_fpindegs555 ltype_fp_indegs = ln_sss_fp_indegs 562 556 ltype_night = .FALSE. 563 557 ELSE … … 565 559 rtype_avglamscl = rn_default_avglamscl 566 560 rtype_avgphiscl = rn_default_avgphiscl 567 ltype_fp indegs = ln_default_fpindegs561 ltype_fp_indegs = ln_default_fp_indegs 568 562 ltype_night = .FALSE. 569 563 ENDIF 570 564 571 CALL obs_setinterpopts( nsurftypes, jtype, TRIM( n2dintsurf(jtype)), &572 & nn_2dint_default, n2dint_type, &573 & rtype_avglamscl, rtype_avgphiscl, &574 & ltype_fp indegs, ltype_night,&575 & n2dintsurf, ravglamscl, ravgphiscl, &565 CALL obs_setinterpopts( nsurftypes, jtype, TRIM(cobstypessurf(jtype)), & 566 & nn_2dint_default, n2dint_type, & 567 & rtype_avglamscl, rtype_avgphiscl, & 568 & ltype_fp_indegs, ltype_night, & 569 & n2dintsurf, ravglamscl, ravgphiscl, & 576 570 & lfpindegs, llnightav ) 577 571 … … 923 917 ENDIF 924 918 925 CASE('s urf_logchl_total')919 CASE('slchltot') 926 920 #if defined key_hadocc 927 921 ! Surface chlorophyll from HadOCC … … 935 929 & trn(:,:,1,jp_fabm_chl3) + trn(:,:,1,jp_fabm_chl4) 936 930 #else 937 CALL ctl_stop( ' Trying to run s urf_logchl_totalobservation operator', &931 CALL ctl_stop( ' Trying to run slchltot observation operator', & 938 932 & ' but no biogeochemical model appears to have been defined' ) 939 933 #endif … … 948 942 END WHERE 949 943 950 CASE('s urf_logchl_diat')944 CASE('slchldia') 951 945 #if defined key_hadocc 952 CALL ctl_stop( ' Trying to run s urf_logchl_diatobservation operator', &946 CALL ctl_stop( ' Trying to run slchldia observation operator', & 953 947 & ' but HadOCC does not explicitly simulate diatoms' ) 954 948 #elif defined key_medusa && defined key_foam_medusa … … 959 953 zsurfvar(:,:) = trn(:,:,1,jp_fabm_chl1) 960 954 #else 961 CALL ctl_stop( ' Trying to run s urf_logchl_diatobservation operator', &955 CALL ctl_stop( ' Trying to run slchldia observation operator', & 962 956 & ' but no biogeochemical model appears to have been defined' ) 963 957 #endif … … 972 966 END WHERE 973 967 974 CASE('s urf_logchl_nondiat')968 CASE('slchlnon') 975 969 #if defined key_hadocc 976 CALL ctl_stop( ' Trying to run s urf_logchl_nondiatobservation operator', &970 CALL ctl_stop( ' Trying to run slchlnon observation operator', & 977 971 & ' but HadOCC does not explicitly simulate non-diatoms' ) 978 972 #elif defined key_medusa && defined key_foam_medusa … … 984 978 & trn(:,:,1,jp_fabm_chl3) + trn(:,:,1,jp_fabm_chl4) 985 979 #else 986 CALL ctl_stop( ' Trying to run s urf_logchl_nondiatobservation operator', &980 CALL ctl_stop( ' Trying to run slchlnon observation operator', & 987 981 & ' but no biogeochemical model appears to have been defined' ) 988 982 #endif … … 997 991 END WHERE 998 992 999 CASE('s urf_logchl_dino')993 CASE('slchldin') 1000 994 #if defined key_hadocc 1001 CALL ctl_stop( ' Trying to run s urf_logchl_dinoobservation operator', &995 CALL ctl_stop( ' Trying to run slchldin observation operator', & 1002 996 & ' but HadOCC does not explicitly simulate dinoflagellates' ) 1003 997 #elif defined key_medusa && defined key_foam_medusa 1004 CALL ctl_stop( ' Trying to run s urf_logchl_dinoobservation operator', &998 CALL ctl_stop( ' Trying to run slchldin observation operator', & 1005 999 & ' but MEDUSA does not explicitly simulate dinoflagellates' ) 1006 1000 #elif defined key_fabm … … 1008 1002 zsurfvar(:,:) = trn(:,:,1,jp_fabm_chl4) 1009 1003 #else 1010 CALL ctl_stop( ' Trying to run s urf_logchl_dinoobservation operator', &1004 CALL ctl_stop( ' Trying to run slchldin observation operator', & 1011 1005 & ' but no biogeochemical model appears to have been defined' ) 1012 1006 #endif … … 1021 1015 END WHERE 1022 1016 1023 CASE('s urf_logchl_micro')1017 CASE('slchlmic') 1024 1018 #if defined key_hadocc 1025 CALL ctl_stop( ' Trying to run s urf_logchl_microobservation operator', &1019 CALL ctl_stop( ' Trying to run slchlmic observation operator', & 1026 1020 & ' but HadOCC does not explicitly simulate microphytoplankton' ) 1027 1021 #elif defined key_medusa && defined key_foam_medusa 1028 CALL ctl_stop( ' Trying to run s urf_logchl_microobservation operator', &1022 CALL ctl_stop( ' Trying to run slchlmic observation operator', & 1029 1023 & ' but MEDUSA does not explicitly simulate microphytoplankton' ) 1030 1024 #elif defined key_fabm … … 1032 1026 zsurfvar(:,:) = trn(:,:,1,jp_fabm_chl1) + trn(:,:,1,jp_fabm_chl4) 1033 1027 #else 1034 CALL ctl_stop( ' Trying to run s urf_logchl_microobservation operator', &1028 CALL ctl_stop( ' Trying to run slchlmic observation operator', & 1035 1029 & ' but no biogeochemical model appears to have been defined' ) 1036 1030 #endif … … 1045 1039 END WHERE 1046 1040 1047 CASE('s urf_logchl_nano')1041 CASE('slchlnan') 1048 1042 #if defined key_hadocc 1049 CALL ctl_stop( ' Trying to run s urf_logchl_nanoobservation operator', &1043 CALL ctl_stop( ' Trying to run slchlnan observation operator', & 1050 1044 & ' but HadOCC does not explicitly simulate nanophytoplankton' ) 1051 1045 #elif defined key_medusa && defined key_foam_medusa 1052 CALL ctl_stop( ' Trying to run s urf_logchl_nanoobservation operator', &1046 CALL ctl_stop( ' Trying to run slchlnan observation operator', & 1053 1047 & ' but MEDUSA does not explicitly simulate nanophytoplankton' ) 1054 1048 #elif defined key_fabm … … 1056 1050 zsurfvar(:,:) = trn(:,:,1,jp_fabm_chl2) 1057 1051 #else 1058 CALL ctl_stop( ' Trying to run s urf_logchl_nanoobservation operator', &1052 CALL ctl_stop( ' Trying to run slchlnan observation operator', & 1059 1053 & ' but no biogeochemical model appears to have been defined' ) 1060 1054 #endif … … 1069 1063 END WHERE 1070 1064 1071 CASE('s urf_logchl_pico')1065 CASE('slchlpic') 1072 1066 #if defined key_hadocc 1073 CALL ctl_stop( ' Trying to run s urf_logchl_picoobservation operator', &1067 CALL ctl_stop( ' Trying to run slchlpic observation operator', & 1074 1068 & ' but HadOCC does not explicitly simulate picophytoplankton' ) 1075 1069 #elif defined key_medusa && defined key_foam_medusa 1076 CALL ctl_stop( ' Trying to run s urf_logchl_picoobservation operator', &1070 CALL ctl_stop( ' Trying to run slchlpic observation operator', & 1077 1071 & ' but MEDUSA does not explicitly simulate picophytoplankton' ) 1078 1072 #elif defined key_fabm … … 1080 1074 zsurfvar(:,:) = trn(:,:,1,jp_fabm_chl3) 1081 1075 #else 1082 CALL ctl_stop( ' Trying to run s urf_logchl_picoobservation operator', &1076 CALL ctl_stop( ' Trying to run slchlpic observation operator', & 1083 1077 & ' but no biogeochemical model appears to have been defined' ) 1084 1078 #endif … … 1093 1087 END WHERE 1094 1088 1095 CASE('s urf_chl_total')1089 CASE('schltot') 1096 1090 #if defined key_hadocc 1097 1091 ! Surface chlorophyll from HadOCC … … 1105 1099 & trn(:,:,1,jp_fabm_chl3) + trn(:,:,1,jp_fabm_chl4) 1106 1100 #else 1107 CALL ctl_stop( ' Trying to run s urf_chl_totalobservation operator', &1101 CALL ctl_stop( ' Trying to run schltot observation operator', & 1108 1102 & ' but no biogeochemical model appears to have been defined' ) 1109 1103 #endif 1110 1104 zsurfmask(:,:) = tmask(:,:,1) ! create a special mask to exclude certain things 1111 1105 1112 CASE('s urf_spm')1106 CASE('sspm') 1113 1107 #if defined key_spm 1114 1108 zsurfvar(:,:) = 0.0 … … 1117 1111 END DO 1118 1112 #else 1119 CALL ctl_stop( ' Trying to run s pm observation operator', &1113 CALL ctl_stop( ' Trying to run sspm observation operator', & 1120 1114 & ' but no spm model appears to have been defined' ) 1121 1115 #endif 1122 1116 1123 CASE('s urf_fco2')1117 CASE('sfco2') 1124 1118 #if defined key_hadocc 1125 1119 zsurfvar(:,:) = HADOCC_FCO2(:,:) ! fCO2 from HadOCC … … 1157 1151 & (82.0578 * (tsn(:,:,1,jp_tem)+rt0))) 1158 1152 #else 1159 CALL ctl_stop( ' Trying to run fco2 observation operator', &1153 CALL ctl_stop( ' Trying to run sfco2 observation operator', & 1160 1154 & ' but no biogeochemical model appears to have been defined' ) 1161 1155 #endif 1162 1156 1163 CASE('s urf_pco2')1157 CASE('spco2') 1164 1158 #if defined key_hadocc 1165 1159 zsurfvar(:,:) = HADOCC_PCO2(:,:) ! pCO2 from HadOCC … … 1177 1171 zsurfvar(:,:) = pco2_3d(:,:,1) 1178 1172 #else 1179 CALL ctl_stop( ' Trying to run pCO2 observation operator', &1173 CALL ctl_stop( ' Trying to run spco2 observation operator', & 1180 1174 & ' but no biogeochemical model appears to have been defined' ) 1181 1175 #endif … … 1499 1493 & ifiles ! Out appended number of files for this type 1500 1494 1501 CHARACTER(len= 25), INTENT(IN) :: ctypein1495 CHARACTER(len=8), INTENT(IN) :: ctypein 1502 1496 CHARACTER(len=128), DIMENSION(jpmaxnfiles), INTENT(IN) :: & 1503 1497 & cfilestype ! In list of files for this obs type 1504 CHARACTER(len= 25), DIMENSION(ntypes), INTENT(INOUT) :: &1498 CHARACTER(len=8), DIMENSION(ntypes), INTENT(INOUT) :: & 1505 1499 & cobstypes ! Out appended list of obs types 1506 1500 CHARACTER(len=128), DIMENSION(ntypes, jpmaxnfiles), INTENT(INOUT) :: & … … 1548 1542 LOGICAL, INTENT(IN) :: lfp_indegs_type !T=> footprint in degrees, F=> in metres 1549 1543 LOGICAL, INTENT(IN) :: lavnight_type !T=> obs represent night time average 1550 CHARACTER(len= 25), INTENT(IN) :: ctypein1544 CHARACTER(len=8), INTENT(IN) :: ctypein 1551 1545 1552 1546 INTEGER, DIMENSION(ntypes), INTENT(INOUT) :: & … … 1559 1553 lavnight(jtype) = lavnight_type 1560 1554 1561 IF ( (n2dint_type >= 1) .AND. (n2dint_type <= 6) ) THEN1555 IF ( (n2dint_type >= 0) .AND. (n2dint_type <= 6) ) THEN 1562 1556 n2dint(jtype) = n2dint_type 1563 1557 ELSE IF ( n2dint_type == -1 ) THEN -
branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/obs_write.F90
r8693 r9016 83 83 TYPE(obfbdata) :: fbdata 84 84 CHARACTER(LEN=40) :: clfname 85 CHARACTER(LEN= 27) :: clfiletype85 CHARACTER(LEN=10) :: clfiletype 86 86 INTEGER :: ilevel 87 87 INTEGER :: jvar … … 320 320 TYPE(obfbdata) :: fbdata 321 321 CHARACTER(LEN=40) :: clfname ! netCDF filename 322 CHARACTER(LEN= 27) :: clfiletype322 CHARACTER(LEN=10) :: clfiletype 323 323 CHARACTER(LEN=12), PARAMETER :: cpname = 'obs_wri_surf' 324 324 CHARACTER(LEN=ilenlong) :: cllongname ! Long name of variable … … 399 399 clgrid = 'T' 400 400 401 CASE('S URF_LOGCHL_TOTAL','LOGCHL','LogChl','logchl')402 403 clfiletype = 's urf_logchl_totalfb'401 CASE('SLCHLTOT','LOGCHL','LogChl','logchl') 402 403 clfiletype = 'slchltotfb' 404 404 cllongname = 'Surface total log10(chlorophyll)' 405 405 clunits = 'log10(mg/m3)' 406 406 clgrid = 'T' 407 407 408 CASE('S URF_LOGCHL_DIAT')409 410 clfiletype = 's urf_logchl_diatfb'408 CASE('SLCHLDIA') 409 410 clfiletype = 'slchldiafb' 411 411 cllongname = 'Surface diatom log10(chlorophyll)' 412 412 clunits = 'log10(mg/m3)' 413 413 clgrid = 'T' 414 414 415 CASE('S URF_LOGCHL_NONDIAT')416 417 clfiletype = 's urf_logchl_nondiatfb'415 CASE('SLCHLNON') 416 417 clfiletype = 'slchlnonfb' 418 418 cllongname = 'Surface non-diatom log10(chlorophyll)' 419 419 clunits = 'log10(mg/m3)' 420 420 clgrid = 'T' 421 421 422 CASE('S URF_LOGCHL_DINO')423 424 clfiletype = 's urf_logchl_dinofb'422 CASE('SLCHLDIN') 423 424 clfiletype = 'slchldinfb' 425 425 cllongname = 'Surface dinoflagellate log10(chlorophyll)' 426 426 clunits = 'log10(mg/m3)' 427 427 clgrid = 'T' 428 428 429 CASE('S URF_LOGCHL_MICRO')430 431 clfiletype = 's urf_logchl_microfb'429 CASE('SLCHLMIC') 430 431 clfiletype = 'slchlmicfb' 432 432 cllongname = 'Surface microphytoplankton log10(chlorophyll)' 433 433 clunits = 'log10(mg/m3)' 434 434 clgrid = 'T' 435 435 436 CASE('S URF_LOGCHL_NANO')437 438 clfiletype = 's urf_logchl_nanofb'436 CASE('SLCHLNAN') 437 438 clfiletype = 'slchlnanfb' 439 439 cllongname = 'Surface nanophytoplankton log10(chlorophyll)' 440 440 clunits = 'log10(mg/m3)' 441 441 clgrid = 'T' 442 442 443 CASE('S URF_LOGCHL_PICO')444 445 clfiletype = 's urf_logchl_picofb'443 CASE('SLCHLPIC') 444 445 clfiletype = 'slchlpicfb' 446 446 cllongname = 'Surface picophytoplankton log10(chlorophyll)' 447 447 clunits = 'log10(mg/m3)' 448 448 clgrid = 'T' 449 449 450 CASE('S URF_CHL_TOTAL')451 452 clfiletype = 's urf_chl_totalfb'450 CASE('SCHLTOT') 451 452 clfiletype = 'schltotfb' 453 453 cllongname = 'Surface total chlorophyll' 454 454 clunits = 'mg/m3' 455 455 clgrid = 'T' 456 456 457 CASE('S URF_SPM')458 459 clfiletype = 's urf_spmfb'457 CASE('SSPM') 458 459 clfiletype = 'sspmfb' 460 460 cllongname = 'Surface suspended particulate matter' 461 461 clunits = 'g/m3' 462 462 clgrid = 'T' 463 463 464 CASE('S URF_FCO2','FCO2','fCO2','fco2')465 466 clfiletype = 's urf_fco2fb'464 CASE('SFCO2','FCO2','fCO2','fco2') 465 466 clfiletype = 'sfco2fb' 467 467 cllongname = 'Surface fugacity of carbon dioxide' 468 468 clunits = 'uatm' 469 469 clgrid = 'T' 470 470 471 CASE('S URF_PCO2')472 473 clfiletype = 's urf_pco2fb'471 CASE('SPCO2') 472 473 clfiletype = 'spco2fb' 474 474 cllongname = 'Surface partial pressure of carbon dioxide' 475 475 clunits = 'uatm'
Note: See TracChangeset
for help on using the changeset viewer.