- Timestamp:
- 2013-12-11T18:34:00+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r4298 r4333 43 43 PUBLIC lim_itd_me_alloc ! called by iceini.F90 44 44 45 REAL(wp) :: epsi 11 = 1.e-11_wp ! constant values45 REAL(wp) :: epsi20 = 1.e-20_wp ! constant values 46 46 REAL(wp) :: epsi10 = 1.e-10_wp ! constant values 47 47 REAL(wp) :: epsi06 = 1.e-06_wp ! constant values … … 50 50 ! Variables shared among ridging subroutines 51 51 !----------------------------------------------------------------------- 52 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: asum ! sum of total ice and open water area 53 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: aksum ! ratio of area removed to area ridged 54 ! 55 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: athorn ! participation function; fraction of ridging/ 56 ! ! closing associated w/ category n 57 ! 58 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hrmin ! minimum ridge thickness 59 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hrmax ! maximum ridge thickness 60 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hraft ! thickness of rafted ice 61 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: krdg ! mean ridge thickness/thickness of ridging ice 62 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: aridge ! participating ice ridging 63 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: araft ! participating ice rafting 52 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: asum ! sum of total ice and open water area 53 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: aksum ! ratio of area removed to area ridged 54 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: athorn ! participation function; fraction of ridging/ 55 ! ! closing associated w/ category n 56 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: hrmin ! minimum ridge thickness 57 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: hrmax ! maximum ridge thickness 58 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: hraft ! thickness of rafted ice 59 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: krdg ! mean ridge thickness/thickness of ridging ice 60 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: aridge ! participating ice ridging 61 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: araft ! participating ice rafting 64 62 65 63 REAL(wp), PARAMETER :: krdgmin = 1.1_wp ! min ridge thickness multiplier 66 64 REAL(wp), PARAMETER :: kraft = 2.0_wp ! rafting multipliyer 67 REAL(wp), PARAMETER :: kamax = 1.0 65 REAL(wp), PARAMETER :: kamax = 1.0_wp ! max of ice area authorized (clem: scheme is not stable if kamax <= 0.99) 68 66 69 67 REAL(wp) :: Cp ! … … 261 259 ! Reduce the closing rate if more than 100% of the open water 262 260 ! would be removed. Reduce the opening rate proportionately. 263 IF ( ato_i(ji,jj) .GT. epsi1 1.AND. athorn(ji,jj,0) .GT. 0.0 ) THEN261 IF ( ato_i(ji,jj) .GT. epsi10 .AND. athorn(ji,jj,0) .GT. 0.0 ) THEN 264 262 w1 = athorn(ji,jj,0) * closing_gross(ji,jj) * rdt_ice 265 263 IF ( w1 .GT. ato_i(ji,jj)) THEN … … 281 279 DO jj = 1, jpj 282 280 DO ji = 1, jpi 283 IF ( a_i(ji,jj,jl) > epsi1 1.AND. athorn(ji,jj,jl) > 0._wp )THEN281 IF ( a_i(ji,jj,jl) > epsi10 .AND. athorn(ji,jj,jl) > 0._wp )THEN 284 282 w1 = athorn(ji,jj,jl) * closing_gross(ji,jj) * rdt_ice 285 283 IF ( w1 > a_i(ji,jj,jl) ) THEN … … 312 310 DO jj = 1, jpj 313 311 DO ji = 1, jpi 314 IF (ABS(asum(ji,jj) - kamax ) .LT. epsi1 1) THEN312 IF (ABS(asum(ji,jj) - kamax ) .LT. epsi10) THEN 315 313 closing_net(ji,jj) = 0._wp 316 314 opning (ji,jj) = 0._wp … … 354 352 DO ji = 1, jpi 355 353 356 IF(ABS(asum(ji,jj) - kamax) > epsi1 1) asum_error = .true.354 IF(ABS(asum(ji,jj) - kamax) > epsi10 ) asum_error = .true. 357 355 358 356 dardg1dt(ji,jj) = dardg1dt(ji,jj) * r1_rdtice … … 373 371 DO jj = 1, jpj 374 372 DO ji = 1, jpi 375 IF( ABS( asum(ji,jj) - kamax) > epsi1 1) THEN ! there is a bug373 IF( ABS( asum(ji,jj) - kamax) > epsi10 ) THEN ! there is a bug 376 374 WRITE(numout,*) ' ' 377 375 WRITE(numout,*) ' ALERTE : Ridging error: total area = ', asum(ji,jj) … … 396 394 397 395 !-----------------------------------------------------------------------------! 398 ! 6) Updating state variables and trend terms 396 ! 6) Updating state variables and trend terms (done in limupdate) 399 397 !-----------------------------------------------------------------------------! 400 401 398 CALL lim_var_glo2eqv 402 399 CALL lim_itd_me_zapsmall … … 415 412 END DO 416 413 END DO 417 418 !-----------------419 ! Trend terms420 !-----------------421 422 d_u_ice_dyn(:,:) = u_ice(:,:) - old_u_ice(:,:)423 d_v_ice_dyn(:,:) = v_ice(:,:) - old_v_ice(:,:)424 d_a_i_trp (:,:,:) = a_i (:,:,:) - old_a_i (:,:,:)425 d_v_s_trp (:,:,:) = v_s (:,:,:) - old_v_s (:,:,:)426 d_v_i_trp (:,:,:) = v_i (:,:,:) - old_v_i (:,:,:)427 d_e_s_trp (:,:,:,:) = e_s (:,:,:,:) - old_e_s (:,:,:,:)428 d_e_i_trp (:,:,:,:) = e_i (:,:,:,:) - old_e_i (:,:,:,:)429 d_oa_i_trp (:,:,:) = oa_i (:,:,:) - old_oa_i (:,:,:)430 d_smv_i_trp(:,:,:) = 0._wp431 IF( num_sal == 2 ) d_smv_i_trp(:,:,:) = smv_i(:,:,:) - old_smv_i(:,:,:)432 414 433 415 IF(ln_ctl) THEN ! Control print … … 487 469 ! ------------------------------- 488 470 489 !-------------------------!490 ! Back to initial values491 !-------------------------!492 493 ! update of fields will be made later in lim update494 u_ice(:,:) = old_u_ice(:,:)495 v_ice(:,:) = old_v_ice(:,:)496 a_i(:,:,:) = old_a_i(:,:,:)497 v_s(:,:,:) = old_v_s(:,:,:)498 v_i(:,:,:) = old_v_i(:,:,:)499 e_s(:,:,:,:) = old_e_s(:,:,:,:)500 e_i(:,:,:,:) = old_e_i(:,:,:,:)501 oa_i(:,:,:) = old_oa_i(:,:,:)502 IF( num_sal == 2 ) smv_i(:,:,:) = old_smv_i(:,:,:)503 504 !----------------------------------------------------!505 ! Advection of ice in a free cell, newly ridged ice506 !----------------------------------------------------!507 508 ! to allow for thermodynamics to melt new ice509 ! we immediately advect ice in free cells510 511 ! heat content has to be corrected before ice volume512 !clem@order513 ! DO jl = 1, jpl514 ! DO jk = 1, nlay_i515 ! DO jj = 1, jpj516 ! DO ji = 1, jpi517 ! IF ( ( old_v_i(ji,jj,jl) < epsi06 ) .AND. &518 ! ( d_v_i_trp(ji,jj,jl) > epsi06 ) ) THEN519 ! old_e_i(ji,jj,jk,jl) = d_e_i_trp(ji,jj,jk,jl)520 ! d_e_i_trp(ji,jj,jk,jl) = 0._wp521 ! ENDIF522 ! END DO523 ! END DO524 ! END DO525 ! END DO526 !527 ! DO jl = 1, jpl528 ! DO jj = 1, jpj529 ! DO ji = 1, jpi530 ! IF( old_v_i (ji,jj,jl) < epsi06 .AND. &531 ! d_v_i_trp(ji,jj,jl) > epsi06 ) THEN532 ! old_v_i (ji,jj,jl) = d_v_i_trp(ji,jj,jl)533 ! d_v_i_trp (ji,jj,jl) = 0._wp534 ! old_a_i (ji,jj,jl) = d_a_i_trp(ji,jj,jl)535 ! d_a_i_trp (ji,jj,jl) = 0._wp536 ! old_v_s (ji,jj,jl) = d_v_s_trp(ji,jj,jl)537 ! d_v_s_trp (ji,jj,jl) = 0._wp538 ! old_e_s (ji,jj,1,jl) = d_e_s_trp(ji,jj,1,jl)539 ! d_e_s_trp (ji,jj,1,jl) = 0._wp540 ! old_oa_i (ji,jj,jl) = d_oa_i_trp(ji,jj,jl)541 ! d_oa_i_trp(ji,jj,jl) = 0._wp542 ! IF( num_sal == 2 ) old_smv_i(ji,jj,jl) = d_smv_i_trp(ji,jj,jl)543 ! d_smv_i_trp(ji,jj,jl) = 0._wp544 ! ENDIF545 ! END DO546 ! END DO547 ! END DO548 !clem@order549 471 ENDIF ! ln_limdyn=.true. 550 472 ! … … 601 523 DO ji = 1, jpi 602 524 ! 603 IF( a_i(ji,jj,jl) > epsi11 .AND. & 604 athorn(ji,jj,jl) > 0._wp ) THEN 525 IF( a_i(ji,jj,jl) > epsi10 .AND. athorn(ji,jj,jl) > 0._wp ) THEN 605 526 hi = v_i(ji,jj,jl) / a_i(ji,jj,jl) 606 527 !---------------------------- … … 620 541 * z1_3 * (hrmax(ji,jj,jl)**3 - hrmin(ji,jj,jl)**3) / ( hrmax(ji,jj,jl)-hrmin(ji,jj,jl) ) 621 542 !!gm Optimization: (a**3-b**3)/(a-b) = a*a+ab+b*b ==> less costly operations even if a**3 is replaced by a*a*a... 622 ENDIF ! aicen > epsi1 1543 ENDIF ! aicen > epsi10 623 544 ! 624 545 END DO ! ji … … 677 598 DO jj = 2, jpj - 1 678 599 DO ji = 2, jpi - 1 679 IF ( ( asum(ji,jj) - ato_i(ji,jj) ) .GT. epsi1 1) THEN ! ice is600 IF ( ( asum(ji,jj) - ato_i(ji,jj) ) .GT. epsi10) THEN ! ice is 680 601 ! present 681 602 zworka(ji,jj) = 4.0 * strength(ji,jj) & … … 717 638 DO jj = 1, jpj - 1 718 639 DO ji = 1, jpi - 1 719 IF ( ( asum(ji,jj) - ato_i(ji,jj) ) .GT. epsi1 1) THEN ! ice is present640 IF ( ( asum(ji,jj) - ato_i(ji,jj) ) .GT. epsi10) THEN ! ice is present 720 641 numts_rm = 1 ! number of time steps for the running mean 721 642 IF ( strp1(ji,jj) .GT. 0.0 ) numts_rm = numts_rm + 1 … … 790 711 DO jj = 1, jpj 791 712 DO ji = 1, jpi 792 IF( ato_i(ji,jj) > epsi1 1) THEN ; Gsum(ji,jj,0) = ato_i(ji,jj)713 IF( ato_i(ji,jj) > epsi10 ) THEN ; Gsum(ji,jj,0) = ato_i(ji,jj) 793 714 ELSE ; Gsum(ji,jj,0) = 0._wp 794 715 ENDIF … … 800 721 DO jj = 1, jpj 801 722 DO ji = 1, jpi 802 IF( a_i(ji,jj,jl) .GT. epsi1 1) THEN ; Gsum(ji,jj,jl) = Gsum(ji,jj,jl-1) + a_i(ji,jj,jl)723 IF( a_i(ji,jj,jl) .GT. epsi10 ) THEN ; Gsum(ji,jj,jl) = Gsum(ji,jj,jl-1) + a_i(ji,jj,jl) 803 724 ELSE ; Gsum(ji,jj,jl) = Gsum(ji,jj,jl-1) 804 725 ENDIF … … 883 804 IF ( raftswi == 1 ) THEN 884 805 885 IF( MAXVAL(aridge + araft - athorn(:,:,1:jpl)) .GT. epsi1 1) THEN806 IF( MAXVAL(aridge + araft - athorn(:,:,1:jpl)) .GT. epsi10 ) THEN 886 807 DO jl = 1, jpl 887 808 DO jj = 1, jpj 888 809 DO ji = 1, jpi 889 IF ( aridge(ji,jj,jl) + araft(ji,jj,jl) - athorn(ji,jj,jl) .GT. & 890 epsi11 ) THEN 810 IF ( aridge(ji,jj,jl) + araft(ji,jj,jl) - athorn(ji,jj,jl) .GT. epsi10 ) THEN 891 811 WRITE(numout,*) ' ALERTE 96 : wrong participation function ... ' 892 812 WRITE(numout,*) ' ji, jj, jl : ', ji, jj, jl … … 934 854 DO ji = 1, jpi 935 855 936 IF (a_i(ji,jj,jl) .GT. epsi1 1.AND. athorn(ji,jj,jl) .GT. 0.0 ) THEN856 IF (a_i(ji,jj,jl) .GT. epsi10 .AND. athorn(ji,jj,jl) .GT. 0.0 ) THEN 937 857 hi = v_i(ji,jj,jl) / a_i(ji,jj,jl) 938 858 hrmean = MAX(SQRT(Hstar*hi), hi*krdgmin) … … 988 908 INTEGER :: ij ! horizontal index, combines i and j loops 989 909 INTEGER :: icells ! number of cells with aicen > puny 990 REAL(wp) :: z eps, zindb, zsrdg2 ! local scalar910 REAL(wp) :: zindb, zsrdg2 ! local scalar 991 911 REAL(wp) :: hL, hR, farea, zdummy, zdummy0, ztmelts ! left and right limits of integration 992 912 … … 1040 960 1041 961 IF( con_i ) THEN 1042 CALL lim_column_sum (jpl, v_i, vice_init ) 1043 WRITE(numout,*) ' vice_init : ', vice_init(jiindx,jjindx) 962 CALL lim_column_sum (jpl, v_i, vice_init ) 1044 963 CALL lim_column_sum_energy (jpl, nlay_i, e_i, eice_init ) 1045 WRITE(numout,*) ' eice_init : ', eice_init(jiindx,jjindx) 964 DO ji = mi0(jiindx), mi1(jiindx) 965 DO jj = mj0(jjindx), mj1(jjindx) 966 WRITE(numout,*) ' vice_init : ', vice_init(ji,jj) 967 WRITE(numout,*) ' eice_init : ', eice_init(ji,jj) 968 END DO 969 END DO 1046 970 ENDIF 1047 1048 zeps = 1.e-20_wp1049 971 1050 972 !------------------------------------------------------------------------------- … … 1058 980 ato_i(ji,jj) = ato_i(ji,jj) - athorn(ji,jj,0) * closing_gross(ji,jj) * rdt_ice & 1059 981 & + opning(ji,jj) * rdt_ice 1060 IF( ato_i(ji,jj) < -epsi1 1) THEN982 IF( ato_i(ji,jj) < -epsi10 ) THEN 1061 983 neg_ato_i = .TRUE. 1062 984 ELSEIF( ato_i(ji,jj) < 0._wp ) THEN ! roundoff error … … 1070 992 DO jj = 1, jpj 1071 993 DO ji = 1, jpi 1072 IF( ato_i(ji,jj) < -epsi1 1) THEN994 IF( ato_i(ji,jj) < -epsi10 ) THEN 1073 995 WRITE(numout,*) '' 1074 996 WRITE(numout,*) 'Ridging error: ato_i < 0' 1075 997 WRITE(numout,*) 'ato_i : ', ato_i(ji,jj) 1076 ENDIF ! ato_i < -epsi1 1998 ENDIF ! ato_i < -epsi10 1077 999 END DO 1078 1000 END DO … … 1116 1038 DO jj = 1, jpj 1117 1039 DO ji = 1, jpi 1118 IF( aicen_init(ji,jj,jl1) > epsi11 .AND. athorn(ji,jj,jl1) > 0._wp&1119 .AND. closing_gross(ji,jj) > 0._wp ) THEN1040 IF( aicen_init(ji,jj,jl1) > epsi10 .AND. athorn(ji,jj,jl1) > 0._wp & 1041 & .AND. closing_gross(ji,jj) > 0._wp ) THEN 1120 1042 icells = icells + 1 1121 1043 indxi(icells) = ji … … 1154 1076 afrft(ji,jj) = arft1(ji,jj) / aicen_init(ji,jj,jl1) !rafting 1155 1077 1156 IF (afrac(ji,jj) > kamax + epsi1 1) THEN !riging1078 IF (afrac(ji,jj) > kamax + epsi10) THEN !riging 1157 1079 large_afrac = .true. 1158 1080 ELSEIF (afrac(ji,jj) > kamax) THEN ! roundoff error 1159 1081 afrac(ji,jj) = kamax 1160 1082 ENDIF 1161 IF (afrft(ji,jj) > kamax + epsi1 1) THEN !rafting1083 IF (afrft(ji,jj) > kamax + epsi10) THEN !rafting 1162 1084 large_afrft = .true. 1163 1085 ELSEIF (afrft(ji,jj) > kamax) THEN ! roundoff error … … 1218 1140 dardg1dt (ji,jj) = dardg1dt(ji,jj) + ardg1(ji,jj) + arft1(ji,jj) 1219 1141 dardg2dt (ji,jj) = dardg2dt(ji,jj) + ardg2(ji,jj) + arft2(ji,jj) 1220 !clem diag_dyn_gr(ji,jj) = diag_dyn_gr(ji,jj) + ( vrdg2(ji,jj) + virft(ji,jj) ) * r1_rdtice1221 1142 opening (ji,jj) = opening (ji,jj) + opning(ji,jj) * rdt_ice 1222 1143 … … 1272 1193 1273 1194 ! corrected sea water salinity 1274 zindb = MAX( 0._wp , SIGN( 1._wp , vsw(ji,jj) - zeps) )1275 zdummy = zindb * ( srdg1(ji,jj) - srdg2(ji,jj) ) / MAX( ridge_por * vsw(ji,jj), zeps)1195 zindb = MAX( 0._wp , SIGN( 1._wp , vsw(ji,jj) - epsi20 ) ) 1196 zdummy = zindb * ( srdg1(ji,jj) - srdg2(ji,jj) ) / MAX( ridge_por * vsw(ji,jj), epsi20 ) 1276 1197 1277 1198 ztmelts = - tmut * zdummy + rtt … … 1308 1229 ji = indxi(ij) 1309 1230 jj = indxj(ij) 1310 IF( afrac(ji,jj) > kamax + epsi1 1) THEN1231 IF( afrac(ji,jj) > kamax + epsi10 ) THEN 1311 1232 WRITE(numout,*) '' 1312 1233 WRITE(numout,*) ' ardg > a_i' … … 1320 1241 ji = indxi(ij) 1321 1242 jj = indxj(ij) 1322 IF( afrft(ji,jj) > kamax + epsi1 1) THEN1243 IF( afrft(ji,jj) > kamax + epsi10 ) THEN 1323 1244 WRITE(numout,*) '' 1324 1245 WRITE(numout,*) ' arft > a_i' … … 1420 1341 fieldid = ' v_i : limitd_me ' 1421 1342 CALL lim_cons_check (vice_init, vice_final, 1.0e-6, fieldid) 1422 WRITE(numout,*) ' vice_init : ', vice_init(jiindx,jjindx)1423 WRITE(numout,*) ' vice_final : ', vice_final(jiindx,jjindx)1424 1343 1425 1344 CALL lim_column_sum_energy (jpl, nlay_i, e_i, eice_final ) 1426 1345 fieldid = ' e_i : limitd_me ' 1427 1346 CALL lim_cons_check (eice_init, eice_final, 1.0e-2, fieldid) 1428 WRITE(numout,*) ' eice_init : ', eice_init(jiindx,jjindx) 1429 WRITE(numout,*) ' eice_final : ', eice_final(jiindx,jjindx) 1347 1348 DO ji = mi0(jiindx), mi1(jiindx) 1349 DO jj = mj0(jjindx), mj1(jjindx) 1350 WRITE(numout,*) ' vice_init : ', vice_init (ji,jj) 1351 WRITE(numout,*) ' vice_final : ', vice_final(ji,jj) 1352 WRITE(numout,*) ' eice_init : ', eice_init (ji,jj) 1353 WRITE(numout,*) ' eice_final : ', eice_final(ji,jj) 1354 END DO 1355 END DO 1430 1356 ENDIF 1431 1357 ! … … 1536 1462 1537 1463 REAL(wp), POINTER, DIMENSION(:,:) :: zmask ! 2D workspace 1538 1464 REAL(wp) :: zmask_glo 1539 1465 !!gm REAL(wp) :: xtmp ! temporary variable 1540 1466 !!------------------------------------------------------------------- … … 1548 1474 ! Abort model in case of negative area. 1549 1475 !----------------------------------------------------------------- 1550 IF( MINVAL(a_i(:,:,jl)) .LT. -epsi11 .AND. ln_nicep ) THEN1551 DO jj = 1, jpj1552 DO ji = 1, jpi1553 IF ( a_i(ji,jj,jl) .LT. -epsi11 ) THEN1554 WRITE (numout,*) ' ALERTE 98 '1555 WRITE (numout,*) ' Negative ice area: ji, jj, jl: ', ji, jj,jl1556 WRITE (numout,*) ' a_i ', a_i(ji,jj,jl)1557 ENDIF1558 END DO1559 END DO1560 ENDIF1561 1562 1476 icells = 0 1563 zmask = 0._wp1477 zmask(:,:) = 0._wp 1564 1478 DO jj = 1, jpj 1565 1479 DO ji = 1, jpi 1566 IF( ( a_i(ji,jj,jl) .GE. -epsi11 .AND. a_i(ji,jj,jl) .LT. 0._wp ) .OR. & 1567 & ( a_i(ji,jj,jl) .GT. 0._wp .AND. a_i(ji,jj,jl) .LE. 1.0e-11 ) .OR. & 1568 & ( v_i(ji,jj,jl) == 0._wp .AND. a_i(ji,jj,jl) .GT. 0._wp ) .OR. & 1569 & ( v_i(ji,jj,jl) .GT. 0._wp .AND. v_i(ji,jj,jl) .LT. 1.e-12 ) ) zmask(ji,jj) = 1._wp 1570 END DO 1571 END DO 1572 IF( ln_nicep ) WRITE(numout,*) SUM(zmask), ' cells of ice zapped in the ocean ' 1480 IF( ( a_i(ji,jj,jl) >= -epsi10 .AND. a_i(ji,jj,jl) < 0._wp ) .OR. & 1481 & ( a_i(ji,jj,jl) > 0._wp .AND. a_i(ji,jj,jl) <= epsi10 ) .OR. & 1482 & ( v_i(ji,jj,jl) == 0._wp .AND. a_i(ji,jj,jl) > 0._wp ) .OR. & 1483 & ( v_i(ji,jj,jl) > 0._wp .AND. v_i(ji,jj,jl) <= epsi10 ) ) zmask(ji,jj) = 1._wp 1484 END DO 1485 END DO 1486 zmask_glo = glob_sum(zmask) 1487 !IF( ln_nicep .AND. lwp ) WRITE(numout,*) zmask_glo, ' cells of ice zapped in the ocean ' 1573 1488 1574 1489 !----------------------------------------------------------------- … … 1582 1497 !!gm xtmp = xtmp * unit_fac 1583 1498 ! fheat_res(ji,jj) = fheat_res(ji,jj) - xtmp 1584 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * ( 1 - zmask(ji,jj) )1499 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * ( 1._wp - zmask(ji,jj) ) 1585 1500 END DO 1586 1501 END DO … … 1604 1519 !!gm xtmp = ( rhosn*cpic*( rtt-t_s(ji,jj,1,jl) ) + rhosn*lfus ) * r1_rdtice !RB ??????? 1605 1520 1606 t_s(ji,jj,1,jl) = rtt * zmask(ji,jj) + t_s(ji,jj,1,jl) * ( 1 - zmask(ji,jj) )1521 t_s(ji,jj,1,jl) = rtt * zmask(ji,jj) + t_s(ji,jj,1,jl) * ( 1._wp - zmask(ji,jj) ) 1607 1522 1608 1523 !----------------------------------------------------------------- … … 1618 1533 1619 1534 ato_i(ji,jj) = a_i (ji,jj,jl) * zmask(ji,jj) + ato_i(ji,jj) 1620 a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1 - zmask(ji,jj) )1621 v_i (ji,jj,jl) = v_i (ji,jj,jl) * ( 1 - zmask(ji,jj) )1622 v_s (ji,jj,jl) = v_s (ji,jj,jl) * ( 1 - zmask(ji,jj) )1623 t_su (ji,jj,jl) = t_su (ji,jj,jl) * ( 1 - zmask(ji,jj) ) + t_bo(ji,jj) * zmask(ji,jj)1624 oa_i (ji,jj,jl) = oa_i (ji,jj,jl) * ( 1 - zmask(ji,jj) )1625 smv_i(ji,jj,jl) = smv_i(ji,jj,jl) * ( 1 - zmask(ji,jj) )1535 a_i (ji,jj,jl) = a_i (ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) 1536 v_i (ji,jj,jl) = v_i (ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) 1537 v_s (ji,jj,jl) = v_s (ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) 1538 t_su (ji,jj,jl) = t_su (ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) + t_bo(ji,jj) * zmask(ji,jj) 1539 oa_i (ji,jj,jl) = oa_i (ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) 1540 smv_i(ji,jj,jl) = smv_i(ji,jj,jl) * ( 1._wp - zmask(ji,jj) ) 1626 1541 ! 1627 1542 END DO
Note: See TracChangeset
for help on using the changeset viewer.