Changeset 7992 for branches/UKMO/dev_r5518_obs_oper_update/NEMOGCM/NEMO/OPA_SRC/OBS/obs_surf_def.F90
- Timestamp:
- 2017-05-02T13:21:57+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_obs_oper_update/NEMOGCM/NEMO/OPA_SRC/OBS/obs_surf_def.F90
r7960 r7992 50 50 INTEGER :: npj 51 51 INTEGER :: nsurfup !: Observation counter used in obs_oper 52 INTEGER :: nrec !: Number of surface observation records in window 52 53 53 54 ! Arrays with size equal to the number of surface observations … … 56 57 & mi, & !: i-th grid coord. for interpolating to surface observation 57 58 & mj, & !: j-th grid coord. for interpolating to surface observation 59 & mt, & !: time record number for gridded data 58 60 & nsidx,& !: Surface observation number 59 61 & nsfil,& !: Surface observation number in file … … 67 69 & ntyp !: Type of surface observation product 68 70 71 CHARACTER(len=8), POINTER, DIMENSION(:) :: & 72 & cvars !: Variable names 73 69 74 CHARACTER(LEN=8), POINTER, DIMENSION(:) :: & 70 75 & cwmo !: WMO indentifier … … 90 95 & nsstpmpp !: Global number of surface observations per time step 91 96 97 ! Arrays with size equal to the number of observation records in the window 98 INTEGER, POINTER, DIMENSION(:) :: & 99 & mrecstp ! Time step of the records 100 92 101 ! Arrays used to store source indices when 93 102 ! compressing obs_surf derived types … … 97 106 INTEGER, POINTER, DIMENSION(:) :: & 98 107 & nsind !: Source indices of surface data in compressed data 108 109 ! Is this a gridded product? 110 111 LOGICAL :: lgrid 99 112 100 113 END TYPE obs_surf … … 130 143 !!* Local variables 131 144 INTEGER :: ji 145 INTEGER :: jvar 132 146 133 147 ! Set bookkeeping variables … … 140 154 surf%npi = kpi 141 155 surf%npj = kpj 156 157 ! Allocate arrays of size number of variables 158 159 ALLOCATE( & 160 & surf%cvars(kvar) & 161 & ) 162 163 DO jvar = 1, kvar 164 surf%cvars(jvar) = "NotSet" 165 END DO 142 166 143 167 ! Allocate arrays of number of surface data size … … 146 170 & surf%mi(ksurf), & 147 171 & surf%mj(ksurf), & 172 & surf%mt(ksurf), & 148 173 & surf%nsidx(ksurf), & 149 174 & surf%nsfil(ksurf), & … … 162 187 & ) 163 188 189 surf%mt(:) = -1 190 164 191 165 192 ! Allocate arrays of number of surface data size * number of variables … … 176 203 & ) 177 204 205 surf%rext(:,:) = 0.0_wp 206 178 207 ! Allocate arrays of number of time step size 179 208 … … 203 232 204 233 surf%nsurfup = 0 234 235 ! Not gridded by default 236 237 surf%lgrid = .FALSE. 205 238 206 239 END SUBROUTINE obs_surf_alloc … … 228 261 & surf%mi, & 229 262 & surf%mj, & 263 & surf%mt, & 230 264 & surf%nsidx, & 231 265 & surf%nsfil, & … … 269 303 & surf%nsstp, & 270 304 & surf%nsstpmpp & 305 & ) 306 307 ! Dellocate arrays of size number of variables 308 309 DEALLOCATE( & 310 & surf%cvars & 271 311 & ) 272 312 … … 350 390 newsurf%mi(insurf) = surf%mi(ji) 351 391 newsurf%mj(insurf) = surf%mj(ji) 392 newsurf%mt(insurf) = surf%mt(ji) 352 393 newsurf%nsidx(insurf) = surf%nsidx(ji) 353 394 newsurf%nsfil(insurf) = surf%nsfil(ji) … … 392 433 ! Set book keeping variables which do not depend on number of obs. 393 434 394 newsurf%nstp = surf%nstp 435 newsurf%nstp = surf%nstp 436 newsurf%cvars(:) = surf%cvars(:) 437 438 ! Set gridded stuff 439 440 newsurf%mt(insurf) = surf%mt(ji) 395 441 396 442 ! Deallocate temporary data … … 433 479 oldsurf%mi(jj) = surf%mi(ji) 434 480 oldsurf%mj(jj) = surf%mj(ji) 481 oldsurf%mt(jj) = surf%mt(ji) 435 482 oldsurf%nsidx(jj) = surf%nsidx(ji) 436 483 oldsurf%nsfil(jj) = surf%nsfil(ji)
Note: See TracChangeset
for help on using the changeset viewer.