Changeset 990 for branches/dev_003_CPL/NEMO/LIM_SRC_3/limvar.F90
- Timestamp:
- 2008-05-23T16:38:21+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_003_CPL/NEMO/LIM_SRC_3/limvar.F90
r888 r990 44 44 USE ice 45 45 USE par_ice 46 46 47 47 IMPLICIT NONE 48 48 PRIVATE … … 71 71 72 72 SUBROUTINE lim_var_agg(n) 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 !!-- End of declarations112 !!----------------------------------------------------------------------------------------------113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 END DO157 158 159 160 DO jl = 1, jpl161 DO jj = 1, jpj162 DO ji = 1, jpi163 et_s(ji,jj) = et_s(ji,jj) + & ! snow heat content164 165 zinda = MAX( zzero , SIGN( zone , vt_i(ji,jj) - 0.10 ) )166 smt_i(ji,jj) = smt_i(ji,jj) + & ! ice salinity167 168 169 zinda = MAX( zzero , SIGN( zone , at_i(ji,jj) - 0.10 ) )170 ot_i(ji,jj) = ot_i(ji,jj) + & ! ice age171 172 173 END DO174 END DO175 END DO176 177 DO jl = 1, jpl178 DO jk = 1, nlay_i179 DO jj = 1, jpj180 DO ji = 1, jpi181 et_i(ji,jj) = et_i(ji,jj) + e_i(ji,jj,jk,jl) ! ice heat182 183 END DO184 END DO185 END DO186 END DO187 188 189 190 191 192 !==============================================================================193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 !!-- End of declarations233 !!------------------------------------------------------------------------------73 !!------------------------------------------------------------------ 74 !! *** ROUTINE lim_var_agg *** 75 !! ** Purpose : 76 !! This routine aggregates ice-thickness-category variables to 77 !! all-ice variables 78 !! i.e. it turns VGLO into VAGG 79 !! ** Method : 80 !! 81 !! ** Arguments : 82 !! kideb , kiut : Starting and ending points on which the 83 !! the computation is applied 84 !! 85 !! ** Inputs / Ouputs : (global commons) 86 !! ** Arguments : n = 1, at_i vt_i only 87 !! n = 2 everything 88 !! 89 !! ** External : 90 !! 91 !! ** References : 92 !! 93 !! ** History : 94 !! (01-2006) Martin Vancoppenolle, UCL-ASTR 95 !! 96 !! note : you could add an argument when you need only at_i, vt_i 97 !! and when you need everything 98 !!------------------------------------------------------------------ 99 !! * Arguments 100 101 !! * Local variables 102 INTEGER :: ji, & ! spatial dummy loop index 103 jj, & ! spatial dummy loop index 104 jk, & ! vertical layering dummy loop index 105 jl ! ice category dummy loop index 106 107 REAL :: zeps, epsi16, zinda, epsi06 108 109 INTEGER, INTENT( in ) :: n ! describes what is needed 110 111 !!-- End of declarations 112 !!---------------------------------------------------------------------------------------------- 113 zeps = 1.0e-13 114 epsi16 = 1.0e-16 115 epsi06 = 1.0e-6 116 117 !------------------ 118 ! Zero everything 119 !------------------ 120 121 vt_i(:,:) = 0.0 122 vt_s(:,:) = 0.0 123 at_i(:,:) = 0.0 124 ato_i(:,:) = 1.0 125 126 IF ( n .GT. 1 ) THEN 127 et_s(:,:) = 0.0 128 ot_i(:,:) = 0.0 129 smt_i(:,:) = 0.0 130 et_i(:,:) = 0.0 131 ENDIF 132 133 !-------------------- 134 ! Compute variables 135 !-------------------- 136 137 DO jl = 1, jpl 138 DO jj = 1, jpj 139 DO ji = 1, jpi 140 141 vt_i(ji,jj) = vt_i(ji,jj) + v_i(ji,jj,jl) ! ice volume 142 vt_s(ji,jj) = vt_s(ji,jj) + v_s(ji,jj,jl) ! snow volume 143 at_i(ji,jj) = at_i(ji,jj) + a_i(ji,jj,jl) ! ice concentration 144 145 zinda = MAX( zzero , SIGN( zone , at_i(ji,jj) - 0.10 ) ) 146 icethi(ji,jj) = vt_i(ji,jj) / MAX(at_i(ji,jj),epsi16)*zinda 147 ! ice thickness 148 END DO 149 END DO 150 END DO 151 152 DO jj = 1, jpj 153 DO ji = 1, jpi 154 ato_i(ji,jj) = MAX(1.0 - at_i(ji,jj), 0.0) ! open water fraction 155 END DO 156 END DO 157 158 IF ( n .GT. 1 ) THEN 159 160 DO jl = 1, jpl 161 DO jj = 1, jpj 162 DO ji = 1, jpi 163 et_s(ji,jj) = et_s(ji,jj) + & ! snow heat content 164 e_s(ji,jj,1,jl) 165 zinda = MAX( zzero , SIGN( zone , vt_i(ji,jj) - 0.10 ) ) 166 smt_i(ji,jj) = smt_i(ji,jj) + & ! ice salinity 167 smv_i(ji,jj,jl) / MAX( vt_i(ji,jj) , zeps ) * & 168 zinda 169 zinda = MAX( zzero , SIGN( zone , at_i(ji,jj) - 0.10 ) ) 170 ot_i(ji,jj) = ot_i(ji,jj) + & ! ice age 171 oa_i(ji,jj,jl) / MAX( at_i(ji,jj) , zeps ) * & 172 zinda 173 END DO 174 END DO 175 END DO 176 177 DO jl = 1, jpl 178 DO jk = 1, nlay_i 179 DO jj = 1, jpj 180 DO ji = 1, jpi 181 et_i(ji,jj) = et_i(ji,jj) + e_i(ji,jj,jk,jl) ! ice heat 182 ! content 183 END DO 184 END DO 185 END DO 186 END DO 187 188 ENDIF ! n .GT. 1 189 190 END SUBROUTINE lim_var_agg 191 192 !============================================================================== 193 194 SUBROUTINE lim_var_glo2eqv 195 !!------------------------------------------------------------------ 196 !! *** ROUTINE lim_var_glo2eqv ***' 197 !! ** Purpose : 198 !! This routine computes equivalent variables as function of 199 !! global variables 200 !! i.e. it turns VGLO into VEQV 201 !! ** Method : 202 !! 203 !! ** Arguments : 204 !! kideb , kiut : Starting and ending points on which the 205 !! the computation is applied 206 !! 207 !! ** Inputs / Ouputs : 208 !! 209 !! ** External : 210 !! 211 !! ** References : 212 !! 213 !! ** History : 214 !! (01-2006) Martin Vancoppenolle, UCL-ASTR 215 !! 216 !!------------------------------------------------------------------ 217 218 !! * Local variables 219 INTEGER :: ji, & ! spatial dummy loop index 220 jj, & ! spatial dummy loop index 221 jk, & ! vertical layering dummy loop index 222 jl ! ice category dummy loop index 223 224 REAL :: zq_i, zaaa, zbbb, zccc, zdiscrim, & 225 ztmelts, zindb, zq_s, zfac1, zfac2 226 227 REAL :: zeps, epsi06 228 229 zeps = 1.0e-10 230 epsi06 = 1.0e-06 231 232 !!-- End of declarations 233 !!------------------------------------------------------------------------------ 234 234 235 235 !------------------------------------------------------- … … 253 253 254 254 !CDIR NOVERRCHK 255 DO jl = 1, jpl256 !CDIR NOVERRCHK 257 DO jj = 1, jpj258 !CDIR NOVERRCHK 259 DO ji = 1, jpi260 zindb = 1.0-MAX(0.0,SIGN(1.0,-a_i(ji,jj,jl))) !0 if no ice and 1 if yes261 sm_i(ji,jj,jl) = smv_i(ji,jj,jl) / MAX(v_i(ji,jj,jl),zeps) * zindb262 END DO263 END DO264 END DO255 DO jl = 1, jpl 256 !CDIR NOVERRCHK 257 DO jj = 1, jpj 258 !CDIR NOVERRCHK 259 DO ji = 1, jpi 260 zindb = 1.0-MAX(0.0,SIGN(1.0,-a_i(ji,jj,jl))) !0 if no ice and 1 if yes 261 sm_i(ji,jj,jl) = smv_i(ji,jj,jl) / MAX(v_i(ji,jj,jl),zeps) * zindb 262 END DO 263 END DO 264 END DO 265 265 266 266 ENDIF … … 275 275 DO jl = 1, jpl 276 276 !CDIR NOVERRCHK 277 DO jk = 1, nlay_i278 !CDIR NOVERRCHK 279 DO jj = 1, jpj280 !CDIR NOVERRCHK 281 DO ji = 1, jpi282 !Energy of melting q(S,T) [J.m-3]283 zq_i = e_i(ji,jj,jk,jl) / area(ji,jj) / &284 285 ! zindb = 0 if no ice and 1 if yes286 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_i(ji,jj,jl) ) )287 !convert units ! very important that this line is here288 zq_i = zq_i * unit_fac * zindb289 !Ice layer melt temperature290 ztmelts = -tmut*s_i(ji,jj,jk,jl) + rtt291 !Conversion q(S,T) -> T (second order equation)292 zaaa = cpic293 zbbb = ( rcp - cpic ) * ( ztmelts - rtt ) + &294 295 zccc = lfus * (ztmelts-rtt)296 zdiscrim = SQRT( MAX(zbbb*zbbb - 4.0*zaaa*zccc,0.0) )297 t_i(ji,jj,jk,jl) = rtt + zindb *( - zbbb - zdiscrim ) / &298 299 t_i(ji,jj,jk,jl) = MIN( rtt, MAX(173.15, t_i(ji,jj,jk,jl) ) )300 END DO301 END DO302 END DO277 DO jk = 1, nlay_i 278 !CDIR NOVERRCHK 279 DO jj = 1, jpj 280 !CDIR NOVERRCHK 281 DO ji = 1, jpi 282 !Energy of melting q(S,T) [J.m-3] 283 zq_i = e_i(ji,jj,jk,jl) / area(ji,jj) / & 284 MAX( v_i(ji,jj,jl) , epsi06 ) * nlay_i 285 ! zindb = 0 if no ice and 1 if yes 286 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_i(ji,jj,jl) ) ) 287 !convert units ! very important that this line is here 288 zq_i = zq_i * unit_fac * zindb 289 !Ice layer melt temperature 290 ztmelts = -tmut*s_i(ji,jj,jk,jl) + rtt 291 !Conversion q(S,T) -> T (second order equation) 292 zaaa = cpic 293 zbbb = ( rcp - cpic ) * ( ztmelts - rtt ) + & 294 zq_i / rhoic - lfus 295 zccc = lfus * (ztmelts-rtt) 296 zdiscrim = SQRT( MAX(zbbb*zbbb - 4.0*zaaa*zccc,0.0) ) 297 t_i(ji,jj,jk,jl) = rtt + zindb *( - zbbb - zdiscrim ) / & 298 ( 2.0 *zaaa ) 299 t_i(ji,jj,jk,jl) = MIN( rtt, MAX(173.15, t_i(ji,jj,jk,jl) ) ) 300 END DO 301 END DO 302 END DO 303 303 END DO 304 304 … … 311 311 DO jl = 1, jpl 312 312 !CDIR NOVERRCHK 313 DO jk = 1, nlay_s314 !CDIR NOVERRCHK 315 DO jj = 1, jpj316 !CDIR NOVERRCHK 317 DO ji = 1, jpi318 !Energy of melting q(S,T) [J.m-3]319 zq_s = e_s(ji,jj,jk,jl) / area(ji,jj) / &320 321 ! zindb = 0 if no ice and 1 if yes322 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_s(ji,jj,jl) ) )323 !convert units ! very important that this line is here324 zq_s = zq_s * unit_fac * zindb325 t_s(ji,jj,jk,jl) = rtt + zindb * ( - zfac1 * zq_s + zfac2 )326 t_s(ji,jj,jk,jl) = MIN( rtt, MAX(173.15, t_s(ji,jj,jk,jl) ) )327 328 END DO329 END DO330 END DO313 DO jk = 1, nlay_s 314 !CDIR NOVERRCHK 315 DO jj = 1, jpj 316 !CDIR NOVERRCHK 317 DO ji = 1, jpi 318 !Energy of melting q(S,T) [J.m-3] 319 zq_s = e_s(ji,jj,jk,jl) / area(ji,jj) / & 320 MAX( v_s(ji,jj,jl) , epsi06 ) * nlay_s 321 ! zindb = 0 if no ice and 1 if yes 322 zindb = 1.0 - MAX( 0.0 , SIGN( 1.0 , - v_s(ji,jj,jl) ) ) 323 !convert units ! very important that this line is here 324 zq_s = zq_s * unit_fac * zindb 325 t_s(ji,jj,jk,jl) = rtt + zindb * ( - zfac1 * zq_s + zfac2 ) 326 t_s(ji,jj,jk,jl) = MIN( rtt, MAX(173.15, t_s(ji,jj,jk,jl) ) ) 327 328 END DO 329 END DO 330 END DO 331 331 END DO 332 332 … … 346 346 zindb = zindb*1.0-MAX(0.0,SIGN(1.0,-v_i(ji,jj,jl))) 347 347 tm_i(ji,jj) = tm_i(ji,jj) + t_i(ji,jj,jk,jl)*v_i(ji,jj,jl) / & 348 348 REAL(nlay_i) / MAX( vt_i(ji,jj) , zeps ) 349 349 END DO 350 350 END DO … … 354 354 END SUBROUTINE lim_var_glo2eqv 355 355 356 !===============================================================================356 !=============================================================================== 357 357 358 358 SUBROUTINE lim_var_eqv2glo 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 !===============================================================================391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 !!-- End of declarations442 !!------------------------------------------------------------------------------359 !!------------------------------------------------------------------ 360 !! *** ROUTINE lim_var_eqv2glo ***' 361 !! ** Purpose : 362 !! This routine computes global variables as function of 363 !! equivalent variables 364 !! i.e. it turns VEQV into VGLO 365 !! ** Method : 366 !! 367 !! ** Arguments : 368 !! 369 !! ** Inputs / Ouputs : (global commons) 370 !! 371 !! ** External : 372 !! 373 !! ** References : 374 !! 375 !! ** History : 376 !! (01-2006) Martin Vancoppenolle, UCL-ASTR 377 !! Take it easy man 378 !! Life is just a simple game, between 379 !! ups / and downs \ :@) 380 !! 381 !!------------------------------------------------------------------ 382 383 v_i(:,:,:) = ht_i(:,:,:) * a_i(:,:,:) 384 v_s(:,:,:) = ht_s(:,:,:) * a_i(:,:,:) 385 smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 386 oa_i (:,:,:) = o_i (:,:,:) * a_i(:,:,:) 387 388 END SUBROUTINE lim_var_eqv2glo 389 390 !=============================================================================== 391 392 SUBROUTINE lim_var_salprof 393 !!------------------------------------------------------------------ 394 !! *** ROUTINE lim_var_salprof ***' 395 !! ** Purpose : 396 !! This routine computes salinity profile in function of 397 !! bulk salinity 398 !! 399 !! ** Method : If bulk salinity greater than s_i_1, 400 !! the profile is assumed to be constant (S_inf) 401 !! If bulk salinity lower than s_i_0, 402 !! the profile is linear with 0 at the surface (S_zero) 403 !! If it is between s_i_0 and s_i_1, it is a 404 !! alpha-weighted linear combination of s_inf and s_zero 405 !! 406 !! ** References : Vancoppenolle et al., 2007 (in preparation) 407 !! 408 !! ** History : 409 !! (08-2006) Martin Vancoppenolle, UCL-ASTR 410 !! Take it easy man 411 !! Life is just a simple game, between ups 412 !! / and downs \ :@) 413 !! 414 !!------------------------------------------------------------------ 415 !! * Arguments 416 417 !! * Local variables 418 INTEGER :: & 419 ji , & !: spatial dummy loop index 420 jj , & !: spatial dummy loop index 421 jk , & !: vertical layering dummy loop index 422 jl !: ice category dummy loop index 423 424 REAL(wp) :: & 425 dummy_fac0 , & !: dummy factor used in computations 426 dummy_fac1 , & !: dummy factor used in computations 427 dummy_fac , & !: dummy factor used in computations 428 zind0 , & !: switch, = 1 if sm_i lt s_i_0 429 zind01 , & !: switch, = 1 if sm_i between s_i_0 and s_i_1 430 zindbal , & !: switch, = 1, if 2*sm_i gt sss_m 431 zargtemp !: dummy factor 432 433 REAL(wp), DIMENSION(nlay_i) :: & 434 zs_zero !: linear salinity profile for salinities under 435 !: s_i_0 436 437 REAL(wp), DIMENSION(jpi,jpj,jpl) :: & 438 z_slope_s , & !: slope of the salinity profile 439 zalpha !: weight factor for s between s_i_0 and s_i_1 440 441 !!-- End of declarations 442 !!------------------------------------------------------------------------------ 443 443 444 444 !--------------------------------------- … … 468 468 DO ji = 1, jpi 469 469 z_slope_s(ji,jj,jl) = 2.0 * sm_i(ji,jj,jl) / MAX( 0.01 & 470 470 , ht_i(ji,jj,jl) ) 471 471 END DO ! ji 472 472 END DO ! jj … … 490 490 ! zind01 = 1 if sm_i is between s_i_0 and s_i_1 and 0 othws 491 491 zind01 = ( 1.0 - zind0 ) * & 492 492 MAX( 0.0 , SIGN( 1.0 , s_i_1 - sm_i(ji,jj,jl) ) ) 493 493 ! If 2.sm_i GE sss_m then zindbal = 1 494 494 zindbal = MAX( 0.0 , SIGN( 1.0 , 2. * sm_i(ji,jj,jl) - & 495 sss_m(ji,jj) ) )495 sss_m(ji,jj) ) ) 496 496 zalpha(ji,jj,jl) = zind0 * 1.0 & 497 498 497 + zind01 * ( sm_i(ji,jj,jl) * dummy_fac0 + & 498 dummy_fac1 ) 499 499 zalpha(ji,jj,jl) = zalpha(ji,jj,jl) * ( 1.0 - zindbal ) 500 500 END DO … … 512 512 ! linear profile with 0 at the surface 513 513 zs_zero(jk) = z_slope_s(ji,jj,jl) * ( jk - 1./2. ) * & 514 514 ht_i(ji,jj,jl) * dummy_fac 515 515 ! weighting the profile 516 516 s_i(ji,jj,jk,jl) = zalpha(ji,jj,jl) * zs_zero(jk) + & 517 517 ( 1.0 - zalpha(ji,jj,jl) ) * sm_i(ji,jj,jl) 518 518 END DO ! ji 519 519 END DO ! jj … … 527 527 !------------------------------------------------------- 528 528 ! Schwarzacher (1959) multiyear salinity profile (mean = 2.30) 529 529 530 530 IF ( num_sal .EQ. 3 ) THEN 531 531 … … 542 542 zargtemp = ( jk - 0.5 ) / nlay_i 543 543 s_i(ji,jj,jk,jl) = 1.6 - 1.6 * COS( 3.14169265 * & 544 545 544 ( zargtemp**(0.407/ & 545 ( 0.573 + zargtemp ) ) ) ) 546 546 END DO ! ji 547 547 END DO ! jj … … 553 553 END SUBROUTINE lim_var_salprof 554 554 555 !===============================================================================555 !=============================================================================== 556 556 557 557 SUBROUTINE lim_var_bv 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 !!-- End of declarations590 !!------------------------------------------------------------------------------591 592 593 594 !CDIR NOVERRCHK 595 596 !CDIR NOVERRCHK 597 598 !CDIR NOVERRCHK 599 600 !CDIR NOVERRCHK 601 602 603 604 605 606 607 608 609 610 611 612 613 END SUBROUTINE lim_var_bv 614 615 !===============================================================================558 !!------------------------------------------------------------------ 559 !! *** ROUTINE lim_var_bv ***' 560 !! ** Purpose : 561 !! This routine computes mean brine volume (%) in sea ice 562 !! 563 !! ** Method : e = - 0.054 * S (ppt) / T (C) 564 !! 565 !! ** Arguments : 566 !! 567 !! ** Inputs / Ouputs : (global commons) 568 !! 569 !! ** External : 570 !! 571 !! ** References : Vancoppenolle et al., JGR, 2007 572 !! 573 !! ** History : 574 !! (08-2006) Martin Vancoppenolle, UCL-ASTR 575 !! 576 !!------------------------------------------------------------------ 577 !! * Arguments 578 579 !! * Local variables 580 INTEGER :: ji, & ! spatial dummy loop index 581 jj, & ! spatial dummy loop index 582 jk, & ! vertical layering dummy loop index 583 jl ! ice category dummy loop index 584 585 REAL :: zbvi, & ! brine volume for a single ice category 586 zeps, & ! very small value 587 zindb ! is there ice or not 588 589 !!-- End of declarations 590 !!------------------------------------------------------------------------------ 591 592 zeps = 1.0e-13 593 bv_i(:,:) = 0.0 594 !CDIR NOVERRCHK 595 DO jl = 1, jpl 596 !CDIR NOVERRCHK 597 DO jk = 1, nlay_i 598 !CDIR NOVERRCHK 599 DO jj = 1, jpj 600 !CDIR NOVERRCHK 601 DO ji = 1, jpi 602 zindb = 1.0-MAX(0.0,SIGN(1.0,-a_i(ji,jj,jl))) !0 if no ice and 1 if yes 603 zbvi = - zindb * tmut *s_i(ji,jj,jk,jl) / & 604 MIN( t_i(ji,jj,jk,jl) - 273.15 , zeps ) & 605 * v_i(ji,jj,jl) / REAL(nlay_i) 606 bv_i(ji,jj) = bv_i(ji,jj) + zbvi & 607 / MAX( vt_i(ji,jj) , zeps ) 608 END DO 609 END DO 610 END DO 611 END DO 612 613 END SUBROUTINE lim_var_bv 614 615 !=============================================================================== 616 616 617 617 SUBROUTINE lim_var_salprof1d(kideb,kiut) … … 642 642 zindbal , & ! switch if in freshwater area 643 643 zargtemp 644 644 645 645 REAL(wp), DIMENSION(jpij) :: & 646 646 z_slope_s … … 649 649 zs_zero 650 650 !!------------------------------------------------------------------- 651 651 652 652 !--------------------------------------- 653 653 ! Vertically constant, constant in time … … 670 670 !CDIR NOVERRCHK 671 671 DO ji = kideb, kiut 672 673 672 z_slope_s(ji) = 2.0 * sm_i_b(ji) / MAX( 0.01 & 673 , ht_i_b(ji) ) 674 674 END DO ! ji 675 675 … … 691 691 ! zind01 = 1 if sm_i is between s_i_0 and s_i_1 and 0 othws 692 692 zind01 = ( 1.0 - zind0 ) * & 693 693 MAX( 0.0 , SIGN( 1.0 , s_i_1 - sm_i_b(ji) ) ) 694 694 ! if 2.sm_i GE sss_m then zindbal = 1 695 695 zindbal = MAX( 0.0 , SIGN( 1.0 , 2. * sm_i_b(ji) - & 696 sss_m(zji,zjj) ) )696 sss_m(zji,zjj) ) ) 697 697 698 698 zalpha = zind0 * 1.0 & 699 700 699 + zind01 * ( sm_i_b(ji) * dummy_fac0 + & 700 dummy_fac1 ) 701 701 zalpha = zalpha * ( 1.0 - zindbal ) 702 702 703 703 zs_zero(ji,jk) = z_slope_s(ji) * ( jk - 1./2. ) * & 704 704 ht_i_b(ji) * dummy_fac2 705 705 ! weighting the profile 706 706 s_i_b(ji,jk) = zalpha * zs_zero(ji,jk) + & 707 707 ( 1.0 - zalpha ) * sm_i_b(ji) 708 708 END DO ! ji 709 709 END DO ! jk … … 726 726 zargtemp = ( jk - 0.5 ) / nlay_i 727 727 s_i_b(ji,jk) = 1.6 - 1.6*cos(3.14169265*(zargtemp**(0.407/ & 728 728 (0.573+zargtemp)))) 729 729 END DO ! jk 730 730 END DO ! ji … … 734 734 END SUBROUTINE lim_var_salprof1d 735 735 736 !===============================================================================736 !=============================================================================== 737 737 738 738 #else … … 751 751 END SUBROUTINE lim_var_salprof 752 752 SUBROUTINE lim_var_bv ! Emtpy routines 753 END SUBROUTINE lim_var_bv 753 END SUBROUTINE lim_var_bv 754 754 SUBROUTINE lim_var_salprof1d ! Emtpy routines 755 755 END SUBROUTINE lim_var_salprof1d
Note: See TracChangeset
for help on using the changeset viewer.