Changeset 15246
- Timestamp:
- 2021-09-10T13:08:02+02:00 (19 months ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.4_generic_obs
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/cfgs/SHARED/namelist_ref
r15240 r15246 1292 1292 rn_mdtcorr = 1.61 ! MDT correction 1293 1293 rn_mdtcutoff = 65.0 ! MDT cutoff for computed correction 1294 !!! NOT YET IMPLEMENTED:1295 !!! OUTPUT CLIMATOLOGY 1294 ! Relevant if 'POTM', 'PSAL', 'SST', or 'SSS' in cn_obstypes: 1295 ln_output_clim = .false. ! Logical switch to output climatological temperature/salinity (if ln_tradmp) 1296 1296 / 1297 1297 !----------------------------------------------------------------------- -
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/diaobs.F90
r15240 r15246 84 84 !!---------------------------------------------------------------------- 85 85 #if defined key_si3 86 USE ice, ONLY : & ! Sea ice variables87 & hm_s ! Snow depth for freeboard conversion86 USE ice, ONLY : & ! Sea ice variables 87 & hm_s ! Snow depth for freeboard conversion 88 88 #elif defined key_cice 89 USE sbc_oce, ONLY : & ! Sea ice variables90 & thick_s ! Snow depth for freeboard conversion89 USE sbc_oce, ONLY : & ! Sea ice variables 90 & thick_s ! Snow depth for freeboard conversion 91 91 #endif 92 USE obs_fbm, ONLY : & 93 & fbrmdi ! Real missing data indicator 92 94 93 95 IMPLICIT NONE … … 232 234 ENDIF 233 235 ! 236 IF( sobsgroups(jgroup)%loutput_clim ) THEN 237 sobsgroups(jgroup)%sprofdata%caddvars(sobsgroups(jgroup)%nadd_clm) = 'CLM' 238 DO jvar = 1, sobsgroups(jgroup)%nobstypes 239 sobsgroups(jgroup)%sprofdata%var(jvar)%vadd(:,sobsgroups(jgroup)%nadd_clm) = fbrmdi 240 sobsgroups(jgroup)%sprofdata%caddlong(sobsgroups(jgroup)%nadd_clm,jvar) = 'Climatology' 241 sobsgroups(jgroup)%sprofdata%caddunit(sobsgroups(jgroup)%nadd_clm,jvar) = sobsgroups(jgroup)%sprofdata%cunit(jvar) 242 END DO 243 ENDIF 244 ! 234 245 CALL obs_pre_prof( sobsgroups(jgroup)%sprofdata, & 235 246 & sobsgroups(jgroup)%sprofdataqc, & … … 284 295 sobsgroups(jgroup)%ssurfdata%caddlong(sobsgroups(jgroup)%nadd_fbd,jvar) = 'Freeboard' 285 296 sobsgroups(jgroup)%ssurfdata%caddunit(sobsgroups(jgroup)%nadd_fbd,jvar) = 'Metres' 297 END DO 298 ENDIF 299 ! 300 IF( sobsgroups(jgroup)%loutput_clim ) THEN 301 sobsgroups(jgroup)%ssurfdata%caddvars(sobsgroups(jgroup)%nadd_clm) = 'CLM' 302 DO jvar = 1, sobsgroups(jgroup)%nobstypes 303 sobsgroups(jgroup)%ssurfdata%radd(:,:,jvar) = fbrmdi 304 sobsgroups(jgroup)%ssurfdata%caddlong(sobsgroups(jgroup)%nadd_clm,jvar) = 'Climatology' 305 sobsgroups(jgroup)%ssurfdata%caddunit(sobsgroups(jgroup)%nadd_clm,jvar) = sobsgroups(jgroup)%ssurfdata%cunit(jvar) 286 306 END DO 287 307 ENDIF … … 368 388 USE sbc_oce, ONLY : fr_i, thick_i ! CICE Ice model variables 369 389 #endif 390 USE tradmp, ONLY : tclim, sclim ! T&S climatology 391 USE obs_fbm, ONLY : fbrmdi ! Real missing data indicator 370 392 371 393 IMPLICIT NONE … … 382 404 LOGICAL :: lstp0 ! Flag special treatment on zeroth time step 383 405 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: & 384 & zprofvar ! Model values for variables in a prof ob 406 & zprofvar, & ! Model values for variables in a prof ob 407 & zprofclim ! Climatology values for variables in a prof ob 385 408 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: & 386 & zsurfvar ! Model values for variables in a surf ob 409 & zsurfvar, & ! Model values for variables in a surf ob 410 & zsurfclim ! Climatology values for variables in a surf ob 387 411 388 412 !----------------------------------------------------------------------- … … 402 426 !----------------------------------------------------------------------- 403 427 428 ALLOCATE( zprofvar(jpi,jpj,jpk), & 429 & zprofclim(jpi,jpj,jpk), & 430 & zsurfvar(jpi,jpj), & 431 & zsurfclim(jpi,jpj) ) 432 404 433 DO jgroup = 1, nn_obsgroups 405 434 IF (sobsgroups(jgroup)%lenabled) THEN … … 407 436 IF (sobsgroups(jgroup)%lprof) THEN 408 437 409 ALLOCATE( zprofvar(jpi,jpj,jpk) )438 zprofclim(:,:,:) = fbrmdi 410 439 411 440 DO jvar = 1, sobsgroups(jgroup)%nobstypes … … 414 443 CASE('POTM') 415 444 zprofvar(:,:,:) = tsn(:,:,:,jp_tem) 445 IF (sobsgroups(jgroup)%loutput_clim) THEN 446 zprofclim(:,:,:) = tclim(:,:,:) 447 ENDIF 416 448 CASE('PSAL') 417 449 zprofvar(:,:,:) = tsn(:,:,:,jp_sal) 450 IF (sobsgroups(jgroup)%loutput_clim) THEN 451 zprofclim(:,:,:) = sclim(:,:,:) 452 ENDIF 418 453 CASE('UVEL') 419 454 zprofvar(:,:,:) = un(:,:,:) … … 428 463 & nit000, idaystp, jvar, & 429 464 & zprofvar, & 465 & sobsgroups(jgroup)%loutput_clim, & 466 & sobsgroups(jgroup)%nadd_clm, & 467 & zprofclim, & 430 468 & gdept_n, & 431 469 & gdepw_n, & … … 439 477 END DO 440 478 441 DEALLOCATE( zprofvar )442 443 479 ELSEIF (sobsgroups(jgroup)%lsurf) THEN 444 480 445 ALLOCATE( zsurfvar(jpi,jpj) )481 zsurfclim(:,:) = fbrmdi 446 482 447 483 DO jvar = 1, sobsgroups(jgroup)%nobstypes … … 451 487 CASE('SST') 452 488 zsurfvar(:,:) = tsn(:,:,1,jp_tem) 489 IF (sobsgroups(jgroup)%loutput_clim) THEN 490 zsurfclim(:,:) = tclim(:,:,1) 491 ENDIF 453 492 CASE('SLA') 454 493 zsurfvar(:,:) = sshn(:,:) 455 494 CASE('SSS') 456 495 zsurfvar(:,:) = tsn(:,:,1,jp_sal) 496 IF (sobsgroups(jgroup)%loutput_clim) THEN 497 zsurfclim(:,:) = sclim(:,:,1) 498 ENDIF 457 499 CASE('UVEL') 458 500 zsurfvar(:,:) = un(:,:,1) … … 515 557 & nit000, idaystp, & 516 558 & jvar, zsurfvar, & 559 & sobsgroups(jgroup)%loutput_clim, & 560 & sobsgroups(jgroup)%nadd_clm, & 561 & zsurfclim, & 517 562 & sobsgroups(jgroup)%rmask(:,:,1,jvar), & 518 563 & sobsgroups(jgroup)%n2dint, & … … 531 576 END DO 532 577 533 DEALLOCATE( zsurfvar )534 535 578 ENDIF 536 579 537 580 ENDIF 538 581 END DO 582 583 DEALLOCATE( zprofvar, zprofclim, & 584 & zsurfvar, zsurfclim ) 539 585 540 586 IF( ln_timing ) CALL timing_stop('dia_obs') -
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_group_def.F90
r15240 r15246 17 17 USE obs_surf_def ! Surface data definitions 18 18 USE obs_profiles_def ! Profile data definitions 19 USE tradmp, ONLY : & ! Damping to climatology 20 & ln_tradmp 19 21 20 22 IMPLICIT NONE … … 41 43 CHARACTER(LEN=8), PUBLIC :: cobsname_sla = 'SLA' ! Expected variable name for sea level anomaly 42 44 CHARACTER(LEN=8), PUBLIC :: cobsname_fbd = 'FBD' ! Expected variable name for sea ice freeboard 45 CHARACTER(LEN=8), PUBLIC :: cobsname_t3d = 'POTM' ! Expected variable name for 3D temperature 46 CHARACTER(LEN=8), PUBLIC :: cobsname_s3d = 'PSAL' ! Expected variable name for 3D salinity 47 CHARACTER(LEN=8), PUBLIC :: cobsname_t2d = 'SST' ! Expected variable name for 2D temperature 48 CHARACTER(LEN=8), PUBLIC :: cobsname_s2d = 'SSS' ! Expected variable name for 2D salinity 43 49 44 50 !! * Type definition for observation groups … … 68 74 INTEGER :: nadd_fbd !: Index of additional variable representing ice freeboard 69 75 INTEGER :: next_snow !: Index of extra variable representing snow thickness 76 INTEGER :: nadd_clm !: Index of additional variable representing climatology 70 77 ! 71 78 LOGICAL :: lenabled !: Logical switch for group being processed and not ignored … … 83 90 LOGICAL :: lnight !: Logical switch for calculating night-time average 84 91 LOGICAL :: ltime_mean_bkg !: Logical switch for applying time mean of background (e.g. to remove tidal signal) 92 LOGICAL :: loutput_clim !: Logical switch for outputting climatological temperature/salinity 85 93 LOGICAL :: lfp_indegs !: Logical: T=> averaging footprint is in degrees, F=> in metres 86 94 ! … … 196 204 LOGICAL :: ln_night 197 205 LOGICAL :: ln_time_mean_bkg 206 LOGICAL :: ln_output_clim 198 207 LOGICAL :: ln_fp_indegs 199 208 REAL(wp) :: rn_avglamscl … … 210 219 & cn_obsbiasfile_varname, ln_night, ln_time_mean_bkg, & 211 220 & rn_time_mean_period, ln_altbias, cn_altbiasfile, & 212 & nn_msshc, rn_mdtcorr, rn_mdtcutoff, ln_all_at_all 221 & nn_msshc, rn_mdtcorr, rn_mdtcutoff, ln_all_at_all, & 222 & ln_output_clim 213 223 !!---------------------------------------------------------------------- 214 224 … … 292 302 sdobsgroup%nadd_fbd = sdobsgroup%naddvars 293 303 sdobsgroup%next_snow = sdobsgroup%nextvars 304 ENDIF 305 ! 306 IF ( ln_output_clim .AND. ln_tradmp .AND. (.NOT. sdobsgroup%loutput_clim) ) THEN 307 IF ( (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_t3d) .OR. & 308 & (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_s3d) .OR. & 309 & (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_t2d) .OR. & 310 & (TRIM(sdobsgroup%cobstypes(itype)) == cobsname_s2d) ) THEN 311 sdobsgroup%loutput_clim = .TRUE. 312 sdobsgroup%naddvars = sdobsgroup%naddvars + 1 313 sdobsgroup%nadd_clm = sdobsgroup%naddvars 314 ENDIF 294 315 ENDIF 295 316 ! … … 438 459 WRITE(numout,*) ' MDT correction rn_mdtcorr = ', sdobsgroup%rmdtcorr 439 460 WRITE(numout,*) ' MDT cutoff for computed correction rn_mdtcutoff = ', sdobsgroup%rmdtcutoff 461 WRITE(numout,*) ' Settings only for temperature/salinity data' 462 WRITE(numout,*) ' Logical switch for outputting climatology ln_output_clim = ', sdobsgroup%loutput_clim 440 463 ENDIF 441 464 -
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/OBS/obs_oper.F90
r15240 r15246 42 42 SUBROUTINE obs_prof_opt( prodatqc, kt, kpi, kpj, kpk, & 43 43 & kit000, kdaystp, kvar, & 44 & pvar, pgdept, pgdepw, & 44 & pvar, & 45 & ldclim, kclim, pclim, & 46 & pgdept, pgdepw, & 45 47 & pmask, & 46 48 & plam, pphi, & … … 106 108 INTEGER , INTENT(in ) :: kdaystp ! Number of time steps per day 107 109 INTEGER , INTENT(in ) :: kvar ! Index of variable in prodatqc 110 INTEGER , INTENT(in ) :: kclim ! Index of climatology in prodatqc 111 LOGICAL , INTENT(in ) :: ldclim ! Switch to interpolate climatology 108 112 REAL(KIND=wp) , INTENT(in ), DIMENSION(kpi,kpj,kpk) :: pvar ! Model field 113 REAL(KIND=wp) , INTENT(in ), DIMENSION(kpi,kpj,kpk) :: pclim ! Climatology field 109 114 REAL(KIND=wp) , INTENT(in ), DIMENSION(kpi,kpj,kpk) :: pmask ! Land-sea mask 110 115 REAL(KIND=wp) , INTENT(in ), DIMENSION(kpi,kpj) :: plam ! Model longitude … … 138 143 REAL(KIND=wp), DIMENSION(kpk) :: & 139 144 & zobsk, & 140 & zobs2k 145 & zobs2k, & 146 & zclm2k 141 147 REAL(KIND=wp), DIMENSION(2,2,1) :: & 142 148 & zweig1, & … … 144 150 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: & 145 151 & zmask, & 152 & zclim, & 146 153 & zint, & 147 154 & zinm, & … … 153 160 REAL(KIND=wp), DIMENSION(1) :: zmsk 154 161 REAL(KIND=wp), DIMENSION(:,:,:), ALLOCATABLE :: interp_corner 162 REAL(KIND=wp), DIMENSION(:,:,:), ALLOCATABLE :: interp_corner_clim 155 163 156 164 LOGICAL :: ld_dailyav … … 228 236 & ) 229 237 238 IF ( ldclim ) THEN 239 ALLOCATE( zclim(2,2,kpk,ipro) ) 240 ENDIF 241 230 242 DO jobs = prodatqc%nprofup + 1, prodatqc%nprofup + ipro 231 243 iobs = jobs - prodatqc%nprofup … … 251 263 CALL obs_int_comm_3d( 2, 2, ipro, kpi, kpj, kpk, igrdi, igrdj, pgdept, zgdept ) 252 264 CALL obs_int_comm_3d( 2, 2, ipro, kpi, kpj, kpk, igrdi, igrdj, pgdepw, zgdepw ) 265 266 IF ( ldclim ) THEN 267 CALL obs_int_comm_3d( 2, 2, ipro, kpi, kpj, kpk, igrdi, igrdj, pclim, zclim ) 268 ENDIF 253 269 254 270 ! At the end of the day also get interpolated means … … 315 331 inum_obs = iend - ista + 1 316 332 ALLOCATE(interp_corner(2,2,inum_obs),iv_indic(inum_obs)) 333 IF ( ldclim ) THEN 334 ALLOCATE( interp_corner_clim(2,2,inum_obs) ) 335 ENDIF 317 336 318 337 DO iin=1,2 … … 324 343 & zobs2k, zgdept(iin,ijn,:,iobs), & 325 344 & zmask(iin,ijn,:,iobs)) 345 346 IF ( ldclim ) THEN 347 CALL obs_int_z1d_spl( kpk, & 348 & zclim(iin,ijn,:,iobs), & 349 & zclm2k, zgdept(iin,ijn,:,iobs), & 350 & zmask(iin,ijn,:,iobs)) 351 ENDIF 326 352 ENDIF 327 353 … … 337 363 & zgdept(iin,ijn,:,iobs), & 338 364 & zmask(iin,ijn,:,iobs)) 365 366 IF ( ldclim ) THEN 367 CALL obs_int_z1d(kpk, iv_indic, k1dint, inum_obs, & 368 & prodatqc%var(kvar)%vdep(ista:iend), & 369 & zclim(iin,ijn,:,iobs), & 370 & zclm2k, interp_corner_clim(iin,ijn,:), & 371 & zgdept(iin,ijn,:,iobs), & 372 & zmask(iin,ijn,:,iobs)) 373 ENDIF 339 374 340 375 ENDDO … … 352 387 inum_obs = iend - ista + 1 353 388 ALLOCATE(interp_corner(2,2,inum_obs), iv_indic(inum_obs)) 389 IF ( ldclim ) THEN 390 ALLOCATE( interp_corner_clim(2,2,inum_obs) ) 391 ENDIF 354 392 DO iin=1,2 355 393 DO ijn=1,2 … … 360 398 & zobs2k, zgdept(iin,ijn,:,iobs), & 361 399 & zmask(iin,ijn,:,iobs)) 362 400 401 IF ( ldclim ) THEN 402 CALL obs_int_z1d_spl( kpk, & 403 & zclim(iin,ijn,:,iobs),& 404 & zclm2k, zgdept(iin,ijn,:,iobs), & 405 & zmask(iin,ijn,:,iobs)) 406 ENDIF 363 407 ENDIF 364 408 … … 374 418 & zgdept(iin,ijn,:,iobs), & 375 419 & zmask(iin,ijn,:,iobs) ) 420 421 IF ( ldclim ) THEN 422 CALL obs_int_z1d(kpk, iv_indic, k1dint, inum_obs, & 423 & prodatqc%var(kvar)%vdep(ista:iend), & 424 & zclim(iin,ijn,:,iobs), & 425 & zclm2k,interp_corner_clim(iin,ijn,:), & 426 & zgdept(iin,ijn,:,iobs), & 427 & zmask(iin,ijn,:,iobs) ) 428 ENDIF 376 429 377 430 ENDDO … … 417 470 & prodatqc%var(kvar)%vmod(iend:iend) ) 418 471 419 ! Set QC flag for any observations found below the bottom 420 ! needed as the check here is more strict than that in obs_prep 472 IF ( ldclim ) THEN 473 CALL obs_int_h2d( 1, 1, zweig, interp_corner_clim(:,:,ikn), & 474 & prodatqc%var(kvar)%vadd(iend:iend,kclim) ) 475 ENDIF 476 477 ! Set QC flag for any observations found below the bottom 478 ! needed as the check here is more strict than that in obs_prep 421 479 IF (sum(zweig) == 0.0_wp) prodatqc%var(kvar)%nvqc(iend:iend)=4 422 480 … … 424 482 425 483 DEALLOCATE(interp_corner,iv_indic) 484 IF ( ldclim ) THEN 485 DEALLOCATE( interp_corner_clim ) 486 ENDIF 426 487 427 488 ENDIF … … 441 502 & ) 442 503 504 IF ( ldclim ) THEN 505 DEALLOCATE( zclim ) 506 ENDIF 507 443 508 ! At the end of the day also get interpolated means 444 509 IF ( ld_dailyav .AND. idayend == 0 ) THEN … … 453 518 454 519 SUBROUTINE obs_surf_opt( surfdataqc, kt, kpi, kpj, & 455 & kit000, kdaystp, kvar, psurf, psurfmask, & 520 & kit000, kdaystp, kvar, psurf, & 521 & ldclim, kclim, pclim, psurfmask, & 456 522 & k2dint, ldnightav, plamscl, pphiscl, & 457 523 & lindegrees, ldtime_mean, kmeanstp, & … … 503 569 INTEGER, INTENT(IN) :: kdaystp ! Number of time steps per day 504 570 INTEGER, INTENT(IN) :: kvar ! Index of variable in surfdataqc 571 INTEGER, INTENT(IN) :: kclim ! Index of climatology in surfdataqc 505 572 INTEGER, INTENT(IN) :: k2dint ! Horizontal interpolation type (see header) 573 LOGICAL, INTENT(IN) :: ldclim ! Switch to interpolate climatology 506 574 REAL(wp), INTENT(IN), DIMENSION(kpi,kpj) :: & 507 575 & psurf, & ! Model surface field 576 & pclim, & ! Climatology surface field 508 577 & psurfmask ! Land-sea mask 509 578 LOGICAL, INTENT(IN) :: ldnightav ! Logical for averaging night-time data … … 546 615 REAL(wp) :: zlam 547 616 REAL(wp) :: zphi 548 REAL(wp), DIMENSION(1) :: zext, zobsmask 617 REAL(wp), DIMENSION(1) :: zext, zobsmask, zclm 549 618 REAL(wp) :: zdaystp 550 619 REAL(wp) :: zmeanstp … … 555 624 & zsurfm, & 556 625 & zsurftmp, & 626 & zclim, & 557 627 & zglam, & 558 628 & zgphi, & … … 696 766 & igrdjp1(imaxifp+1,imaxjfp+1,isurf) & 697 767 & ) 768 769 IF ( ldclim ) THEN 770 ALLOCATE( zclim(imaxifp,imaxjfp,isurf) ) 771 ENDIF 698 772 699 773 DO jobs = surfdataqc%nsurfup + 1, surfdataqc%nsurfup + isurf … … 745 819 ENDIF 746 820 747 ! IF ( k2dint > 4 ) THEN AROUND THIS? - SEEMS TO BE IN V3.6748 821 CALL obs_int_comm_2d( imaxifp+1, imaxjfp+1, isurf, kpi, kpj, & 749 822 & igrdip1, igrdjp1, glamf, zglamf ) 750 823 CALL obs_int_comm_2d( imaxifp+1, imaxjfp+1, isurf, kpi, kpj, & 751 824 & igrdip1, igrdjp1, gphif, zgphif ) 825 826 IF ( ldclim ) THEN 827 CALL obs_int_comm_2d( imaxifp, imaxjfp, isurf, kpi, kpj, & 828 & igrdi, igrdj, pclim, zclim ) 829 ENDIF 752 830 753 831 ! At the end of the day get interpolated means … … 808 886 CALL obs_int_h2d( 1, 1, zweig, zsurftmp(:,:,iobs), zext ) 809 887 888 IF ( ldclim ) THEN 889 CALL obs_int_h2d( 1, 1, zweig, zclim(:,:,iobs), zclm ) 890 ENDIF 891 810 892 ELSE 811 893 … … 820 902 CALL obs_avg_h2d( 1, 1, imaxifp, imaxjfp, & 821 903 & zweig, zsurftmp(:,:,iobs), zext ) 904 905 IF ( ldclim ) THEN 906 CALL obs_avg_h2d( 1, 1, imaxifp, imaxjfp, & 907 & zweig, zclim(:,:,iobs), zclm ) 908 ENDIF 822 909 823 910 ENDIF … … 846 933 ENDIF 847 934 935 IF ( ldclim ) THEN 936 surfdataqc%radd(jobs,kclim,kvar) = zclm(1) 937 ENDIF 938 848 939 IF ( zext(1) == obfillflt ) THEN 849 940 ! If the observation value is a fill value, set QC flag to bad … … 870 961 & igrdjp1 & 871 962 & ) 963 964 IF ( ldclim ) THEN 965 DEALLOCATE( zclim ) 966 ENDIF 872 967 873 968 ! At the end of the day also deallocate time mean array -
NEMO/branches/UKMO/NEMO_4.0.4_generic_obs/src/OCE/TRA/tradmp.F90
r14075 r15246 50 50 ! 51 51 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: resto !: restoring coeff. on T and S (s-1) 52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tclim !: temperature climatology on each time step(Celcius) 53 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sclim !: salinity climatology on each time step (psu) 52 54 53 55 !! * Substitutions … … 64 66 !! *** FUNCTION tra_dmp_alloc *** 65 67 !!---------------------------------------------------------------------- 66 ALLOCATE( resto(jpi,jpj,jpk), STAT= tra_dmp_alloc ) 68 ALLOCATE( resto(jpi,jpj,jpk), & 69 & tclim(jpi,jpj,jpk), & 70 & sclim(jpi,jpj,jpk), STAT= tra_dmp_alloc ) 67 71 ! 68 72 CALL mpp_sum ( 'tradmp', tra_dmp_alloc ) … … 106 110 CALL dta_tsd( kt, zts_dta ) ! read and interpolates T-S data at kt 107 111 ! 112 tclim(:,:,:) = zts_dta(:,:,:,jp_tem) 113 sclim(:,:,:) = zts_dta(:,:,:,jp_sal) 114 ! 108 115 SELECT CASE ( nn_zdmp ) !== type of damping ==! 109 116 !
Note: See TracChangeset
for help on using the changeset viewer.