Changeset 4106 for branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM
- Timestamp:
- 2013-10-22T17:30:08+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO
- Files:
-
- 3 edited
- 1 copied
- 5 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/nemo.f90
r4101 r4106 1 1 PROGRAM nemo 2 USE o ff_oper2 USE ooomod 3 3 IMPLICIT NONE 4 4 !!---------------------------------------------------------------------- … … 8 8 !! location. 9 9 !!---------------------------------------------------------------------- 10 CALL off _obs_oper10 CALL offline_obs_oper 11 11 END PROGRAM nemo 12 12 -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/nemogcm.F90
r4102 r4106 101 101 CONTAINS 102 102 103 SUBROUTINE nemo_gcm104 !!----------------------------------------------------------------------105 !! *** ROUTINE nemo_gcm ***106 !!107 !! ** Purpose : NEMO solves the primitive equations on an orthogonal108 !! curvilinear mesh on the sphere.109 !!110 !! ** Method : - model general initialization111 !! - launch the time-stepping (stp routine)112 !! - finalize the run by closing files and communications113 !!114 !! References : Madec, Delecluse, Imbard, and Levy, 1997: internal report, IPSL.115 !! Madec, 2008, internal report, IPSL.116 !!----------------------------------------------------------------------117 INTEGER :: istp ! time step index118 !!----------------------------------------------------------------------119 !120 #if defined key_agrif121 CALL Agrif_Init_Grids() ! AGRIF: set the meshes122 #endif123 124 ! !-----------------------!125 CALL nemo_init !== Initialisations ==!126 ! !-----------------------!127 #if defined key_agrif128 CALL Agrif_Declare_Var_dom ! AGRIF: set the meshes for DOM129 CALL Agrif_Declare_Var ! " " " " " DYN/TRA130 # if defined key_top131 CALL Agrif_Declare_Var_top ! " " " " " TOP132 # endif133 # if defined key_lim2134 CALL Agrif_Declare_Var_lim2 ! " " " " " LIM135 # endif136 #endif137 ! check that all process are still there... If some process have an error,138 ! they will never enter in step and other processes will wait until the end of the cpu time!139 IF( lk_mpp ) CALL mpp_max( nstop )140 141 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA142 143 ! !-----------------------!144 ! !== time stepping ==!145 ! !-----------------------!146 istp = nit000147 #if defined key_c1d148 DO WHILE ( istp <= nitend .AND. nstop == 0 )149 CALL stp_c1d( istp )150 istp = istp + 1151 END DO152 #else153 IF( lk_asminc ) THEN154 IF( ln_bkgwri ) CALL asm_bkg_wri( nit000 - 1 ) ! Output background fields155 IF( ln_asmdin ) THEN ! Direct initialization156 IF( ln_trainc ) CALL tra_asm_inc( nit000 - 1 ) ! Tracers157 IF( ln_dyninc ) CALL dyn_asm_inc( nit000 - 1 ) ! Dynamics158 IF( ln_sshinc ) CALL ssh_asm_inc( nit000 - 1 ) ! SSH159 ENDIF160 ENDIF161 162 DO WHILE ( istp <= nitend .AND. nstop == 0 )163 #if defined key_agrif164 CALL Agrif_Step( stp ) ! AGRIF: time stepping165 #else166 CALL stp( istp ) ! standard time stepping167 #endif168 istp = istp + 1169 IF( lk_mpp ) CALL mpp_max( nstop )170 END DO171 #endif172 173 IF( lk_diaobs ) CALL dia_obs_wri174 !175 IF( ln_icebergs ) CALL icb_end( nitend )176 177 ! !------------------------!178 ! !== finalize the run ==!179 ! !------------------------!180 IF(lwp) WRITE(numout,cform_aaa) ! Flag AAAAAAA181 !182 IF( nstop /= 0 .AND. lwp ) THEN ! error print183 WRITE(numout,cform_err)184 WRITE(numout,*) nstop, ' error have been found'185 ENDIF186 !187 #if defined key_agrif188 CALL Agrif_ParentGrid_To_ChildGrid()189 IF( lk_diaobs ) CALL dia_obs_wri190 IF( nn_timing == 1 ) CALL timing_finalize191 CALL Agrif_ChildGrid_To_ParentGrid()192 #endif193 IF( nn_timing == 1 ) CALL timing_finalize194 !195 CALL nemo_closefile196 #if defined key_iomput197 CALL xios_finalize ! end mpp communications with xios198 # if defined key_oasis3 || defined key_oasis4199 CALL cpl_prism_finalize ! end coupling and mpp communications with OASIS200 # endif201 #else202 # if defined key_oasis3 || defined key_oasis4203 CALL cpl_prism_finalize ! end coupling and mpp communications with OASIS204 # else205 IF( lk_mpp ) CALL mppstop ! end mpp communications206 # endif207 #endif208 !209 END SUBROUTINE nemo_gcm210 211 103 212 104 SUBROUTINE nemo_init … … 335 227 IF( ln_ctl ) CALL prt_ctl_init ! Print control 336 228 337 IF( lk_obc ) CALL obc_init ! Open boundaries338 339 229 CALL istate_init ! ocean initial state (Dynamics and tracers) 340 230 341 IF( lk_tide ) CALL tide_init( nit000 ) ! Initialisation of the tidal harmonics342 343 IF( lk_bdy ) CALL bdy_init ! Open boundaries initialisation344 IF( lk_bdy ) CALL bdy_dta_init ! Open boundaries initialisation of external data arrays345 IF( lk_bdy ) CALL bdytide_init ! Open boundaries initialisation of tidal harmonic forcing346 347 CALL dyn_nept_init ! simplified form of Neptune effect348 349 ! ! Ocean physics350 CALL sbc_init ! Forcings : surface module351 ! ! Vertical physics352 CALL zdf_init ! namelist read353 CALL zdf_bfr_init ! bottom friction354 IF( lk_zdfric ) CALL zdf_ric_init ! Richardson number dependent Kz355 IF( lk_zdftke ) CALL zdf_tke_init ! TKE closure scheme356 IF( lk_zdfgls ) CALL zdf_gls_init ! GLS closure scheme357 IF( lk_zdfkpp ) CALL zdf_kpp_init ! KPP closure scheme358 IF( lk_zdftmx ) CALL zdf_tmx_init ! tidal vertical mixing359 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) &360 & CALL zdf_ddm_init ! double diffusive mixing361 ! ! Lateral physics362 CALL ldf_tra_init ! Lateral ocean tracer physics363 CALL ldf_dyn_init ! Lateral ocean momentum physics364 IF( lk_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing365 366 ! ! Active tracers367 CALL tra_qsr_init ! penetrative solar radiation qsr368 CALL tra_bbc_init ! bottom heat flux369 IF( lk_trabbl ) CALL tra_bbl_init ! advective (and/or diffusive) bottom boundary layer scheme370 IF( ln_tradmp ) CALL tra_dmp_init ! internal damping trends371 CALL tra_adv_init ! horizontal & vertical advection372 CALL tra_ldf_init ! lateral mixing373 CALL tra_zdf_init ! vertical mixing and after tracer fields374 375 ! ! Dynamics376 CALL dyn_adv_init ! advection (vector or flux form)377 CALL dyn_vor_init ! vorticity term including Coriolis378 CALL dyn_ldf_init ! lateral mixing379 CALL dyn_hpg_init ! horizontal gradient of Hydrostatic pressure380 CALL dyn_zdf_init ! vertical diffusion381 CALL dyn_spg_init ! surface pressure gradient382 383 ! ! Misc. options384 IF( nn_cla == 1 ) CALL cla_init ! Cross Land Advection385 CALL icb_init( rdt, nit000) ! initialise icebergs instance386 387 #if defined key_top388 ! ! Passive tracers389 CALL trc_init390 #endif391 ! ! Diagnostics392 IF( lk_floats ) CALL flo_init ! drifting Floats393 IF( lk_diaar5 ) CALL dia_ar5_init ! ar5 diag394 CALL dia_ptr_init ! Poleward TRansports initialization395 IF( lk_diadct ) CALL dia_dct_init ! Sections tranports396 CALL dia_hsb_init ! heat content, salt content and volume budgets397 CALL trd_mod_init ! Mixed-layer/Vorticity/Integral constraints trends398 231 IF( lk_diaobs ) THEN ! Observation & model comparison 399 232 CALL dia_obs_init ! Initialize observational data 400 233 CALL dia_obs( nit000 - 1 ) ! Observation operator for restart 401 234 ENDIF 402 ! ! Assimilation increments403 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments404 IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler405 !406 235 END SUBROUTINE nemo_init 407 236 -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/obs_fbm.F90
r4100 r4106 1570 1570 !!---------------------------------------------------------------------- 1571 1571 USE dom_oce, ONLY: narea 1572 USE o ff_write1573 USE o ff_data1572 USE ooo_write 1573 USE ooo_data 1574 1574 IMPLICIT NONE 1575 1575 !! * Arguments … … 1734 1734 1735 1735 ! Initialise class 4 file 1736 CALL o ff_wri_init(cconf, csys, ckind, cversion, ccont, cinst, cdate, &1736 CALL ooo_wri_init(cconf, csys, ckind, cversion, ccont, cinst, cdate, & 1737 1737 & kproc, kobs, kvars, kdeps, kfcst, & 1738 1738 & clfilename) 1739 1739 1740 1740 ! Write standard variables 1741 CALL o ff_wri_default(clfilename, kobs, kvars, kfcst, kdeps, &1741 CALL ooo_wri_default(clfilename, kobs, kvars, kfcst, kdeps, & 1742 1742 & ctype, cwmo, cunit, cvarname, & 1743 1743 & plam, pphi, pdep, ptim, pob, plead, & … … 1748 1748 (TRIM(cdtmp) == "persistence") ) THEN 1749 1749 !! 4D variables 1750 CALL o ff_wri_extra(clfilename, TRIM(cdtmp), kdeps, kfcst, &1750 CALL ooo_wri_extra(clfilename, TRIM(cdtmp), kdeps, kfcst, & 1751 1751 & kvars, kobs, (/ 1,ij,1,1 /), (/ kdeps,1,kvars,kobs /), pmod) 1752 1752 ELSE 1753 1753 !! 3D variables 1754 CALL o ff_wri_extra(clfilename, TRIM(cdtmp), kdeps, &1754 CALL ooo_wri_extra(clfilename, TRIM(cdtmp), kdeps, & 1755 1755 & kvars, kobs, (/ 1,1,1 /), (/ kdeps,kvars,kobs /), pmod) 1756 1756 ENDIF -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/ooo_data.F90
r4100 r4106 1 MODULE o ff_data1 MODULE ooo_data 2 2 USE par_kind, ONLY: lc 3 3 IMPLICIT NONE … … 34 34 & alt_file !: altimeter file 35 35 CONTAINS 36 SUBROUTINE o ff_data_init( ld_cl4 )36 SUBROUTINE ooo_data_init( ld_cl4 ) 37 37 !!---------------------------------------------------------------------- 38 !! *** SUBROUTINE o ff_data_init ***38 !! *** SUBROUTINE ooo_data_init *** 39 39 !! 40 40 !! ** Purpose : To read namelists and initialise offline_oper run. … … 131 131 END IF 132 132 133 END SUBROUTINE o ff_data_init133 END SUBROUTINE ooo_data_init 134 134 135 END MODULE o ff_data135 END MODULE ooo_data 136 136 -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/ooo_netcdf.F90
r4100 r4106 1 MODULE o ff_netcdf1 MODULE ooo_netcdf 2 2 USE obs_utils, ONLY: chkerr 3 3 USE obs_const, ONLY: obfillflt … … 102 102 END SUBROUTINE inst_converter 103 103 104 END MODULE o ff_netcdf104 END MODULE ooo_netcdf -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/ooo_read.F90
r4100 r4106 1 1 2 MODULE o ff_read2 MODULE ooo_read 3 3 !!====================================================================== 4 !! *** MODULE o ff_read ***4 !! *** MODULE ooo_read *** 5 5 !! Read routines : I/O for offline obs_oper 6 6 !!====================================================================== … … 16 16 USE obs_fbm, ONLY: fbimdi, fbrmdi, fbsp, fbdp 17 17 18 USE o ff_data18 USE ooo_data 19 19 !! * Routine accessibility 20 20 PRIVATE 21 21 22 PUBLIC o ff_rea_dri22 PUBLIC ooo_rea_dri 23 23 24 24 CONTAINS 25 SUBROUTINE o ff_rea_dri(kfile)25 SUBROUTINE ooo_rea_dri(kfile) 26 26 IMPLICIT NONE 27 27 !!------------------------------------------------------------------------ 28 !! *** o ff_rea_dri ***28 !! *** ooo_rea_dri *** 29 29 !! 30 30 !! Purpose : To choose appropriate read method … … 56 56 & (TRIM(cmatchname) == 'best_estimate').OR. & 57 57 & (TRIM(cmatchname) == '') ) THEN 58 CALL o ff_read_file(TRIM(cdfilename), kindex)59 CALL o ff_read_juld(TRIM(cdfilename), kindex, cl4_modjuld)58 CALL ooo_read_file(TRIM(cdfilename), kindex) 59 CALL ooo_read_juld(TRIM(cdfilename), kindex, cl4_modjuld) 60 60 ELSE IF (TRIM(cmatchname) == 'climatology') THEN 61 61 WRITE(numout,*) 'Interpolating climatologies' 62 62 ELSE IF (TRIM(cmatchname) == 'altimeter') THEN 63 CALL o ff_read_altbias(TRIM(cdfilename))64 CALL o ff_read_juld(TRIM(cdfilename), kindex, cl4_modjuld)63 CALL ooo_read_altbias(TRIM(cdfilename)) 64 CALL ooo_read_juld(TRIM(cdfilename), kindex, cl4_modjuld) 65 65 END IF 66 66 67 END SUBROUTINE o ff_rea_dri68 69 SUBROUTINE o ff_read_altbias(filename)67 END SUBROUTINE ooo_rea_dri 68 69 SUBROUTINE ooo_read_altbias(filename) 70 70 IMPLICIT NONE 71 71 !!------------------------------------------------------------------------ 72 !! *** o ff_read_altbias ***72 !! *** ooo_read_altbias *** 73 73 !! 74 74 !! Purpose : To read altimeter bias and set tn,sn to missing values … … 140 140 END IF 141 141 142 END SUBROUTINE o ff_read_altbias143 144 SUBROUTINE o ff_read_file(filename, ifcst)142 END SUBROUTINE ooo_read_altbias 143 144 SUBROUTINE ooo_read_file(filename, ifcst) 145 145 IMPLICIT NONE 146 146 !!------------------------------------------------------------------------ 147 !! *** o ff_read_file ***147 !! *** ooo_read_file *** 148 148 !! 149 149 !! Purpose : To fill tn and sn with dailymean field from netcdf files … … 268 268 istat = nf90_close(ncid) 269 269 END IF 270 END SUBROUTINE o ff_read_file271 272 SUBROUTINE o ff_read_juld(filename, ifcst, julian)270 END SUBROUTINE ooo_read_file 271 272 SUBROUTINE ooo_read_juld(filename, ifcst, julian) 273 273 USE calendar 274 274 IMPLICIT NONE 275 275 !!-------------------------------------------------------------------- 276 !! *** o ff_read_juld ***276 !! *** ooo_read_juld *** 277 277 !! 278 278 !! Purpose : To read model julian day information from file … … 346 346 DEALLOCATE(r_sec) 347 347 348 END SUBROUTINE o ff_read_juld349 350 END MODULE o ff_read351 348 END SUBROUTINE ooo_read_juld 349 350 END MODULE ooo_read 351 -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/ooo_write.F90
r4100 r4106 1 MODULE o ff_write1 MODULE ooo_write 2 2 !!====================================================================== 3 !! *** MODULE o ff_write ***3 !! *** MODULE ooo_write *** 4 4 !!====================================================================== 5 5 USE netcdf 6 6 USE obs_utils, ONLY: chkerr 7 USE o ff_netcdf, ONLY: date_format, inst_converter, yyyymmdd_to_ref_date8 USE o ff_data7 USE ooo_netcdf, ONLY: date_format, inst_converter, yyyymmdd_to_ref_date 8 USE ooo_data 9 9 IMPLICIT NONE 10 10 PRIVATE 11 11 12 PUBLIC o ff_wri_init13 PUBLIC o ff_wri_default14 PUBLIC o ff_wri_extra12 PUBLIC ooo_wri_init 13 PUBLIC ooo_wri_default 14 PUBLIC ooo_wri_extra 15 15 16 16 ! Type kinds for class 4 data. … … 22 22 REAL(clsp), PARAMETER :: clrmdi = 99999 !: Reals 23 23 24 INTERFACE o ff_wri_extra25 MODULE PROCEDURE o ff_wri_extra_3d_index, off_wri_extra_4d, off_wri_extra_4d_index24 INTERFACE ooo_wri_extra 25 MODULE PROCEDURE ooo_wri_extra_3d_index, ooo_wri_extra_4d, ooo_wri_extra_4d_index 26 26 END INTERFACE 27 27 28 28 CONTAINS 29 29 30 SUBROUTINE o ff_wri_extra_3d_index(cdfilename, cdvarname, ndeps, nvars, &30 SUBROUTINE ooo_wri_extra_3d_index(cdfilename, cdvarname, ndeps, nvars, & 31 31 & nobs, kstart, kcount, pdata) 32 32 !!---------------------------------------------------------------------- 33 !! *** ROUTINE o ff_wri_extra_3d ***33 !! *** ROUTINE ooo_wri_extra_3d *** 34 34 !! 35 35 !! ** Purpose : Write 3d variables to class 4 file. … … 52 52 & dimid, & !: 53 53 & varid !: 54 CHARACTER(len=16), PARAMETER :: cpname = 'o ff_wri_extra_3d'54 CHARACTER(len=16), PARAMETER :: cpname = 'ooo_wri_extra_3d' 55 55 ! Open netcdf file 56 56 CALL chkerr(nf90_open(trim(cdfilename), nf90_write, ncid), cpname, __LINE__ ) … … 60 60 ! Close netcdf file 61 61 CALL chkerr(nf90_close(ncid), cpname, __LINE__ ) 62 END SUBROUTINE o ff_wri_extra_3d_index63 64 SUBROUTINE o ff_wri_extra_4d_index(cdfilename, cdvarname, ndeps, nfcst, &62 END SUBROUTINE ooo_wri_extra_3d_index 63 64 SUBROUTINE ooo_wri_extra_4d_index(cdfilename, cdvarname, ndeps, nfcst, & 65 65 & nvars, nobs, kstart, kcount, pdata) 66 66 !!---------------------------------------------------------------------- 67 !! *** ROUTINE o ff_wri_extra_4d ***67 !! *** ROUTINE ooo_wri_extra_4d *** 68 68 !! 69 69 !! ** Purpose : Write 4d variables to class 4 file. … … 87 87 & dimid, & !: 88 88 & varid !: 89 CHARACTER(len=22), PARAMETER :: cpname = 'o ff_wri_extra_4d_index'89 CHARACTER(len=22), PARAMETER :: cpname = 'ooo_wri_extra_4d_index' 90 90 ! Open netcdf file 91 91 CALL chkerr(nf90_open(trim(cdfilename), nf90_write, ncid), cpname, __LINE__ ) … … 95 95 ! Close netcdf file 96 96 CALL chkerr(nf90_close(ncid), cpname, __LINE__ ) 97 END SUBROUTINE o ff_wri_extra_4d_index98 99 SUBROUTINE o ff_wri_extra_4d(cdfilename, cdvarname, ndeps, nfcst, &97 END SUBROUTINE ooo_wri_extra_4d_index 98 99 SUBROUTINE ooo_wri_extra_4d(cdfilename, cdvarname, ndeps, nfcst, & 100 100 & nvars, nobs, pdata) 101 101 !!---------------------------------------------------------------------- 102 !! *** ROUTINE o ff_wri_extra_4d ***102 !! *** ROUTINE ooo_wri_extra_4d *** 103 103 !! 104 104 !! ** Purpose : Write 4d variables to class 4 file. … … 119 119 & dimid, & !: 120 120 & varid !: 121 CHARACTER(len=16), PARAMETER :: cpname = 'o ff_wri_extra_4d'121 CHARACTER(len=16), PARAMETER :: cpname = 'ooo_wri_extra_4d' 122 122 ! Open netcdf file 123 123 CALL chkerr(nf90_open(trim(cdfilename), nf90_write, ncid), cpname, __LINE__ ) … … 127 127 ! Close netcdf file 128 128 CALL chkerr(nf90_close(ncid), cpname, __LINE__ ) 129 END SUBROUTINE o ff_wri_extra_4d130 131 SUBROUTINE o ff_wri_default(cdfilename, nobs, nvars, nfcst, ndeps, &129 END SUBROUTINE ooo_wri_extra_4d 130 131 SUBROUTINE ooo_wri_default(cdfilename, nobs, nvars, nfcst, ndeps, & 132 132 & cdtyp, cdwmo, cunit, cvnam, & 133 133 & plam, pphi, pdep, ptim, pob, plead, & 134 134 & kqc, pmjuld) 135 135 !!---------------------------------------------------------------------- 136 !! *** ROUTINE o ff_wri_default ***136 !! *** ROUTINE ooo_wri_default *** 137 137 !! 138 138 !! ** Purpose : Write standard variables to class 4 file. … … 189 189 & dimid, & !: 190 190 & varid !: 191 CHARACTER(len=15), PARAMETER :: cpname = 'o ff_wri_default'191 CHARACTER(len=15), PARAMETER :: cpname = 'ooo_wri_default' 192 192 ! Open netcdf file 193 193 CALL chkerr(nf90_open(trim(cdfilename), nf90_write, ncid), cpname, __LINE__ ) … … 250 250 ! Close netcdf file 251 251 CALL chkerr(nf90_close(ncid), cpname, __LINE__ ) 252 END SUBROUTINE o ff_wri_default253 254 SUBROUTINE o ff_wri_init(cconf, csys, ckind, cversion, ccont, &252 END SUBROUTINE ooo_wri_default 253 254 SUBROUTINE ooo_wri_init(cconf, csys, ckind, cversion, ccont, & 255 255 & cinst, cdate, nproc, nobs, nvars, & 256 256 & ndeps, nfcst, cdfilename) 257 257 !!---------------------------------------------------------------------- 258 !! *** ROUTINE o ff_wri_init ***258 !! *** ROUTINE ooo_wri_init *** 259 259 !! 260 260 !! ** Purpose : Initialise a class 4 file. … … 310 310 INTEGER, DIMENSION(4) :: & 311 311 & dim4a !: 4 dimensional settings 312 CHARACTER(len=12), PARAMETER :: cpname = 'o ff_wri_init'312 CHARACTER(len=12), PARAMETER :: cpname = 'ooo_wri_init' 313 313 ! Global att variables 314 314 CHARACTER(len=40) :: date_str … … 613 613 CALL chkerr(nf90_close(ncid), cpname, __LINE__ ) 614 614 END IF 615 END SUBROUTINE o ff_wri_init616 617 618 END MODULE o ff_write615 END SUBROUTINE ooo_wri_init 616 617 618 END MODULE ooo_write -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OOO_SRC/ooomod.F90
r4100 r4106 1 MODULE o ff_oper1 MODULE ooomod 2 2 !!---------------------------------------------------------------------- 3 !! *** MODULE o ff_oper***3 !! *** MODULE ooo *** 4 4 !! ** Purpose : Run NEMO observation operator in offline mode 5 5 !!---------------------------------------------------------------------- … … 11 11 USE obs_fbm, ONLY: ln_cl4 12 12 !! Offline obs_oper modules 13 USE o ff_data14 USE o ff_read13 USE ooo_data 14 USE ooo_read 15 15 CONTAINS 16 SUBROUTINE o ff_oper_init16 SUBROUTINE ooo_init 17 17 !!---------------------------------------------------------------------- 18 !! *** SUBROUTINE o ff_oper_init ***18 !! *** SUBROUTINE ooo_init *** 19 19 !! 20 20 !! ** Purpose : To initialise the model as if it were running online. … … 25 25 CALL nemo_init 26 26 !! Initialise Offline obs_oper data 27 CALL o ff_data_init( ln_cl4 )28 END SUBROUTINE o ff_oper_init27 CALL ooo_data_init( ln_cl4 ) 28 END SUBROUTINE ooo_init 29 29 30 SUBROUTINE off _obs_oper30 SUBROUTINE offline_obs_oper 31 31 !!---------------------------------------------------------------------- 32 !! *** SUBROUTINE off _obs_oper ***32 !! *** SUBROUTINE offline_obs_oper *** 33 33 !! 34 34 !! ** Purpose : To use NEMO components to interpolate model fields … … 38 38 IMPLICIT NONE 39 39 !! Initialise offline obs_oper 40 CALL o ff_oper_init40 CALL ooo_init 41 41 !! Loop over various model counterparts 42 42 DO jimatch = 1, cl4_match_len … … 46 46 END IF 47 47 !! Interpolate to observation space 48 CALL o ff_oper_interp48 CALL ooo_interp 49 49 !! Pipe to output files 50 50 CALL dia_obs_wri … … 53 53 END DO 54 54 !! Safely stop MPI 55 CALL o ff_oper_stop56 END SUBROUTINE off _obs_oper55 CALL ooo_stop 56 END SUBROUTINE offline_obs_oper 57 57 58 SUBROUTINE o ff_oper_interp58 SUBROUTINE ooo_interp 59 59 !!---------------------------------------------------------------------- 60 !! *** SUBROUTINE o ff_oper_interp ***60 !! *** SUBROUTINE ooo_interp *** 61 61 !! 62 62 !! ** Purpose : To interpolate the model as if it were running online. … … 74 74 IF ( MOD(istp, nn_off_freq) == nit000 ) THEN 75 75 !! Read next model counterpart 76 CALL o ff_rea_dri(jifile)76 CALL ooo_rea_dri(jifile) 77 77 jifile = jifile + 1 78 78 ENDIF … … 83 83 istp = istp + 1 84 84 END DO 85 END SUBROUTINE o ff_oper_interp85 END SUBROUTINE ooo_interp 86 86 87 SUBROUTINE o ff_oper_stop87 SUBROUTINE ooo_stop 88 88 !!---------------------------------------------------------------------- 89 !! *** SUBROUTINE o ff_oper_stop ***89 !! *** SUBROUTINE ooo_stop *** 90 90 !! 91 91 !! ** Purpose : To finalise the model as if it were running online. … … 94 94 IMPLICIT NONE 95 95 IF(lk_mpp) CALL mppstop ! end mpp communications 96 END SUBROUTINE o ff_oper_stop96 END SUBROUTINE ooo_stop 97 97 98 END MODULE o ff_oper98 END MODULE ooomod -
branches/2013/dev_r3987_UKMO4_OBS/NEMOGCM/NEMO/OPA_SRC/OBS/obs_fbm.F90
r4091 r4106 1570 1570 !!---------------------------------------------------------------------- 1571 1571 USE dom_oce, ONLY: narea 1572 USE o ff_write1573 USE o ff_data1572 USE ooo_write 1573 USE ooo_data 1574 1574 IMPLICIT NONE 1575 1575 !! * Arguments … … 1734 1734 1735 1735 ! Initialise class 4 file 1736 CALL o ff_wri_init(cconf, csys, ckind, cversion, ccont, cinst, cdate, &1736 CALL ooo_wri_init(cconf, csys, ckind, cversion, ccont, cinst, cdate, & 1737 1737 & kproc, kobs, kvars, kdeps, kfcst, & 1738 1738 & clfilename) 1739 1739 1740 1740 ! Write standard variables 1741 CALL o ff_wri_default(clfilename, kobs, kvars, kfcst, kdeps, &1741 CALL ooo_wri_default(clfilename, kobs, kvars, kfcst, kdeps, & 1742 1742 & ctype, cwmo, cunit, cvarname, & 1743 1743 & plam, pphi, pdep, ptim, pob, plead, & … … 1748 1748 (TRIM(cdtmp) == "persistence") ) THEN 1749 1749 !! 4D variables 1750 CALL o ff_wri_extra(clfilename, TRIM(cdtmp), kdeps, kfcst, &1750 CALL ooo_wri_extra(clfilename, TRIM(cdtmp), kdeps, kfcst, & 1751 1751 & kvars, kobs, (/ 1,ij,1,1 /), (/ kdeps,1,kvars,kobs /), pmod) 1752 1752 ELSE 1753 1753 !! 3D variables 1754 CALL o ff_wri_extra(clfilename, TRIM(cdtmp), kdeps, &1754 CALL ooo_wri_extra(clfilename, TRIM(cdtmp), kdeps, & 1755 1755 & kvars, kobs, (/ 1,1,1 /), (/ kdeps,kvars,kobs /), pmod) 1756 1756 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.