- Timestamp:
- 2010-05-03T13:59:46+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1837_mass_heat_salt_fluxes/NEMO/LIM_SRC_2/limwri_2.F90
r1855 r1857 12 12 !! 'key_lim2' LIM 2.0 sea-ice model 13 13 !!---------------------------------------------------------------------- 14 !! lim_wri_2 : write of the diagnostics variables in ouput file 15 !! lim_wri_init_2 : initialization and namelist read 16 !! lim_wri_state_2 : write for initial state (output.init.nc if ninist=1) or/and in the abort file 14 !!---------------------------------------------------------------------- 15 !! lim_wri_2 : write of the diagnostics variables in ouput file 16 !! lim_wri_init_2 : initialization and namelist read 17 !! lim_wri_state_2 : write for initial state or/and abandon: 18 !! > output.init.nc (if ninist = 1 in namelist) 19 !! > output.abort.nc 17 20 !!---------------------------------------------------------------------- 18 21 USE phycst … … 39 42 INTEGER, PARAMETER :: jpnoumax = 40 ! maximum number of variable for ice output 40 43 INTEGER :: noumef ! number of fields 41 REAL(wp) , DIMENSION(jpnoumax) :: cmulti 42 REAL(wp) , DIMENSION(jpnoumax) ::cadd ! additive constant44 REAL(wp) , DIMENSION(jpnoumax) :: cmulti , & ! multiplicative constant 45 & cadd ! additive constant 43 46 CHARACTER(len = 35), DIMENSION(jpnoumax) :: titn ! title of the field 44 47 CHARACTER(len = 8 ), DIMENSION(jpnoumax) :: nam ! name of the field … … 49 52 INTEGER , DIMENSION( jpij ) :: ndex51 ! ???? 50 53 51 REAL(wp) :: epsi16 = 1.e-16 ! constant values 52 REAL(wp) :: rzero = 0.e0 ! 53 REAL(wp) :: rone = 1.e0 ! 54 REAL(wp) :: & ! constant values 55 epsi16 = 1.e-16 , & 56 zzero = 0.e0 , & 57 zone = 1.e0 54 58 55 59 !! * Substitutions 56 60 # include "vectopt_loop_substitute.h90" 57 61 !!---------------------------------------------------------------------- 58 !! NEMO/LIM 3.3, UCL-LOCEAN-IPSL (2010)62 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 59 63 !! $Id$ 60 64 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) … … 77 81 !! 78 82 !! ** Method : computes the average of some variables and write 79 !! it in the NetCDF ouput files 80 !! CAUTION: the sea-ice time-step must be an integer fraction of a day 83 !! it in the NetCDF ouput files 84 !! CAUTION: the sea-ice time-step must be an integer fraction 85 !! of a day 81 86 !!------------------------------------------------------------------- 82 87 INTEGER, INTENT(in) :: kt ! number of iteration 83 88 !! 84 INTEGER :: ji, jj, jf ! dummy loop indices89 INTEGER :: ji, jj, jf ! dummy loop indices 85 90 CHARACTER(len = 40) :: clhstnam, clop 86 REAL(wp) :: zsto, zjulian, zout 87 REAL(wp) ::zindh, zinda, zindb, ztmu91 REAL(wp) :: zsto, zjulian, zout, & ! temporary scalars 92 & zindh, zinda, zindb, ztmu 88 93 REAL(wp), DIMENSION(1) :: zdept 89 94 REAL(wp), DIMENSION(jpi,jpj) :: zfield … … 127 132 DO jj = 2 , jpjm1 128 133 DO ji = 1 , jpim1 ! NO vector opt. 129 zindh = MAX( rzero , SIGN( rone , hicif(ji,jj) * (1.0 - frld(ji,jj) ) - 0.10 ) )130 zinda = MAX( rzero , SIGN( rone , ( 1.0 - frld(ji,jj) ) - 0.10 ) )134 zindh = MAX( zzero , SIGN( zone , hicif(ji,jj) * (1.0 - frld(ji,jj) ) - 0.10 ) ) 135 zinda = MAX( zzero , SIGN( zone , ( 1.0 - frld(ji,jj) ) - 0.10 ) ) 131 136 zindb = zindh * zinda 132 ztmu = MAX( 0.5 * rone , ( tmu(ji,jj) + tmu(ji+1,jj) + tmu(ji,jj+1) + tmu(ji+1,jj+1) ) )137 ztmu = MAX( 0.5 * zone , ( tmu(ji,jj) + tmu(ji+1,jj) + tmu(ji,jj+1) + tmu(ji+1,jj+1) ) ) 133 138 zcmo(ji,jj,1) = hsnif (ji,jj) 134 139 zcmo(ji,jj,2) = hicif (ji,jj) … … 138 143 zcmo(ji,jj,6) = fbif (ji,jj) 139 144 zcmo(ji,jj,7) = zindb * ( u_ice(ji,jj ) * tmu(ji,jj ) + u_ice(ji+1,jj ) * tmu(ji+1,jj ) & 140 &+ u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &141 &/ ztmu145 + u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 146 / ztmu 142 147 143 148 zcmo(ji,jj,8) = zindb * ( v_ice(ji,jj ) * tmu(ji,jj ) + v_ice(ji+1,jj ) * tmu(ji+1,jj ) & 144 &+ v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &145 &/ ztmu149 + v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 150 / ztmu 146 151 zcmo(ji,jj,9) = sst_m(ji,jj) 147 152 zcmo(ji,jj,10) = sss_m(ji,jj) … … 195 200 !! ** input : Namelist namicewri 196 201 !!------------------------------------------------------------------- 197 INTEGER :: jf ! dummy loop indices202 INTEGER :: nf ! ??? 198 203 TYPE FIELD 199 204 CHARACTER(len = 35) :: ztitle … … 204 209 REAL :: zcadd 205 210 END TYPE FIELD 206 TYPE(FIELD) :: field_1 , field_2 , field_3 , field_4 , field_5 , field_6 207 TYPE(FIELD) :: field_7 , field_8 , field_9 , field_10, field_11, field_12 208 TYPE(FIELD) :: field_13, field_14, field_15, field_16, field_17, field_18, field_19 211 TYPE(FIELD) :: & 212 field_1 , field_2 , field_3 , field_4 , field_5 , field_6 , & 213 field_7 , field_8 , field_9 , field_10, field_11, field_12, & 214 field_13, field_14, field_15, field_16, field_17, field_18, & 215 field_19 209 216 TYPE(FIELD) , DIMENSION(jpnoumax) :: zfield 210 !! 211 NAMELIST/namiceout/ noumef, & 212 field_1 , field_2 , field_3 , field_4 , field_5 , field_6 , & 213 field_7 , field_8 , field_9 , field_10, field_11, field_12, & 214 field_13, field_14, field_15, field_16, field_17, field_18, field_19 217 218 NAMELIST/namiceout/ noumef, & 219 field_1 , field_2 , field_3 , field_4 , field_5 , field_6 , & 220 field_7 , field_8 , field_9 , field_10, field_11, field_12, & 221 field_13, field_14, field_15, field_16, field_17, field_18, & 222 field_19 215 223 !!------------------------------------------------------------------- 216 224 … … 238 246 zfield(19) = field_19 239 247 240 DO jf = 1, noumef241 titn ( jf) = zfield(jf)%ztitle242 nam ( jf) = zfield(jf)%zname243 uni ( jf) = zfield(jf)%zunit244 nc ( jf) = zfield(jf)%znc245 cmulti( jf) = zfield(jf)%zcmulti246 cadd ( jf) = zfield(jf)%zcadd248 DO nf = 1, noumef 249 titn (nf) = zfield(nf)%ztitle 250 nam (nf) = zfield(nf)%zname 251 uni (nf) = zfield(nf)%zunit 252 nc (nf) = zfield(nf)%znc 253 cmulti(nf) = zfield(nf)%zcmulti 254 cadd (nf) = zfield(nf)%zcadd 247 255 END DO 248 256 … … 254 262 WRITE(numout,*) ' title name unit Saving (1/0) ', & 255 263 & ' multiplicative constant additive constant ' 256 DO jf = 1 , noumef257 WRITE(numout,*) ' ', titn( jf), ' ', nam(jf),' ', uni(jf),' ', nc(jf),' ', cmulti(jf), &258 & ' ', cadd( jf)264 DO nf = 1 , noumef 265 WRITE(numout,*) ' ', titn(nf), ' ', nam(nf),' ', uni(nf),' ', nc(nf),' ', cmulti(nf), & 266 & ' ', cadd(nf) 259 267 END DO 260 268 ENDIF … … 273 281 !! Used to find errors in the initial state or save the last 274 282 !! ocean state in case of abnormal end of a simulation 283 !! 284 !! History : 285 !! 2.0 ! 2009-06 (B. Lemaire) 275 286 !!---------------------------------------------------------------------- 276 287 INTEGER, INTENT( in ) :: kt ! ocean time-step index)
Note: See TracChangeset
for help on using the changeset viewer.