Changeset 2452 for branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/IOM
- Timestamp:
- 2010-12-05T12:53:44+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
r2364 r2452 16 16 !! rst_read : read the ocean restart file 17 17 !!---------------------------------------------------------------------- 18 USE oce ! ocean dynamics and tracers 18 19 USE dom_oce ! ocean space and time domain 19 USE oce ! ocean dynamics and tracers20 20 USE phycst ! physical constants 21 21 USE in_out_manager ! I/O manager 22 22 USE iom ! I/O module 23 USE zpshde ! partial step: hor. derivative (zps_hde routine)24 23 USE eosbn2 ! equation of state (eos bn2 routine) 25 USE zdfddm ! double diffusion mixing26 USE zdfmxl ! mixed layer depth27 24 USE trdmld_oce ! ocean active mixed layer tracers trends variables 28 25 USE domvvl ! variable volume 29 26 USE traswp ! swap from 4D T-S to 3D T & S and vice versa 30 #if defined key_zdfgls31 USE zdfbfr, ONLY : wbotu, wbotv ! bottom stresses32 USE zdf_oce33 #endif34 27 35 28 IMPLICIT NONE … … 49 42 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 50 43 !! $Id$ 51 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 52 !!---------------------------------------------------------------------- 53 44 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 45 !!---------------------------------------------------------------------- 54 46 CONTAINS 55 47 … … 100 92 ENDIF 101 93 ENDIF 102 94 ! 103 95 CALL iom_open( clname, numrow, ldwrt = .TRUE., kiolib = jprstlib ) 104 96 lrst_oce = .TRUE. … … 120 112 !!---------------------------------------------------------------------- 121 113 122 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rdt ) ! dynamics time step 123 CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) ) ! surface tracer time step 124 125 CALL iom_rstput( kt, nitrst, numrow, 'ub' , ub ) ! before fields 126 CALL iom_rstput( kt, nitrst, numrow, 'vb' , vb ) 127 CALL iom_rstput( kt, nitrst, numrow, 'tb' , tb ) 128 CALL iom_rstput( kt, nitrst, numrow, 'sb' , sb ) 129 CALL iom_rstput( kt, nitrst, numrow, 'rotb' , rotb ) 130 CALL iom_rstput( kt, nitrst, numrow, 'hdivb' , hdivb ) 131 CALL iom_rstput( kt, nitrst, numrow, 'sshb' , sshb ) 132 IF( lk_vvl ) & 133 CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 134 ! 135 CALL iom_rstput( kt, nitrst, numrow, 'un' , un ) ! now fields 136 CALL iom_rstput( kt, nitrst, numrow, 'vn' , vn ) 137 CALL iom_rstput( kt, nitrst, numrow, 'tn' , tn ) 138 CALL iom_rstput( kt, nitrst, numrow, 'sn' , sn ) 139 CALL iom_rstput( kt, nitrst, numrow, 'rotn' , rotn ) 140 CALL iom_rstput( kt, nitrst, numrow, 'hdivn' , hdivn ) 141 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , sshn ) 142 143 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop ) 114 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rdt ) ! dynamics time step 115 CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) ) ! surface tracer time step 116 117 CALL iom_rstput( kt, nitrst, numrow, 'ub' , ub ) ! before fields 118 CALL iom_rstput( kt, nitrst, numrow, 'vb' , vb ) 119 CALL iom_rstput( kt, nitrst, numrow, 'tb' , tb ) 120 CALL iom_rstput( kt, nitrst, numrow, 'sb' , sb ) 121 CALL iom_rstput( kt, nitrst, numrow, 'rotb' , rotb ) 122 CALL iom_rstput( kt, nitrst, numrow, 'hdivb' , hdivb ) 123 CALL iom_rstput( kt, nitrst, numrow, 'sshb' , sshb ) 124 IF( lk_vvl ) CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 125 ! 126 CALL iom_rstput( kt, nitrst, numrow, 'un' , un ) ! now fields 127 CALL iom_rstput( kt, nitrst, numrow, 'vn' , vn ) 128 CALL iom_rstput( kt, nitrst, numrow, 'tn' , tn ) 129 CALL iom_rstput( kt, nitrst, numrow, 'sn' , sn ) 130 CALL iom_rstput( kt, nitrst, numrow, 'rotn' , rotn ) 131 CALL iom_rstput( kt, nitrst, numrow, 'hdivn' , hdivn ) 132 CALL iom_rstput( kt, nitrst, numrow, 'sshn' , sshn ) 133 CALL iom_rstput( kt, nitrst, numrow, 'rhop' , rhop ) 144 134 #if defined key_zdfkpp 145 CALL iom_rstput( kt, nitrst, numrow, 'rhd' , rhd)135 CALL iom_rstput( kt, nitrst, numrow, 'rhd' , rhd ) 146 136 #endif 147 148 #if defined key_zdfgls149 ! Save bottom stresses150 CALL iom_rstput( kt, nitrst, numrow, 'wbotu' , wbotu )151 CALL iom_rstput( kt, nitrst, numrow, 'wbotv' , wbotv )152 #endif153 154 137 IF( kt == nitrst ) THEN 155 138 CALL iom_close( numrow ) ! close the restart file (only at last time step) … … 201 184 ENDIF 202 185 ! 203 CALL iom_get( numror, jpdom_autoglo, 'ub' , ub ) ! before fields 204 CALL iom_get( numror, jpdom_autoglo, 'vb' , vb ) 205 CALL iom_get( numror, jpdom_autoglo, 'tb' , tb ) 206 CALL iom_get( numror, jpdom_autoglo, 'sb' , sb ) 207 CALL iom_get( numror, jpdom_autoglo, 'rotb' , rotb ) 208 CALL iom_get( numror, jpdom_autoglo, 'hdivb', hdivb ) 209 CALL iom_get( numror, jpdom_autoglo, 'sshb' , sshb ) 210 IF( lk_vvl ) & 211 CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) ) 212 ! 213 CALL iom_get( numror, jpdom_autoglo, 'un' , un ) ! now fields 214 CALL iom_get( numror, jpdom_autoglo, 'vn' , vn ) 215 CALL iom_get( numror, jpdom_autoglo, 'tn' , tn ) 216 CALL iom_get( numror, jpdom_autoglo, 'sn' , sn ) 217 CALL iom_get( numror, jpdom_autoglo, 'rotn' , rotn ) 218 CALL iom_get( numror, jpdom_autoglo, 'hdivn', hdivn ) 219 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn ) 220 221 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop ) ! now potential density 186 CALL iom_get( numror, jpdom_autoglo, 'ub' , ub ) ! before fields 187 CALL iom_get( numror, jpdom_autoglo, 'vb' , vb ) 188 CALL iom_get( numror, jpdom_autoglo, 'tb' , tb ) 189 CALL iom_get( numror, jpdom_autoglo, 'sb' , sb ) 190 CALL iom_get( numror, jpdom_autoglo, 'rotb' , rotb ) 191 CALL iom_get( numror, jpdom_autoglo, 'hdivb' , hdivb ) 192 CALL iom_get( numror, jpdom_autoglo, 'sshb' , sshb ) 193 IF( lk_vvl ) CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) ) 194 ! 195 CALL iom_get( numror, jpdom_autoglo, 'un' , un ) ! now fields 196 CALL iom_get( numror, jpdom_autoglo, 'vn' , vn ) 197 CALL iom_get( numror, jpdom_autoglo, 'tn' , tn ) 198 CALL iom_get( numror, jpdom_autoglo, 'sn' , sn ) 199 CALL iom_get( numror, jpdom_autoglo, 'rotn' , rotn ) 200 CALL iom_get( numror, jpdom_autoglo, 'hdivn' , hdivn ) 201 CALL iom_get( numror, jpdom_autoglo, 'sshn' , sshn ) 202 CALL iom_get( numror, jpdom_autoglo, 'rhop' , rhop ) ! now potential density 222 203 #if defined key_zdfkpp 223 204 IF( iom_varid( numror, 'rhd', ldstop = .FALSE. ) > 0 ) THEN 224 CALL iom_get( numror, jpdom_autoglo, 'rhd' , rhd )! now in situ density anomaly205 CALL iom_get( numror, jpdom_autoglo, 'rhd' , rhd ) ! now in situ density anomaly 225 206 ELSE 226 CALL tra_swap227 CALL eos( tsn, rhd ) ! compute rhd207 CALL tra_swap 208 CALL eos( tsn, rhd ) ! compute rhd 228 209 ENDIF 229 210 #endif 230 211 ! 231 212 IF( neuler == 0 ) THEN ! Euler restart (neuler=0) 232 213 tb (:,:,:) = tn (:,:,:) ! all before fields set to now values … … 240 221 DO jk = 1, jpk 241 222 fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 242 END DO223 END DO 243 224 ENDIF 244 225 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.