Changeset 15423
- Timestamp:
- 2021-10-21T11:54:46+02:00 (3 years ago)
- Location:
- NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE/SBC/sbcapr.F90
r14075 r15423 16 16 USE fldread ! read input fields 17 17 USE in_out_manager ! I/O manager 18 USE lib_fortran ! distribu ed memory computing library18 USE lib_fortran ! distributed memory computing library 19 19 USE iom ! IOM library 20 20 USE lib_mpp ! MPP library … … 29 29 LOGICAL, PUBLIC :: ln_apr_obc = .false. !: inverse barometer added to OBC ssh data 30 30 LOGICAL, PUBLIC :: ln_ref_apr !: ref. pressure: global mean Patm (F) or a constant (F) 31 REAL(wp) 31 REAL(wp),PUBLIC :: rn_pref ! reference atmospheric pressure [N/m2] 32 32 33 33 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: ssh_ib ! Inverse barometer now sea surface height [m] … … 35 35 REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) :: apr ! atmospheric pressure at kt [N/m2] 36 36 37 REAL(wp) :: tarea ! whole domain mean masked ocean surface 38 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rau0) 37 REAL(wp), PUBLIC :: tarea ! whole domain mean masked ocean surface 38 REAL(wp), PUBLIC :: r1_grau ! = 1.e0 / (grav * rau0) 39 40 LOGICAL, PUBLIC :: cpl_mslp = .FALSE. ! Presure is passed via coupling 39 41 40 42 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_apr ! structure of input fields (file informations, fields read) … … 78 80 IF(lwm) WRITE ( numond, namsbc_apr ) 79 81 ! 80 ALLOCATE( sf_apr(1), STAT=ierror ) !* allocate and fill sf_sst (forcing structure) with sn_sst 81 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_apr: unable to allocate sf_apr structure' ) 82 ! 83 CALL fld_fill( sf_apr, (/ sn_apr /), cn_dir, 'sbc_apr', 'Atmospheric pressure ', 'namsbc_apr' ) 82 IF( .NOT. cpl_mslp ) THEN 83 ALLOCATE( sf_apr(1), STAT=ierror ) !* allocate and fill sf_sst (forcing structure) with sn_sst 84 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_apr: unable to allocate sf_apr structure' ) 85 ! 86 CALL fld_fill( sf_apr, (/ sn_apr /), cn_dir, 'sbc_apr', 'Atmospheric pressure ', 'namsbc_apr' ) 84 87 ALLOCATE( sf_apr(1)%fnow(jpi,jpj,1) ) 85 IF( sn_apr%ln_tint ) ALLOCATE( sf_apr(1)%fdta(jpi,jpj,1,2) ) 86 ALLOCATE( ssh_ib(jpi,jpj) , ssh_ibb(jpi,jpj) ) 87 ALLOCATE( apr (jpi,jpj) ) 88 IF( sn_apr%ln_tint ) ALLOCATE( sf_apr(1)%fdta(jpi,jpj,1,2) ) 89 ENDIF 90 ALLOCATE( ssh_ib(jpi,jpj) , ssh_ibb(jpi,jpj) ) 91 ALLOCATE( apr (jpi,jpj) ) 88 92 ! 89 93 IF( lwp )THEN !* control print 90 94 WRITE(numout,*) 91 WRITE(numout,*) ' Namelist namsbc_apr : Atmospheric PRessure as extrenal forcing' 95 IF( cpl_mslp ) THEN 96 WRITE(numout,*) ' Namelist namsbc_apr : Atmospheric PRessure as extrenal forcing' 97 ELSE 98 WRITE(numout,*) ' Namelist namsbc_apr : Atmospheric Pressure as extrenal forcing' 99 ENDIF 92 100 WRITE(numout,*) ' ref. pressure: global mean Patm (T) or a constant (F) ln_ref_apr = ', ln_ref_apr 93 101 ENDIF … … 132 140 !!---------------------------------------------------------------------- 133 141 134 ! ! ========================== !135 IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN ! At each sbc time-step !136 ! ! ===========+++============ !137 !138 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields139 !140 CALL fld_read( kt, nn_fsbc, sf_apr ) !* input Patm provided at kt + nn_fsbc/2141 !142 ! !* update the reference atmospheric pressure (if necessary)143 IF( ln_ref_apr ) rn_pref = glob_sum( 'sbcapr', sf_apr(1)%fnow(:,:,1) * e1e2t(:,:) ) / tarea144 !145 ! !* Patm related forcing at kt146 ssh_ib(:,:) = - ( sf_apr(1)%fnow(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer)147 apr (:,:) = sf_apr(1)%fnow(:,:,1) ! atmospheric pressure148 !149 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh150 ENDIF142 IF( .NOT. cpl_mslp ) THEN 143 ! ========================== ! 144 IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN ! At each sbc time-step ! 145 ! ! ===========+++============ ! 146 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 147 ! 148 CALL fld_read( kt, nn_fsbc, sf_apr ) !* input Patm provided at kt + nn_fsbc/2 149 ! 150 ! !* update the reference atmospheric pressure (if necessary) 151 IF( ln_ref_apr ) rn_pref = glob_sum( 'sbcapr', sf_apr(1)%fnow(:,:,1) * e1e2t(:,:) ) / tarea 152 ! 153 ! !* Patm related forcing at kt 154 ssh_ib(:,:) = - ( sf_apr(1)%fnow(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 155 apr (:,:) = sf_apr(1)%fnow(:,:,1) ! atmospheric pressure 156 ! 157 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 158 ENDIF 151 159 152 ! ! ---------------------------------------- ! 153 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 154 ! ! ---------------------------------------- ! 155 ! !* Restart: read in restart file 156 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 157 IF(lwp) WRITE(numout,*) 'sbc_apr: ssh_ibb read in the restart file' 158 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb, ldxios = lrxios ) ! before inv. barometer ssh 159 ! 160 ELSE !* no restart: set from nit000 values 161 IF(lwp) WRITE(numout,*) 'sbc_apr: ssh_ibb set to nit000 values' 162 ssh_ibb(:,:) = ssh_ib(:,:) 160 ! ! ---------------------------------------- ! 161 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 162 ! ! ---------------------------------------- ! 163 ! !* Restart: read in restart file 164 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 165 IF(lwp) WRITE(numout,*) 'sbc_apr: ssh_ibb read in the restart file' 166 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 167 ! 168 ELSE !* no restart: set from nit000 values 169 IF(lwp) WRITE(numout,*) 'sbc_apr: ssh_ibb set to nit000 values' 170 ssh_ibb(:,:) = ssh_ib(:,:) 171 ENDIF 172 ENDIF 173 ! ! ---------------------------------------- ! 174 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 175 ! ! ---------------------------------------- ! 176 IF(lwp) WRITE(numout,*) 177 IF(lwp) WRITE(numout,*) 'sbc_apr : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 178 IF(lwp) WRITE(numout,*) '~~~~' 179 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 163 180 ENDIF 164 ENDIF165 ! ! ---------------------------------------- !166 IF( lrst_oce ) THEN ! Write in the ocean restart file !167 ! ! ---------------------------------------- !168 IF(lwp) WRITE(numout,*)169 IF(lwp) WRITE(numout,*) 'sbc_apr : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp170 IF(lwp) WRITE(numout,*) '~~~~'171 IF( lwxios ) CALL iom_swap( cwxios_context )172 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib, ldxios = lwxios )173 181 IF( lwxios ) CALL iom_swap( cxios_context ) 174 182 ENDIF -
NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE/SBC/sbccpl.F90
r14075 r15423 209 209 #endif 210 210 211 REAL(wp) :: rpref = 101000._wp ! reference atmospheric pressure[N/m2]212 REAL(wp) :: r1_grau ! = 1.e0 / (grav * rau0)213 214 211 INTEGER , ALLOCATABLE, SAVE, DIMENSION(:) :: nrcvinfo ! OASIS info argument 215 212 … … 573 570 ! ! Mean Sea Level Pressure ! 574 571 ! ! ------------------------- ! 575 srcv(jpr_mslp)%clname = 'O_MSLP' ; IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) srcv(jpr_mslp)%laction = .TRUE. 572 srcv(jpr_mslp)%clname = 'O_MSLP' 573 IF( TRIM(sn_rcv_mslp%cldes ) == 'coupled' ) THEN 574 srcv(jpr_mslp)%laction = .TRUE. 575 cpl_mslp = .TRUE. 576 ENDIF 576 577 ! 577 578 ! ! ------------------------- ! … … 1122 1123 !!---------------------------------------------------------------------- 1123 1124 USE zdf_oce, ONLY : ln_zdfswm 1125 USE sbcssm , ONLY : sbc_ssm_cpl 1126 USE lib_fortran ! distributed memory computing library 1124 1127 ! 1125 1128 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 1294 1297 ! ! ========================= ! 1295 1298 IF( srcv(jpr_mslp)%laction ) THEN ! UKMO SHELF effect of atmospheric pressure on SSH 1296 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1297 1298 r1_grau = 1.e0 / (grav * rau0) !* constant for optimization 1299 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rpref ) * r1_grau ! equivalent ssh (inverse barometer) 1300 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1299 IF( ln_apr_dyn ) THEN 1300 IF( kt /= nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) !* Swap of ssh_ib fields 1301 1301 1302 IF( kt == nit000 ) ssh_ibb(:,:) = ssh_ib(:,:) ! correct this later (read from restart if possible) 1302 ! !* update the reference atmospheric pressure (if necessary) 1303 IF( ln_ref_apr ) rn_pref = glob_sum( 'sbccpl', frcv(jpr_mslp)%z3(:,:,1) * e1e2t(:,:) ) / tarea 1304 1305 ssh_ib(:,:) = - ( frcv(jpr_mslp)%z3(:,:,1) - rn_pref ) * r1_grau ! equivalent ssh (inverse barometer) 1306 apr (:,:) = frcv(jpr_mslp)%z3(:,:,1) !atmospheric pressure 1307 ! 1308 CALL iom_put( "ssh_ib", ssh_ib ) !* output the inverse barometer ssh 1309 ! ! ---------------------------------------- ! 1310 IF( kt == nit000 ) THEN ! set the forcing field at nit000 - 1 ! 1311 ! ! ---------------------------------------- ! 1312 !* Restart: read in restart file 1313 IF( ln_rstart .AND. iom_varid( numror, 'ssh_ibb', ldstop = .FALSE. ) > 0 ) THEN 1314 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb read in the restart file' 1315 CALL iom_get( numror, jpdom_autoglo, 'ssh_ibb', ssh_ibb ) ! before inv. barometer ssh 1316 ELSE !* no restart: set from nit000 values 1317 IF(lwp) WRITE(numout,*) 'sbc_cpl: ssh_ibb set to nit000 values' 1318 ssh_ibb(:,:) = ssh_ib(:,:) 1319 ENDIF 1320 ENDIF 1321 ! ! ---------------------------------------- ! 1322 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 1323 ! ! ---------------------------------------- ! 1324 IF(lwp) WRITE(numout,*) 1325 IF(lwp) WRITE(numout,*) 'sbc_cpl : ssh_ib written in ocean restart file at it= ', kt,' date= ', ndastp 1326 IF(lwp) WRITE(numout,*) '~~~~' 1327 CALL iom_rstput( kt, nitrst, numrow, 'ssh_ibb' , ssh_ib ) 1328 ENDIF 1329 ENDIF 1330 1331 ! Update mean ssh 1332 IF( nn_components /= jp_iam_sas ) CALL sbc_ssm_cpl( kt ) 1303 1333 END IF 1304 1334 ! -
NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE/SBC/sbcmod.F90
r14075 r15423 391 391 !! - updte the ice fraction : fr_i 392 392 !!---------------------------------------------------------------------- 393 USE sbcapr, ONLY: sbc_apr 394 USE bdydta, ONLY: bdy_dta 395 ! 393 396 INTEGER, INTENT(in) :: kt ! ocean time step 394 397 ! … … 423 426 ! ! forcing field computation ! 424 427 ! ! ---------------------------------------- ! 428 IF( ln_apr_dyn ) CALL sbc_apr( kt ) ! atmospheric pressure provided at kt+0.5*nn_fsbc 429 ! (caution called before sbc_ssm) 425 430 ! 426 431 ll_sas = nn_components == jp_iam_sas ! component flags … … 443 448 CASE( jp_purecpl ) ; CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! pure coupled formulation 444 449 CASE( jp_none ) 445 IF( ll_opa )CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! OPA-SAS coupling: OPA receiving fields from SAS450 IF( .NOT. ln_mixcpl ) CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! OPA-SAS coupling: OPA receiving fields from SAS 446 451 END SELECT 447 452 ! 448 IF( ln_mixcpl ) CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! forced-coupled mixed formulation after forcing 453 IF( ln_mixcpl .OR. ( ln_wave .AND. nsbc .NE. jp_purecpl .AND. nsbc .NE. jp_none ) ) & 454 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! forced-coupled mixed formulation after forcing 455 IF( ln_bdy ) CALL bdy_dta ( kt, kt_offset=+1 ) ! update dynamic & tracer data at open boundaries 456 457 ! (caution called after sbc_ssm[_cpl] and before ice) 449 458 ! 450 459 IF ( ln_wave .AND. (ln_tauwoc .OR. ln_tauw) ) CALL sbc_wstress( ) ! Wind stress provided by waves -
NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE/SBC/sbcssm.F90
r14075 r15423 28 28 29 29 PUBLIC sbc_ssm ! routine called by step.F90 30 PUBLIC sbc_ssm_cpl ! routine called by sbccpl.F90 30 31 PUBLIC sbc_ssm_init ! routine called by sbcmod.F90 31 32 … … 76 77 sss_m(:,:) = zts(:,:,jp_sal) 77 78 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 78 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 79 ELSE ; ssh_m(:,:) = sshn(:,:) 79 IF( .NOT. cpl_mslp ) THEN 80 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 81 ELSE ; ssh_m(:,:) = sshn(:,:) 82 ENDIF 80 83 ENDIF 81 84 ! … … 99 102 sss_m(:,:) = zcoef * zts(:,:,jp_sal) 100 103 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 101 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 102 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:) 104 IF( .NOT. cpl_mslp ) THEN 105 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 106 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:) 107 ENDIF 103 108 ENDIF 104 109 ! … … 113 118 sst_m(:,:) = 0._wp 114 119 sss_m(:,:) = 0._wp 115 ssh_m(:,:) = 0._wp120 IF( .NOT. cpl_mslp ) ssh_m(:,:) = 0._wp 116 121 e3t_m(:,:) = 0._wp 117 122 frq_m(:,:) = 0._wp … … 127 132 sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 128 133 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 129 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 130 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 134 IF( .NOT. cpl_mslp ) THEN 135 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 136 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 137 ENDIF 131 138 ENDIF 132 139 ! … … 143 150 ssu_m(:,:) = ssu_m(:,:) * zcoef ! mean suface current [m/s] 144 151 ssv_m(:,:) = ssv_m(:,:) * zcoef ! 145 ssh_m(:,:) = ssh_m(:,:) * zcoef ! mean SSH [m]152 IF( .NOT. cpl_mslp ) ssh_m(:,:) = ssh_m(:,:) * zcoef ! mean SSH [m] 146 153 e3t_m(:,:) = e3t_m(:,:) * zcoef ! mean vertical scale factor [m] 147 154 frq_m(:,:) = frq_m(:,:) * zcoef ! mean fraction of solar net radiation absorbed in the 1st T level [-] … … 162 169 CALL iom_rstput( kt, nitrst, numrow, 'sst_m' , sst_m, ldxios = lwxios ) 163 170 CALL iom_rstput( kt, nitrst, numrow, 'sss_m' , sss_m, ldxios = lwxios ) 164 CALL iom_rstput( kt, nitrst, numrow, 'ssh_m' , ssh_m, ldxios = lwxios )171 IF( .NOT. cpl_mslp ) CALL iom_rstput( kt, nitrst, numrow, 'ssh_m' , ssh_m, ldxios = lwxios ) 165 172 CALL iom_rstput( kt, nitrst, numrow, 'e3t_m' , e3t_m, ldxios = lwxios ) 166 173 CALL iom_rstput( kt, nitrst, numrow, 'frq_m' , frq_m, ldxios = lwxios ) … … 183 190 END SUBROUTINE sbc_ssm 184 191 192 SUBROUTINE sbc_ssm_cpl( kt ) 193 !!--------------------------------------------------------------------- 194 !! *** ROUTINE sbc_ssm_cpl *** 195 !! 196 !! ** Purpose : provide ocean surface variable to sea-surface boundary 197 !! condition computation when pressure is read from coupling 198 !! 199 !! ** Method : The inverse barometer ssh (i.e. ssh associated with Patm) 200 !! is added to ssh_m when ln_apr_dyn = T. Required for sea-ice dynamics. 201 !!--------------------------------------------------------------------- 202 INTEGER, INTENT(in) :: kt ! ocean time step 203 ! 204 REAL(wp) :: zcoef ! local scalar 205 !!--------------------------------------------------------------------- 206 ! 207 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! 208 ! ! ---------------------------------------- ! 209 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 210 ELSE ; ssh_m(:,:) = sshn(:,:) 211 ENDIF 212 ELSE 213 ! ! ----------------------------------------------- ! 214 IF( kt == nit000 .AND. .NOT. l_ssm_mean ) THEN ! Initialisation: 1st time-step, no input means ! 215 ! ! ----------------------------------------------- ! 216 IF(lwp) WRITE(numout,*) 217 IF(lwp) WRITE(numout,*) '~~~~~~~ mean ssh field initialised to instantaneous values' 218 zcoef = REAL( nn_fsbc - 1, wp ) 219 zcoef = REAL( nn_fsbc - 1, wp ) 220 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 221 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:) 222 ENDIF 223 ! ! ---------------------------------------- ! 224 ELSEIF( MOD( kt - 2 , nn_fsbc ) == 0 ) THEN ! Initialisation: New mean computation ! 225 ! ! ---------------------------------------- ! 226 ssh_m(:,:) = 0.e0 227 ENDIF 228 229 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 230 ELSE ; ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 231 ENDIF 232 ! ! ---------------------------------------- ! 233 IF( MOD( kt - 1 , nn_fsbc ) == 0 ) THEN ! Mean value at each nn_fsbc time-step ! 234 ! ! ---------------------------------------- ! 235 zcoef = 1. / REAL( nn_fsbc, wp ) 236 ssh_m(:,:) = ssh_m(:,:) * zcoef ! mean SSH [m] 237 ENDIF 238 ! ! ---------------------------------------- ! 239 IF( lrst_oce ) THEN ! Write in the ocean restart file ! 240 ! ! ---------------------------------------- ! 241 IF(lwp) WRITE(numout,*) 242 IF(lwp) WRITE(numout,*) 'sbc_ssm_cpl : ssh mean field written in ocean restart file ', & 243 & 'at it= ', kt,' date= ', ndastp 244 IF(lwp) WRITE(numout,*) '~~~~~~~' 245 CALL iom_rstput( kt, nitrst, numrow, 'ssh_m' , ssh_m ) 246 ENDIF 247 ENDIF 248 ! 249 IF( MOD( kt - 1 , nn_fsbc ) == 0 ) THEN ! Mean value at each nn_fsbc time-step ! 250 CALL iom_put( 'ssh_m', ssh_m ) 251 ENDIF 252 ! 253 END SUBROUTINE sbc_ssm_cpl 185 254 186 255 SUBROUTINE sbc_ssm_init -
NEMO/branches/UKMO/r14075_cpl-pressure/src/OCE/step.F90
r14075 r15423 109 109 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 110 110 IF( ln_tide ) CALL sbc_tide( kstp ) ! update tide potential 111 IF( ln_apr_dyn ) CALL sbc_apr ( kstp ) ! atmospheric pressure (NB: call before bdy_dta which needs ssh_ib)112 IF( ln_bdy ) CALL bdy_dta ( kstp, kt_offset = +1 ) ! update dynamic & tracer data at open boundaries113 111 CALL sbc ( kstp ) ! Sea Boundary Condition (including sea-ice) 114 112
Note: See TracChangeset
for help on using the changeset viewer.