- Timestamp:
- 2018-10-29T15:20:26+01:00 (6 years ago)
- Location:
- branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90
r10249 r10251 50 50 USE ice 51 51 #endif 52 USE asminc, ONLY: ln_avgbkg53 52 IMPLICIT NONE 54 53 PRIVATE 55 54 56 55 PUBLIC asm_bkg_wri !: Write out the background state 57 58 !! * variables for calculating time means59 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: tn_tavg , sn_tavg60 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: un_tavg , vn_tavg61 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avt_tavg62 #if defined key_zdfgls || key_zdftke63 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: en_tavg64 #endif65 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:) :: sshn_tavg66 REAL(wp),SAVE :: numtimes_tavg ! No of times to average over67 56 68 57 !!---------------------------------------------------------------------- … … 92 81 INTEGER :: inum ! File unit number 93 82 REAL(wp) :: zdate ! Date 94 INTEGER :: ierror95 83 !!----------------------------------------------------------------------- 96 84 97 ! If creating an averaged assim bkg, initialise on first timestep 98 IF ( ln_avgbkg .AND. kt == ( nn_it000 - 1) ) THEN 99 ! Allocate memory 100 ALLOCATE( tn_tavg(jpi,jpj,jpk), STAT=ierror ) 101 IF( ierror > 0 ) THEN 102 CALL ctl_stop( 'asm_wri_bkg: unable to allocate tn_tavg' ) ; RETURN 103 ENDIF 104 tn_tavg(:,:,:)=0 105 ALLOCATE( sn_tavg(jpi,jpj,jpk), STAT=ierror ) 106 IF( ierror > 0 ) THEN 107 CALL ctl_stop( 'asm_wri_bkg: unable to allocate sn_tavg' ) ; RETURN 108 ENDIF 109 sn_tavg(:,:,:)=0 110 ALLOCATE( un_tavg(jpi,jpj,jpk), STAT=ierror ) 111 IF( ierror > 0 ) THEN 112 CALL ctl_stop( 'asm_wri_bkg: unable to allocate un_tavg' ) ; RETURN 113 ENDIF 114 un_tavg(:,:,:)=0 115 ALLOCATE( vn_tavg(jpi,jpj,jpk), STAT=ierror ) 116 IF( ierror > 0 ) THEN 117 CALL ctl_stop( 'asm_wri_bkg: unable to allocate vn_tavg' ) ; RETURN 118 ENDIF 119 vn_tavg(:,:,:)=0 120 ALLOCATE( sshn_tavg(jpi,jpj), STAT=ierror ) 121 IF( ierror > 0 ) THEN 122 CALL ctl_stop( 'asm_wri_bkg: unable to allocate sshn_tavg' ) ; RETURN 123 ENDIF 124 sshn_tavg(:,:)=0 125 #if defined key_zdftke 126 ALLOCATE( en_tavg(jpi,jpj,jpk), STAT=ierror ) 127 IF( ierror > 0 ) THEN 128 CALL ctl_stop( 'asm_wri_bkg: unable to allocate en_tavg' ) ; RETURN 129 ENDIF 130 en_tavg(:,:,:)=0 131 #endif 132 ALLOCATE( avt_tavg(jpi,jpj,jpk), STAT=ierror ) 133 IF( ierror > 0 ) THEN 134 CALL ctl_stop( 'asm_wri_bkg: unable to allocate avt_tavg' ) ; RETURN 135 ENDIF 136 avt_tavg(:,:,:)=0 137 138 numtimes_tavg = REAL ( nitavgbkg_r - nn_it000 + 1 ) 139 ENDIF 140 141 ! If creating an averaged assim bkg, sum the contribution every timestep 142 IF ( ln_avgbkg ) THEN 143 IF (lwp) THEN 144 WRITE(numout,*) 'asm_wri_bkg : Summing assim bkg fields at timestep ',kt 145 WRITE(numout,*) '~~~~~~~~~~~~ ' 146 ENDIF 147 148 tn_tavg(:,:,:) = tn_tavg(:,:,:) + tsn(:,:,:,jp_tem) / numtimes_tavg 149 sn_tavg(:,:,:) = sn_tavg(:,:,:) + tsn(:,:,:,jp_sal) / numtimes_tavg 150 sshn_tavg(:,:) = sshn_tavg(:,:) + sshn (:,:) / numtimes_tavg 151 un_tavg(:,:,:) = un_tavg(:,:,:) + un(:,:,:) / numtimes_tavg 152 vn_tavg(:,:,:) = vn_tavg(:,:,:) + vn(:,:,:) / numtimes_tavg 153 avt_tavg(:,:,:) = avt_tavg(:,:,:) + avt(:,:,:) / numtimes_tavg 154 #if defined key_zdftke 155 en_tavg(:,:,:) = en_tavg(:,:,:) + en(:,:,:) / numtimes_tavg 156 #endif 157 ENDIF 158 159 160 ! Write out background at time step nitbkg_r or nitavgbkg_r 161 IF ( ( .NOT. ln_avgbkg .AND. (kt == nitbkg_r) ) .OR. & 162 & ( ln_avgbkg .AND. (kt == nitavgbkg_r) ) ) THEN 85 ! !------------------------------------------- 86 IF( kt == nitbkg_r ) THEN ! Write out background at time step nitbkg_r 87 ! !-----------------------------------======== 163 88 ! 164 89 WRITE(cl_asmbkg, FMT='(A,".nc")' ) TRIM( c_asmbkg ) … … 172 97 CALL iom_open( c_asmbkg, inum, ldwrt = .TRUE., kiolib = jprstlib) 173 98 ! 174 ! 175 ! Write the information 176 IF ( ln_avgbkg ) THEN 177 IF( nitavgbkg_r == nit000 - 1 ) THEN ! Treat special case when nitavgbkg = 0 178 zdate = REAL( ndastp ) 99 IF( nitbkg_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 0 100 zdate = REAL( ndastp ) 179 101 #if defined key_zdftke 180 181 182 102 ! lk_zdftke=T : Read turbulent kinetic energy ( en ) 103 IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 104 CALL tke_rst( nit000, 'READ' ) ! lk_zdftke=T : Read turbulent kinetic energy ( en ) 183 105 184 106 #endif 185 ELSE 186 zdate = REAL( ndastp ) 187 ENDIF 188 CALL iom_rstput( kt, nitavgbkg_r, inum, 'rdastp' , zdate ) 189 CALL iom_rstput( kt, nitavgbkg_r, inum, 'un' , un_tavg ) 190 CALL iom_rstput( kt, nitavgbkg_r, inum, 'vn' , vn_tavg ) 191 CALL iom_rstput( kt, nitavgbkg_r, inum, 'tn' , tn_tavg ) 192 CALL iom_rstput( kt, nitavgbkg_r, inum, 'sn' , sn_tavg ) 193 CALL iom_rstput( kt, nitavgbkg_r, inum, 'sshn' , sshn_tavg) 107 ELSE 108 zdate = REAL( ndastp ) 109 ENDIF 110 ! 111 ! ! Write the information 112 CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate ) 113 CALL iom_rstput( kt, nitbkg_r, inum, 'un' , un ) 114 CALL iom_rstput( kt, nitbkg_r, inum, 'vn' , vn ) 115 CALL iom_rstput( kt, nitbkg_r, inum, 'tn' , tsn(:,:,:,jp_tem) ) 116 CALL iom_rstput( kt, nitbkg_r, inum, 'sn' , tsn(:,:,:,jp_sal) ) 117 CALL iom_rstput( kt, nitbkg_r, inum, 'sshn' , sshn ) 194 118 #if defined key_zdftke 195 CALL iom_rstput( kt, nitavgbkg_r, inum, 'en' , en_tavg)119 CALL iom_rstput( kt, nitbkg_r, inum, 'en' , en ) 196 120 #endif 197 CALL iom_rstput( kt, nitavgbkg_r, inum, 'avt' , avt_tavg) 198 ! 199 ELSE 200 IF( nitbkg_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 0 201 zdate = REAL( ndastp ) 202 #if defined key_zdftke 203 ! lk_zdftke=T : Read turbulent kinetic energy ( en ) 204 IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 205 CALL tke_rst( nit000, 'READ' ) ! lk_zdftke=T : Read turbulent kinetic energy ( en ) 206 207 #endif 208 ELSE 209 zdate = REAL( ndastp ) 210 ENDIF 211 CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate ) 212 CALL iom_rstput( kt, nitbkg_r, inum, 'un' , un ) 213 CALL iom_rstput( kt, nitbkg_r, inum, 'vn' , vn ) 214 CALL iom_rstput( kt, nitbkg_r, inum, 'tn' , tsn(:,:,:,jp_tem) ) 215 CALL iom_rstput( kt, nitbkg_r, inum, 'sn' , tsn(:,:,:,jp_sal) ) 216 CALL iom_rstput( kt, nitbkg_r, inum, 'sshn' , sshn ) 217 #if defined key_zdftke 218 CALL iom_rstput( kt, nitbkg_r, inum, 'en' , en ) 219 #endif 220 CALL iom_rstput( kt, nitbkg_r, inum, 'avt' , avt ) 221 ! 222 ENDIF 223 121 CALL iom_rstput( kt, nitbkg_r, inum, 'gcx' , gcx ) 122 ! 224 123 CALL iom_close( inum ) 225 226 124 ENDIF 227 125 ! -
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r10249 r10251 40 40 #endif 41 41 USE sbc_oce ! Surface boundary condition variables. 42 USE zdfmxl, ONLY : &43 & hmld_tref, &44 #if defined key_karaml45 & hmld_kara, &46 & ln_kara, &47 #endif48 & hmld, &49 & hmlp, &50 & hmlpt51 #if defined key_bdy52 USE bdy_oce, ONLY: bdytmask53 #endif54 42 55 43 IMPLICIT NONE … … 69 57 #endif 70 58 LOGICAL, PUBLIC :: ln_bkgwri = .FALSE. !: No output of the background state fields 71 LOGICAL, PUBLIC :: ln_avgbkg = .FALSE. !: No output of the mean background state fields72 59 LOGICAL, PUBLIC :: ln_asmiau = .FALSE. !: No applying forcing with an assimilation increment 73 60 LOGICAL, PUBLIC :: ln_asmdin = .FALSE. !: No direct initialization … … 91 78 INTEGER , PUBLIC :: nitiaustr !: Time step of the start of the IAU interval 92 79 INTEGER , PUBLIC :: nitiaufin !: Time step of the end of the IAU interval 93 INTEGER , PUBLIC :: nitavgbkg !: Number of timesteps to average assim bkg [0,nitavgbkg]94 80 ! 95 81 INTEGER , PUBLIC :: niaufn !: Type of IAU weighing function: = 0 Constant weighting … … 99 85 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment 100 86 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: seaice_bkginc ! Increment to the background sea ice conc 101 102 INTEGER :: mld_choice = 4 !: choice of mld criteria to use for physics assimilation103 !: 1) hmld - Turbocline/mixing depth [W points]104 !: 2) hmlp - Density criterion (0.01 kg/m^3 change from 10m) [W points]105 !: 3) hmld_kara - Kara MLD [Interpolated]106 !: 4) hmld_tref - Temperature criterion (0.2 K change from surface) [T points]107 108 87 109 88 !! * Substitutions … … 138 117 INTEGER :: iitiaustr_date ! Date YYYYMMDD of IAU interval start time step 139 118 INTEGER :: iitiaufin_date ! Date YYYYMMDD of IAU interval final time step 140 INTEGER :: isurfstat ! Local integer for status of reading surft variable141 INTEGER :: iitavgbkg_date ! Date YYYYMMDD of end of assim bkg averaging period142 119 ! 143 120 REAL(wp) :: znorm ! Normalization factor for IAU weights … … 148 125 REAL(wp) :: zdate_inc ! Time axis in increments file 149 126 ! 150 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: &151 & t_bkginc_2d ! file for reading in 2D152 ! ! temperature increments153 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: &154 & z_mld ! Mixed layer depth155 156 127 REAL(wp), POINTER, DIMENSION(:,:) :: hdiv ! 2D workspace 157 ! 158 LOGICAL :: lk_surft ! Logical: T => Increments file contains surft variable 159 ! so only apply surft increments. 160 !! 161 NAMELIST/nam_asminc/ ln_bkgwri, ln_avgbkg, & 128 !! 129 NAMELIST/nam_asminc/ ln_bkgwri, & 162 130 & ln_trainc, ln_dyninc, ln_sshinc, & 163 131 & ln_asmdin, ln_asmiau, & 164 132 & nitbkg, nitdin, nitiaustr, nitiaufin, niaufn, & 165 & ln_salfix, salfixmin, nn_divdmp , nitavgbkg, mld_choice133 & ln_salfix, salfixmin, nn_divdmp 166 134 !!---------------------------------------------------------------------- 167 135 … … 169 137 ! Read Namelist nam_asminc : assimilation increment interface 170 138 !----------------------------------------------------------------------- 171 172 ! Set default values173 ln_bkgwri = .FALSE.174 ln_avgbkg = .FALSE.175 ln_trainc = .FALSE.176 ln_dyninc = .FALSE.177 ln_sshinc = .FALSE.178 139 ln_seaiceinc = .FALSE. 179 ln_asmdin = .FALSE.180 ln_asmiau = .TRUE.181 ln_salfix = .FALSE.182 140 ln_temnofreeze = .FALSE. 183 salfixmin = -9999184 nitbkg = 0185 nitdin = 0186 nitiaustr = 1187 nitiaufin = 150188 niaufn = 0189 nitavgbkg = 1190 141 191 142 REWIND( numnam_ref ) ! Namelist nam_asminc in reference namelist : Assimilation increment … … 205 156 WRITE(numout,*) ' Namelist namasm : set assimilation increment parameters' 206 157 WRITE(numout,*) ' Logical switch for writing out background state ln_bkgwri = ', ln_bkgwri 207 WRITE(numout,*) ' Logical switch for writing mean background state ln_avgbkg = ', ln_avgbkg208 158 WRITE(numout,*) ' Logical switch for applying tracer increments ln_trainc = ', ln_trainc 209 159 WRITE(numout,*) ' Logical switch for applying velocity increments ln_dyninc = ', ln_dyninc … … 216 166 WRITE(numout,*) ' Timestep of start of IAU interval in [0,nitend-nit000-1] nitiaustr = ', nitiaustr 217 167 WRITE(numout,*) ' Timestep of end of IAU interval in [0,nitend-nit000-1] nitiaufin = ', nitiaufin 218 WRITE(numout,*) ' Number of timesteps to average assim bkg [0,nitavgbkg] nitavgbkg = ', nitavgbkg219 168 WRITE(numout,*) ' Type of IAU weighting function niaufn = ', niaufn 220 169 WRITE(numout,*) ' Logical switch for ensuring that the sa > salfixmin ln_salfix = ', ln_salfix 221 170 WRITE(numout,*) ' Minimum salinity after applying the increments salfixmin = ', salfixmin 222 WRITE(numout,*) ' Choice of MLD for physics assimilation mld_choice = ', mld_choice223 171 ENDIF 224 172 … … 227 175 nitiaustr_r = nitiaustr + nit000 - 1 ! Start of IAU interval referenced to nit000 228 176 nitiaufin_r = nitiaufin + nit000 - 1 ! End of IAU interval referenced to nit000 229 nitavgbkg_r = nitavgbkg + nit000 - 1 ! Averaging period referenced to nit000230 177 231 178 iiauper = nitiaufin_r - nitiaustr_r + 1 ! IAU interval length … … 237 184 CALL calc_date( nit000, nitiaustr_r, ndate0, iitiaustr_date ) ! IAU start time referenced to ndate0 238 185 CALL calc_date( nit000, nitiaufin_r, ndate0, iitiaufin_date ) ! IAU end time referenced to ndate0 239 CALL calc_date( nit000, nitavgbkg_r, ndate0, iitavgbkg_date ) ! End of assim bkg averaging period referenced to ndate0240 186 ! 241 187 IF(lwp) THEN … … 249 195 WRITE(numout,*) ' nitiaustr_r = ', nitiaustr_r 250 196 WRITE(numout,*) ' nitiaufin_r = ', nitiaufin_r 251 WRITE(numout,*) ' nitavgbkg_r = ', nitavgbkg_r252 197 WRITE(numout,*) 253 198 WRITE(numout,*) ' Dates referenced to current cycle:' … … 259 204 WRITE(numout,*) ' iitiaustr_date = ', iitiaustr_date 260 205 WRITE(numout,*) ' iitiaufin_date = ', iitiaufin_date 261 WRITE(numout,*) ' iitavgbkg_date = ', iitavgbkg_date262 206 ENDIF 263 207 … … 302 246 & CALL ctl_stop( ' nitdin :', & 303 247 & ' Background time step for Direct Initialization is outside', & 304 & ' the cycle interval')305 306 IF ( nitavgbkg_r > nitend ) &307 & CALL ctl_stop( ' nitavgbkg_r :', &308 & ' Assim bkg averaging period is outside', &309 248 & ' the cycle interval') 310 249 … … 386 325 !-------------------------------------------------------------------- 387 326 388 IF ( ln_trainc ) THEN 389 ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 390 ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 391 t_bkginc(:,:,:) = 0.0 392 s_bkginc(:,:,:) = 0.0 393 ENDIF 394 IF ( ln_dyninc ) THEN 395 ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 396 ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 397 u_bkginc(:,:,:) = 0.0 398 v_bkginc(:,:,:) = 0.0 399 ENDIF 400 IF ( ln_sshinc ) THEN 401 ALLOCATE( ssh_bkginc(jpi,jpj) ) 402 ssh_bkginc(:,:) = 0.0 403 ENDIF 404 IF ( ln_seaiceinc ) THEN 405 ALLOCATE( seaice_bkginc(jpi,jpj)) 406 seaice_bkginc(:,:) = 0.0 407 ENDIF 327 ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 328 ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 329 ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 330 ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 331 ALLOCATE( ssh_bkginc(jpi,jpj) ) 332 ALLOCATE( seaice_bkginc(jpi,jpj)) 408 333 #if defined key_asminc 409 334 ALLOCATE( ssh_iau(jpi,jpj) ) 335 #endif 336 t_bkginc(:,:,:) = 0.0 337 s_bkginc(:,:,:) = 0.0 338 u_bkginc(:,:,:) = 0.0 339 v_bkginc(:,:,:) = 0.0 340 ssh_bkginc(:,:) = 0.0 341 seaice_bkginc(:,:) = 0.0 342 #if defined key_asminc 410 343 ssh_iau(:,:) = 0.0 411 344 #endif … … 443 376 444 377 IF ( ln_trainc ) THEN 445 446 !Test if the increments file contains the surft variable. 447 isurfstat = iom_varid( inum, 'bckinsurft', ldstop = .FALSE. ) 448 IF ( isurfstat == -1 ) THEN 449 lk_surft = .FALSE. 450 ELSE 451 lk_surft = .TRUE. 452 CALL ctl_warn( ' Applying 2D temperature increment to bottom of ML: ', & 453 & ' bckinsurft found in increments file.' ) 454 ENDIF 455 456 IF (lk_surft) THEN 457 458 ALLOCATE(z_mld(jpi,jpj)) 459 SELECT CASE(mld_choice) 460 CASE(1) 461 z_mld = hmld 462 CASE(2) 463 z_mld = hmlp 464 CASE(3) 465 #if defined key_karaml 466 IF ( ln_kara ) THEN 467 z_mld = hmld_kara 468 ELSE 469 CALL ctl_stop("Kara mixed layer not calculated as ln_kara=.false.") 470 ENDIF 471 #else 472 CALL ctl_stop("Kara mixed layer not defined in current version of NEMO") ! JW: Safety feature, should be removed 473 ! once the Kara mixed layer is available 474 #endif 475 CASE(4) 476 z_mld = hmld_tref 477 END SELECT 478 479 ALLOCATE( t_bkginc_2d(jpi,jpj) ) 480 CALL iom_get( inum, jpdom_autoglo, 'bckinsurft', t_bkginc_2d, 1) 481 #if defined key_bdy 482 DO jk = 1,jpkm1 483 WHERE( z_mld(:,:) > fsdepw(:,:,jk) ) 484 t_bkginc(:,:,jk) = t_bkginc_2d(:,:) * 0.5 * & 485 & ( 1 + cos( (fsdept(:,:,jk)/z_mld(:,:) ) * rpi ) ) 486 487 t_bkginc(:,:,jk) = t_bkginc(:,:,jk) * bdytmask(:,:) 488 ELSEWHERE 489 t_bkginc(:,:,jk) = 0. 490 ENDWHERE 491 ENDDO 492 #else 493 t_bkginc(:,:,:) = 0. 494 #endif 495 s_bkginc(:,:,:) = 0. 496 497 DEALLOCATE(z_mld, t_bkginc_2d) 498 499 ELSE 500 501 CALL iom_get( inum, jpdom_autoglo, 'bckint', t_bkginc, 1 ) 502 CALL iom_get( inum, jpdom_autoglo, 'bckins', s_bkginc, 1 ) 503 ! Apply the masks 504 t_bkginc(:,:,:) = t_bkginc(:,:,:) * tmask(:,:,:) 505 s_bkginc(:,:,:) = s_bkginc(:,:,:) * tmask(:,:,:) 506 ! Set missing increments to 0.0 rather than 1e+20 507 ! to allow for differences in masks 508 WHERE( ABS( t_bkginc(:,:,:) ) > 1.0e+10 ) t_bkginc(:,:,:) = 0.0 509 WHERE( ABS( s_bkginc(:,:,:) ) > 1.0e+10 ) s_bkginc(:,:,:) = 0.0 510 511 ENDIF 512 378 CALL iom_get( inum, jpdom_autoglo, 'bckint', t_bkginc, 1 ) 379 CALL iom_get( inum, jpdom_autoglo, 'bckins', s_bkginc, 1 ) 380 ! Apply the masks 381 t_bkginc(:,:,:) = t_bkginc(:,:,:) * tmask(:,:,:) 382 s_bkginc(:,:,:) = s_bkginc(:,:,:) * tmask(:,:,:) 383 ! Set missing increments to 0.0 rather than 1e+20 384 ! to allow for differences in masks 385 WHERE( ABS( t_bkginc(:,:,:) ) > 1.0e+10 ) t_bkginc(:,:,:) = 0.0 386 WHERE( ABS( s_bkginc(:,:,:) ) > 1.0e+10 ) s_bkginc(:,:,:) = 0.0 513 387 ENDIF 514 388 … … 782 656 783 657 DO jk = 1, jpkm1 784 CALL eos_fzp( tsn(:,:,jk,jp_sal), fzptnz(:,:,jk), fsdept(:,:,jk) )658 fzptnz(:,:,jk) = eos_fzp( tsn(:,:,jk,jp_sal), fsdept(:,:,jk) ) 785 659 END DO 786 660 … … 1016 890 ENDIF 1017 891 1018 #if defined key_asminc1019 ELSE1020 ssh_iau(:,:) = 0._wp1021 #endif1022 892 ENDIF 1023 893 -
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/ASM/asmpar.F90
r10249 r10251 29 29 INTEGER, PUBLIC :: nitiaufin_r !: IAU final time step referenced to nit000 30 30 INTEGER, PUBLIC :: nittrjfrq !: Frequency of trajectory output for 4D-VAR 31 INTEGER, PUBLIC :: nitavgbkg_r !: Averaging period for assim bkg referenced to nit00032 31 33 32 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.