Changeset 888 for trunk/NEMO/LIM_SRC_2/limwri_2.F90
- Timestamp:
- 2008-04-11T19:05:03+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_2/limwri_2.F90
r823 r888 9 9 #if defined key_lim2 10 10 !!---------------------------------------------------------------------- 11 !! 'key_lim2' iLIM 2.0 sea-ice model11 !! 'key_lim2' LIM 2.0 sea-ice model 12 12 !!---------------------------------------------------------------------- 13 13 !!---------------------------------------------------------------------- … … 15 15 !! lim_wri_init_2 : initialization and namelist read 16 16 !!---------------------------------------------------------------------- 17 USE ioipsl18 USE dianam ! build name of file (routine)19 17 USE phycst 20 18 USE dom_oce 21 19 USE daymod 22 USE in_out_manager23 20 USE ice_oce ! ice variables 24 USE flx_oce 21 USE sbc_oce 22 USE sbc_ice 25 23 USE dom_ice_2 26 24 USE ice_2 25 27 26 USE lbclnk 27 USE dianam ! build name of file (routine) 28 USE in_out_manager 29 USE ioipsl 28 30 29 31 IMPLICIT NONE 30 32 PRIVATE 31 33 32 PUBLIC lim_wri_2 ! routine called by lim_step_2.F9034 PUBLIC lim_wri_2 ! routine called by sbc_ice_lim_2 33 35 34 36 INTEGER, PARAMETER :: jpnoumax = 40 ! maximum number of variable for ice output … … 49 51 zone = 1.e0 50 52 51 !!---------------------------------------------------------------------- 52 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) 53 !! $Header$ 53 !! * Substitutions 54 # include "vectopt_loop_substitute.h90" 55 !!---------------------------------------------------------------------- 56 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 57 !! $ Id: $ 54 58 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 55 59 !!---------------------------------------------------------------------- … … 79 83 !!------------------------------------------------------------------- 80 84 INTEGER, INTENT(in) :: kt ! number of iteration 81 85 !! 82 86 INTEGER :: ji, jj, jf ! dummy loop indices 83 87 CHARACTER(len = 40) :: clhstnam, clop … … 90 94 91 95 ! !--------------------! 92 IF ( kt == nit000 ) THEN! Initialisation !96 IF( kt == nit000 ) THEN ! Initialisation ! 93 97 ! !--------------------! 94 98 CALL lim_wri_init_2 … … 97 101 !!Chris clop = "ave(only(x))" !ibug namelist parameter a ajouter 98 102 clop = "ave(x)" 99 zout = nwrite * rdt_ice / n fice103 zout = nwrite * rdt_ice / nn_fsbc 100 104 zsec = 0. 101 105 niter = 0 … … 110 114 111 115 DO jf = 1, noumef 112 IF 113 &, nhorid, 1, 1, 1, -99, 32, clop, zsto, zout )116 IF( nc(jf) == 1 ) CALL histdef( nice, nam(jf), titn(jf), uni(jf), jpi, jpj & 117 & , nhorid, 1, 1, 1, -99, 32, clop, zsto, zout ) 114 118 END DO 115 119 CALL histend( nice ) 116 120 ! 117 121 ENDIF 118 122 ! !--------------------! … … 120 124 ! !--------------------! 121 125 122 !!gm change the print below to have it only at output time step or when nitend =< 100 123 IF(lwp) THEN 124 WRITE(numout,*) 125 WRITE(numout,*) 'lim_wri_2 : write ice outputs in NetCDF files at time : ', nyear, nmonth, nday, kt + nfice - 1 126 WRITE(numout,*) '~~~~~~~~~ ' 127 ENDIF 128 129 !-- calculs des valeurs instantanees 126 !-- Store instantaneous values in zcmo 130 127 131 128 zcmo(:,:, 1:jpnoumax ) = 0.e0 132 129 DO jj = 2 , jpjm1 133 DO ji = 2 ,jpim1130 DO ji = fs_2 , fs_jpim1 134 131 zindh = MAX( zzero , SIGN( zone , hicif(ji,jj) * (1.0 - frld(ji,jj) ) - 0.10 ) ) 135 132 zinda = MAX( zzero , SIGN( zone , ( 1.0 - frld(ji,jj) ) - 0.10 ) ) … … 142 139 zcmo(ji,jj,5) = sist (ji,jj) 143 140 zcmo(ji,jj,6) = fbif (ji,jj) 144 zcmo(ji,jj,7) = zindb * ( u _ice(ji,jj ) * tmu(ji,jj ) + u_ice(ji+1,jj ) * tmu(ji+1,jj ) &145 + u _ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &141 zcmo(ji,jj,7) = zindb * ( ui_ice(ji,jj ) * tmu(ji,jj ) + ui_ice(ji+1,jj ) * tmu(ji+1,jj ) & 142 + ui_ice(ji,jj+1) * tmu(ji,jj+1) + ui_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 146 143 / ztmu 147 144 148 zcmo(ji,jj,8) = zindb * ( v _ice(ji,jj ) * tmu(ji,jj ) + v_ice(ji+1,jj ) * tmu(ji+1,jj ) &149 + v _ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &145 zcmo(ji,jj,8) = zindb * ( vi_ice(ji,jj ) * tmu(ji,jj ) + vi_ice(ji+1,jj ) * tmu(ji+1,jj ) & 146 + vi_ice(ji,jj+1) * tmu(ji,jj+1) + vi_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 150 147 / ztmu 151 zcmo(ji,jj,9) = sst_io(ji,jj) 152 zcmo(ji,jj,10) = sss_io(ji,jj) 153 154 zcmo(ji,jj,11) = fnsolar(ji,jj) + fsolar(ji,jj) 155 zcmo(ji,jj,12) = fsolar (ji,jj) 156 zcmo(ji,jj,13) = fnsolar(ji,jj) 148 zcmo(ji,jj,9) = sst_m(ji,jj) 149 zcmo(ji,jj,10) = sss_m(ji,jj) 150 zcmo(ji,jj,11) = qns(ji,jj) + qsr(ji,jj) 151 zcmo(ji,jj,12) = qsr(ji,jj) 152 zcmo(ji,jj,13) = qns(ji,jj) 157 153 ! See thersf for the coefficient 158 zcmo(ji,jj,14) = - fsalt(ji,jj) * rday * ( sss_io(ji,jj) + epsi16 ) / soce159 zcmo(ji,jj,15) = gtaux(ji,jj)160 zcmo(ji,jj,16) = gtauy(ji,jj)161 zcmo(ji,jj,17) = ( 1.0 - frld(ji,jj) ) * qsr_ice (ji,jj) + frld(ji,jj) * qsr_oce(ji,jj)162 zcmo(ji,jj,18) = ( 1.0 - frld(ji,jj) ) * qnsr_ice(ji,jj) + frld(ji,jj) * qnsr_oce(ji,jj)154 zcmo(ji,jj,14) = - emps(ji,jj) * rday * ( sss_m(ji,jj) + epsi16 ) / soce !!gm ??? 155 zcmo(ji,jj,15) = utaui_ice(ji,jj) 156 zcmo(ji,jj,16) = vtaui_ice(ji,jj) 157 zcmo(ji,jj,17) = qsr_ice(ji,jj) 158 zcmo(ji,jj,18) = qns_ice(ji,jj) 163 159 zcmo(ji,jj,19) = sprecip(ji,jj) 164 160 END DO … … 175 171 END DO 176 172 177 IF ( jf == 7 .OR. jf == 8 .OR. jf == 15 .OR. jf == 16 ) THEN173 IF( jf == 7 .OR. jf == 8 .OR. jf == 15 .OR. jf == 16 ) THEN 178 174 CALL lbc_lnk( zfield, 'T', -1. ) 179 175 ELSE … … 181 177 ENDIF 182 178 183 IF ( nc(jf) == 1 )CALL histwrite( nice, nam(jf), niter, zfield, ndim, ndex51 )179 IF( nc(jf) == 1 ) CALL histwrite( nice, nam(jf), niter, zfield, ndim, ndex51 ) 184 180 185 181 END DO 186 182 187 IF ( ( nfice * niter + nit000 - 1 ) >= nitend ) THEN 188 CALL histclo( nice ) 189 ENDIF 183 IF( ( nn_fsbc * niter + nit000 - 1 ) >= nitend ) CALL histclo( nice ) 190 184 ! 191 185 END SUBROUTINE lim_wri_2 … … 225 219 field_13, field_14, field_15, field_16, field_17, field_18, & 226 220 field_19 227 !!gm NAMELIST/namiceout/ noumef, & 228 !! zfield( 1), zfield( 2), zfield( 3), zfield( 4), zfield( 5), & 229 !! zfield( 6), zfield( 7), zfield( 8), zfield( 9), zfield(10), & 230 !! zfield(11), zfield(12), zfield(13), zfield(14), zfield(15), & 231 !!gm zfield(16), zfield(17), zfield(18), zfield(19) 232 !!------------------------------------------------------------------- 233 234 ! Read Namelist namicewri 235 REWIND ( numnam_ice ) 221 !!------------------------------------------------------------------- 222 223 REWIND ( numnam_ice ) ! Read Namelist namicewri 236 224 READ ( numnam_ice , namiceout ) 237 225 238 zfield( 1)= field_1239 zfield( 2)= field_2240 zfield( 3)= field_3241 zfield( 4)= field_4242 zfield( 5)= field_5243 zfield( 6)= field_6244 zfield( 7)= field_7245 zfield( 8)= field_8246 zfield( 9)= field_9226 zfield( 1) = field_1 227 zfield( 2) = field_2 228 zfield( 3) = field_3 229 zfield( 4) = field_4 230 zfield( 5) = field_5 231 zfield( 6) = field_6 232 zfield( 7) = field_7 233 zfield( 8) = field_8 234 zfield( 9) = field_9 247 235 zfield(10) = field_10 248 236 zfield(11) = field_11 … … 274 262 DO nf = 1 , noumef 275 263 WRITE(numout,*) ' ', titn(nf), ' ', nam(nf),' ', uni(nf),' ', nc(nf),' ', cmulti(nf), & 276 ' ', cadd(nf)264 & ' ', cadd(nf) 277 265 END DO 278 266 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.