Changeset 10727 for utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/domzgr.F90
- Timestamp:
- 2019-02-27T17:02:02+01:00 (5 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
utils/tools_AGRIF_CMEMS_2020/DOMAINcfg/src/domzgr.F90
r10725 r10727 17 17 !! 3.4 ! 2012-08 (J. Siddorn) added Siddorn and Furner stretching function 18 18 !! 3.4 ! 2012-12 (R. Bourdalle-Badie and G. Reffray) modify C1D case 19 !! 3.6 ! 2014-11 (P. Mathiot and C. Harris) add ice shelf capabilitye 19 !! 3.6 ! 2014-11 (P. Mathiot and C. Harris) add ice shelf capabilitye 20 20 !! 3.? ! 2015-11 (H. Liu) Modifications for Wetting/Drying 21 21 !!---------------------------------------------------------------------- … … 37 37 USE oce ! ocean variables 38 38 USE dom_oce ! ocean domain 39 USE closea ! closed seas39 ! USE closea ! closed seas 40 40 ! 41 41 USE in_out_manager ! I/O manager … … 45 45 USE wrk_nemo ! Memory allocation 46 46 USE timing ! Timing 47 USE dombat 47 48 48 49 IMPLICIT NONE … … 59 60 REAL(wp) :: rn_rmax ! maximum cut-off r-value allowed (0<rn_rmax<1) 60 61 REAL(wp) :: rn_hc ! Critical depth for transition from sigma to stretched coordinates 62 INTEGER , PUBLIC :: ntopo !: = 0/1 ,compute/read the bathymetry file 63 REAL(wp), PUBLIC :: e3zps_min !: miminum thickness for partial steps (meters) 64 REAL(wp), PUBLIC :: e3zps_rat !: minimum thickness ration for partial steps 65 INTEGER, PUBLIC :: nperio !: type of lateral boundary condition 66 61 67 ! Song and Haidvogel 1994 stretching parameters 62 68 REAL(wp) :: rn_theta ! surface control parameter (0<=rn_theta<=20) … … 115 121 !!---------------------------------------------------------------------- 116 122 ! 117 IF( nn_timing == 1 ) CALL timing_start('dom_zgr')123 ! IF( nn_timing == 1 ) CALL timing_start('dom_zgr') 118 124 ! 119 125 REWIND( numnam_ref ) ! Namelist namzgr in reference namelist : Vertical coordinate … … 183 189 ENDIF 184 190 ! 185 IF( nn_timing == 1 ) CALL timing_stop('dom_zgr')191 ! IF( nn_timing == 1 ) CALL timing_stop('dom_zgr') 186 192 ! 187 193 END SUBROUTINE dom_zgr … … 217 223 !!---------------------------------------------------------------------- 218 224 ! 219 IF( nn_timing == 1 ) CALL timing_start('zgr_z')225 ! IF( nn_timing == 1 ) CALL timing_start('zgr_z') 220 226 ! 221 227 ! Set variables from parameters … … 349 355 END DO 350 356 ! 351 IF( nn_timing == 1 ) CALL timing_stop('zgr_z')357 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_z') 352 358 ! 353 359 END SUBROUTINE zgr_z … … 395 401 !!---------------------------------------------------------------------- 396 402 ! 397 IF( nn_timing == 1 ) CALL timing_start('zgr_bat')403 ! IF( nn_timing == 1 ) CALL timing_start('zgr_bat') 398 404 ! 399 405 IF(lwp) WRITE(numout,*) … … 516 522 ! 517 523 ! ! ================ ! 518 ELSEIF( ntopo == 1 ) THEN ! read in file ! (over the local domain)524 ELSEIF( ntopo == 1 .OR. ntopo ==2 ) THEN ! read in file ! (over the local domain) 519 525 ! ! ================ ! 520 526 ! … … 554 560 ENDIF 555 561 IF( ln_zps .OR. ln_sco ) THEN ! zps or sco : read meter bathymetry 556 CALL iom_open ( 'bathy_meter.nc', inum ) 557 IF ( ln_isfcav ) THEN 558 CALL iom_get ( inum, jpdom_data, 'Bathymetry_isf', bathy, lrowattr=.false. ) 562 #if defined key_agrif 563 IF (agrif_root()) THEN 564 #endif 565 IF( ntopo == 1) THEN 566 CALL iom_open ( 'bathy_meter.nc', inum ) 567 IF ( ln_isfcav ) THEN 568 CALL iom_get ( inum, jpdom_data, 'Bathymetry_isf', bathy, lrowattr=.false. ) 569 ELSE 570 CALL iom_get ( inum, jpdom_data, 'Bathymetry' , bathy, lrowattr=ln_use_jattr ) 571 END IF 572 CALL iom_close( inum ) 559 573 ELSE 560 CALL iom_get ( inum, jpdom_data, 'Bathymetry' , bathy, lrowattr=ln_use_jattr ) 561 END IF 562 CALL iom_close( inum ) 574 CALL dom_bat 575 ENDIF 576 #if defined key_agrif 577 ELSE 578 IF( ntopo == 1) THEN 579 CALL agrif_create_bathy_meter() 580 ELSE 581 CALL dom_bat 582 ENDIF 583 ENDIF 584 #endif 563 585 ! 564 586 ! initialisation isf variables … … 611 633 ENDIF 612 634 ! 613 IF( nn_closea == 0 ) CALL clo_bat( bathy, mbathy ) !== NO closed seas or lakes ==!635 ! IF( nn_closea == 0 ) CALL clo_bat( bathy, mbathy ) !== NO closed seas or lakes ==! 614 636 ! 615 637 IF ( .not. ln_sco ) THEN !== set a minimum depth ==! … … 624 646 ENDIF 625 647 ! 626 IF( nn_timing == 1 ) CALL timing_stop('zgr_bat')648 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_bat') 627 649 ! 628 650 END SUBROUTINE zgr_bat … … 708 730 !!---------------------------------------------------------------------- 709 731 ! 710 IF( nn_timing == 1 ) CALL timing_start('zgr_bat_ctl')732 ! IF( nn_timing == 1 ) CALL timing_start('zgr_bat_ctl') 711 733 ! 712 734 CALL wrk_alloc( jpi, jpj, zbathy ) … … 738 760 END DO 739 761 END DO 740 IF( lk_mpp ) CALL mpp_sum( icompt )762 ! IF( lk_mpp ) CALL mpp_sum( icompt ) 741 763 IF( icompt == 0 ) THEN 742 764 IF(lwp) WRITE(numout,*)' no isolated ocean grid points' … … 746 768 IF( lk_mpp ) THEN 747 769 zbathy(:,:) = FLOAT( mbathy(:,:) ) 748 CALL lbc_lnk( zbathy, 'T', 1._wp )770 CALL lbc_lnk( 'toto',zbathy, 'T', 1._wp ) 749 771 mbathy(:,:) = INT( zbathy(:,:) ) 750 772 ENDIF … … 784 806 ! ... mono- or macro-tasking: T-point, >0, 2D array, no slab 785 807 zbathy(:,:) = FLOAT( mbathy(:,:) ) 786 CALL lbc_lnk( zbathy, 'T', 1._wp )808 CALL lbc_lnk( 'toto',zbathy, 'T', 1._wp ) 787 809 mbathy(:,:) = INT( zbathy(:,:) ) 788 810 ENDIF … … 805 827 CALL wrk_dealloc( jpi, jpj, zbathy ) 806 828 ! 807 IF( nn_timing == 1 ) CALL timing_stop('zgr_bat_ctl')829 !! IF( nn_timing == 1 ) CALL timing_stop('zgr_bat_ctl') 808 830 ! 809 831 END SUBROUTINE zgr_bat_ctl … … 826 848 !!---------------------------------------------------------------------- 827 849 ! 828 IF( nn_timing == 1 ) CALL timing_start('zgr_bot_level')850 ! IF( nn_timing == 1 ) CALL timing_start('zgr_bot_level') 829 851 ! 830 852 CALL wrk_alloc( jpi, jpj, zmbk ) … … 844 866 END DO 845 867 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 846 zmbk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk( zmbk,'U',1.) ; mbku (:,:) = MAX( INT( zmbk(:,:) ), 1 )847 zmbk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk( zmbk,'V',1.) ; mbkv (:,:) = MAX( INT( zmbk(:,:) ), 1 )868 zmbk(:,:) = REAL( mbku(:,:), wp ) ; CALL lbc_lnk('toto',zmbk,'U',1.) ; mbku (:,:) = MAX( INT( zmbk(:,:) ), 1 ) 869 zmbk(:,:) = REAL( mbkv(:,:), wp ) ; CALL lbc_lnk('toto',zmbk,'V',1.) ; mbkv (:,:) = MAX( INT( zmbk(:,:) ), 1 ) 848 870 ! 849 871 CALL wrk_dealloc( jpi, jpj, zmbk ) 850 872 ! 851 IF( nn_timing == 1 ) CALL timing_stop('zgr_bot_level')873 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_bot_level') 852 874 ! 853 875 END SUBROUTINE zgr_bot_level … … 870 892 !!---------------------------------------------------------------------- 871 893 ! 872 IF( nn_timing == 1 ) CALL timing_start('zgr_top_level')894 ! IF( nn_timing == 1 ) CALL timing_start('zgr_top_level') 873 895 ! 874 896 CALL wrk_alloc( jpi, jpj, zmik ) … … 889 911 890 912 ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 891 zmik(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk( zmik,'U',1.) ; miku (:,:) = MAX( INT( zmik(:,:) ), 1 )892 zmik(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk( zmik,'V',1.) ; mikv (:,:) = MAX( INT( zmik(:,:) ), 1 )893 zmik(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk( zmik,'F',1.) ; mikf (:,:) = MAX( INT( zmik(:,:) ), 1 )913 zmik(:,:) = REAL( miku(:,:), wp ) ; CALL lbc_lnk('toto',zmik,'U',1.) ; miku (:,:) = MAX( INT( zmik(:,:) ), 1 ) 914 zmik(:,:) = REAL( mikv(:,:), wp ) ; CALL lbc_lnk('toto',zmik,'V',1.) ; mikv (:,:) = MAX( INT( zmik(:,:) ), 1 ) 915 zmik(:,:) = REAL( mikf(:,:), wp ) ; CALL lbc_lnk('toto',zmik,'F',1.) ; mikf (:,:) = MAX( INT( zmik(:,:) ), 1 ) 894 916 ! 895 917 CALL wrk_dealloc( jpi, jpj, zmik ) 896 918 ! 897 IF( nn_timing == 1 ) CALL timing_stop('zgr_top_level')919 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_top_level') 898 920 ! 899 921 END SUBROUTINE zgr_top_level … … 911 933 !!---------------------------------------------------------------------- 912 934 ! 913 IF( nn_timing == 1 ) CALL timing_start('zgr_zco')935 ! IF( nn_timing == 1 ) CALL timing_start('zgr_zco') 914 936 ! 915 937 DO jk = 1, jpk … … 926 948 END DO 927 949 ! 928 IF( nn_timing == 1 ) CALL timing_stop('zgr_zco')950 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_zco') 929 951 ! 930 952 END SUBROUTINE zgr_zco … … 985 1007 !!--------------------------------------------------------------------- 986 1008 ! 987 IF( nn_timing == 1 ) CALL timing_start('zgr_zps')1009 ! IF( nn_timing == 1 ) CALL timing_start('zgr_zps') 988 1010 ! 989 1011 CALL wrk_alloc( jpi,jpj,jpk, zprt ) … … 1118 1140 END IF 1119 1141 1120 CALL lbc_lnk( e3u_0 , 'U', 1._wp ) ; CALL lbc_lnk(e3uw_0, 'U', 1._wp ) ! lateral boundary conditions1121 CALL lbc_lnk( e3v_0 , 'V', 1._wp ) ; CALL lbc_lnk(e3vw_0, 'V', 1._wp )1142 CALL lbc_lnk('toto', e3u_0 , 'U', 1._wp ) ; CALL lbc_lnk('toto', e3uw_0, 'U', 1._wp ) ! lateral boundary conditions 1143 CALL lbc_lnk( 'toto',e3v_0 , 'V', 1._wp ) ; CALL lbc_lnk('toto', e3vw_0, 'V', 1._wp ) 1122 1144 ! 1123 1145 … … 1140 1162 END DO 1141 1163 END DO 1142 CALL lbc_lnk( e3f_0, 'F', 1._wp ) ! Lateral boundary conditions1164 CALL lbc_lnk('toto', e3f_0, 'F', 1._wp ) ! Lateral boundary conditions 1143 1165 ! 1144 1166 DO jk = 1, jpk ! set to z-scale factor if zero (i.e. along closed boundaries) … … 1183 1205 CALL wrk_dealloc( jpi,jpj,jpk, zprt ) 1184 1206 ! 1185 IF( nn_timing == 1 ) CALL timing_stop('zgr_zps')1207 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_zps') 1186 1208 ! 1187 1209 END SUBROUTINE zgr_zps … … 1217 1239 !!--------------------------------------------------------------------- 1218 1240 ! 1219 IF( nn_timing == 1 ) CALL timing_start('zgr_isf')1241 !! IF( nn_timing == 1 ) CALL timing_start('zgr_isf') 1220 1242 ! 1221 1243 CALL wrk_alloc( jpi,jpj, zbathy, zmask, zrisfdep) … … 1264 1286 IF( lk_mpp ) THEN 1265 1287 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1266 CALL lbc_lnk( zbathy, 'T', 1. )1288 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1267 1289 misfdep(:,:) = INT( zbathy(:,:) ) 1268 1290 1269 CALL lbc_lnk( risfdep,'T', 1. )1270 CALL lbc_lnk( bathy, 'T', 1. )1291 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1292 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1271 1293 1272 1294 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1273 CALL lbc_lnk( zbathy, 'T', 1. )1295 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1274 1296 mbathy(:,:) = INT( zbathy(:,:) ) 1275 1297 ENDIF … … 1385 1407 IF( lk_mpp ) THEN 1386 1408 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1387 CALL lbc_lnk( zbathy, 'T', 1. )1409 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1388 1410 misfdep(:,:) = INT( zbathy(:,:) ) 1389 1411 1390 CALL lbc_lnk( risfdep,'T', 1. )1391 CALL lbc_lnk( bathy, 'T', 1. )1412 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1413 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1392 1414 1393 1415 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1394 CALL lbc_lnk( zbathy, 'T', 1. )1416 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1395 1417 mbathy(:,:) = INT( zbathy(:,:) ) 1396 1418 ENDIF … … 1422 1444 IF( lk_mpp ) THEN 1423 1445 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1424 CALL lbc_lnk( zbathy, 'T', 1. )1446 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1425 1447 misfdep(:,:) = INT( zbathy(:,:) ) 1426 1448 1427 CALL lbc_lnk( risfdep,'T', 1. )1428 CALL lbc_lnk( bathy, 'T', 1. )1449 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1450 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1429 1451 1430 1452 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1431 CALL lbc_lnk( zbathy, 'T', 1. )1453 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1432 1454 mbathy(:,:) = INT( zbathy(:,:) ) 1433 1455 ENDIF … … 1459 1481 IF( lk_mpp ) THEN 1460 1482 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1461 CALL lbc_lnk( zbathy, 'T', 1. )1483 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1462 1484 misfdep(:,:) = INT( zbathy(:,:) ) 1463 1485 1464 CALL lbc_lnk( risfdep,'T', 1. )1465 CALL lbc_lnk( bathy, 'T', 1. )1486 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1487 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1466 1488 1467 1489 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1468 CALL lbc_lnk( zbathy, 'T', 1. )1490 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1469 1491 mbathy(:,:) = INT( zbathy(:,:) ) 1470 1492 ENDIF … … 1496 1518 IF( lk_mpp ) THEN 1497 1519 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1498 CALL lbc_lnk( zbathy, 'T', 1. )1520 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1499 1521 misfdep(:,:) = INT( zbathy(:,:) ) 1500 1522 1501 CALL lbc_lnk( risfdep,'T', 1. )1502 CALL lbc_lnk( bathy, 'T', 1. )1523 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1524 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1503 1525 1504 1526 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1505 CALL lbc_lnk( zbathy, 'T', 1. )1527 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1506 1528 mbathy(:,:) = INT( zbathy(:,:) ) 1507 1529 ENDIF … … 1533 1555 IF( lk_mpp ) THEN 1534 1556 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1535 CALL lbc_lnk( zbathy, 'T', 1. )1557 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1536 1558 misfdep(:,:) = INT( zbathy(:,:) ) 1537 1559 1538 CALL lbc_lnk( risfdep,'T', 1. )1539 CALL lbc_lnk( bathy, 'T', 1. )1560 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1561 CALL lbc_lnk('toto', bathy, 'T', 1. ) 1540 1562 1541 1563 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1542 CALL lbc_lnk( zbathy, 'T', 1. )1564 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1543 1565 mbathy(:,:) = INT( zbathy(:,:) ) 1544 1566 ENDIF … … 1565 1587 IF( lk_mpp ) THEN 1566 1588 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1567 CALL lbc_lnk( zbathy, 'T', 1. )1589 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1568 1590 misfdep(:,:) = INT( zbathy(:,:) ) 1569 1591 1570 CALL lbc_lnk( risfdep,'T', 1. )1571 CALL lbc_lnk( bathy, 'T', 1. )1592 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1593 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1572 1594 1573 1595 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1574 CALL lbc_lnk( zbathy, 'T', 1. )1596 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1575 1597 mbathy(:,:) = INT( zbathy(:,:) ) 1576 1598 ENDIF … … 1601 1623 IF( lk_mpp ) THEN 1602 1624 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1603 CALL lbc_lnk( zbathy, 'T', 1. )1625 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1604 1626 misfdep(:,:) = INT( zbathy(:,:) ) 1605 1627 1606 CALL lbc_lnk( risfdep, 'T', 1. )1607 CALL lbc_lnk( bathy, 'T', 1. )1628 CALL lbc_lnk( 'toto',risfdep, 'T', 1. ) 1629 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1608 1630 1609 1631 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1610 CALL lbc_lnk( zbathy, 'T', 1. )1632 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1611 1633 mbathy(:,:) = INT( zbathy(:,:) ) 1612 1634 ENDIF … … 1634 1656 IF( lk_mpp ) THEN 1635 1657 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1636 CALL lbc_lnk( zbathy, 'T', 1. )1658 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1637 1659 misfdep(:,:) = INT( zbathy(:,:) ) 1638 1660 1639 CALL lbc_lnk( risfdep, 'T', 1. )1640 CALL lbc_lnk( bathy, 'T', 1. )1661 CALL lbc_lnk( 'toto',risfdep, 'T', 1. ) 1662 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1641 1663 1642 1664 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1643 CALL lbc_lnk( zbathy, 'T', 1. )1665 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1644 1666 mbathy(:,:) = INT( zbathy(:,:) ) 1645 1667 ENDIF … … 1654 1676 IF( lk_mpp ) THEN 1655 1677 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1656 CALL lbc_lnk( zbathy, 'T', 1. )1678 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1657 1679 misfdep(:,:) = INT( zbathy(:,:) ) 1658 1680 1659 CALL lbc_lnk( risfdep, 'T', 1. )1660 CALL lbc_lnk( bathy, 'T', 1. )1681 CALL lbc_lnk('toto', risfdep, 'T', 1. ) 1682 CALL lbc_lnk('toto', bathy, 'T', 1. ) 1661 1683 1662 1684 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1663 CALL lbc_lnk( zbathy, 'T', 1. )1685 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1664 1686 mbathy(:,:) = INT( zbathy(:,:) ) 1665 1687 ENDIF … … 1674 1696 IF( lk_mpp ) THEN 1675 1697 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1676 CALL lbc_lnk( zbathy, 'T', 1. )1698 CALL lbc_lnk('toto', zbathy, 'T', 1. ) 1677 1699 misfdep(:,:) = INT( zbathy(:,:) ) 1678 1700 1679 CALL lbc_lnk( risfdep,'T', 1. )1680 CALL lbc_lnk( bathy, 'T', 1. )1701 CALL lbc_lnk('toto', risfdep,'T', 1. ) 1702 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1681 1703 1682 1704 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1683 CALL lbc_lnk( zbathy, 'T', 1. )1705 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1684 1706 mbathy(:,:) = INT( zbathy(:,:) ) 1685 1707 ENDIF … … 1694 1716 IF( lk_mpp ) THEN 1695 1717 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1696 CALL lbc_lnk( zbathy, 'T', 1. )1718 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1697 1719 misfdep(:,:) = INT( zbathy(:,:) ) 1698 1720 1699 CALL lbc_lnk( risfdep,'T', 1. )1700 CALL lbc_lnk( bathy, 'T', 1. )1721 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1722 CALL lbc_lnk('toto', bathy, 'T', 1. ) 1701 1723 1702 1724 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1703 CALL lbc_lnk( zbathy, 'T', 1. )1725 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1704 1726 mbathy(:,:) = INT( zbathy(:,:) ) 1705 1727 ENDIF … … 1714 1736 IF( lk_mpp ) THEN 1715 1737 zbathy(:,:) = FLOAT( misfdep(:,:) ) 1716 CALL lbc_lnk( zbathy, 'T', 1. )1738 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1717 1739 misfdep(:,:) = INT( zbathy(:,:) ) 1718 1740 1719 CALL lbc_lnk( risfdep,'T', 1. )1720 CALL lbc_lnk( bathy, 'T', 1. )1741 CALL lbc_lnk( 'toto',risfdep,'T', 1. ) 1742 CALL lbc_lnk( 'toto',bathy, 'T', 1. ) 1721 1743 1722 1744 zbathy(:,:) = FLOAT( mbathy(:,:) ) 1723 CALL lbc_lnk( zbathy, 'T', 1. )1745 CALL lbc_lnk( 'toto',zbathy, 'T', 1. ) 1724 1746 mbathy(:,:) = INT( zbathy(:,:) ) 1725 1747 ENDIF … … 1827 1849 ! ... on ik / ik-1 1828 1850 e3w_0 (ji,jj,ik ) = e3t_0 (ji,jj,ik) !2._wp * (gdept_0(ji,jj,ik) - gdepw_0(ji,jj,ik)) 1851 gdept_0(ji,jj,ik-1) = gdept_0(ji,jj,ik) - e3w_0(ji,jj,ik) 1829 1852 e3t_0 (ji,jj,ik-1) = gdepw_0(ji,jj,ik) - gdepw_1d(ik-1) 1830 ! The next line isn't required and doesn't affect results - included for consistency with bathymetry code 1831 gdep t_0(ji,jj,ik-1) = gdept_1d(ik-1)1853 e3w_0 (ji,jj,ik-1) = gdept_0(ji,jj,ik-1) - gdept_1d(ik-2) 1854 gdepw_0(ji,jj,ik-1) = gdepw_0(ji,jj,ik) - e3t_0(ji,jj,ik-1) 1832 1855 ENDIF 1833 1856 END DO … … 1857 1880 CALL wrk_dealloc( jpi, jpj, zmisfdep, zmbathy ) 1858 1881 ! 1859 IF( nn_timing == 1 ) CALL timing_stop('zgr_isf')1882 ! IF( nn_timing == 1 ) CALL timing_stop('zgr_isf') 1860 1883 ! 1861 1884 END SUBROUTINE zgr_isf … … 1919 1942 !!---------------------------------------------------------------------- 1920 1943 ! 1921 IF( nn_timing == 1 ) CALL timing_start('zgr_sco')1944 !! IF( nn_timing == 1 ) CALL timing_start('zgr_sco') 1922 1945 ! 1923 1946 CALL wrk_alloc( jpi,jpj, zenv, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) … … 2001 2024 2002 2025 ! apply lateral boundary condition CAUTION: keep the value when the lbc field is zero 2003 CALL lbc_lnk( zenv, 'T', 1._wp, 'no0' )2026 CALL lbc_lnk( 'toto',zenv, 'T', 1._wp, 'no0' ) 2004 2027 ! 2005 2028 ! smooth the bathymetry (if required) … … 2055 2078 END DO 2056 2079 END DO 2057 IF( lk_mpp ) CALL mpp_max( zrmax ) ! max over the global domain2080 ! IF( lk_mpp ) CALL mpp_max( zrmax ) ! max over the global domain 2058 2081 ! 2059 2082 IF(lwp)WRITE(numout,*) 'zgr_sco : iter= ',jl, ' rmax= ', zrmax … … 2065 2088 END DO 2066 2089 ! apply lateral boundary condition CAUTION: keep the value when the lbc field is zero 2067 CALL lbc_lnk( zenv, 'T', 1._wp, 'no0' )2090 CALL lbc_lnk( 'toto',zenv, 'T', 1._wp, 'no0' ) 2068 2091 ! ! ================ ! 2069 2092 END DO ! End loop ! … … 2109 2132 ! Apply lateral boundary condition 2110 2133 !!gm ! CAUTION: retain non zero value in the initial file this should be OK for orca cfg, not for EEL 2111 zhbat(:,:) = hbatu(:,:) ; CALL lbc_lnk( hbatu, 'U', 1._wp )2134 zhbat(:,:) = hbatu(:,:) ; CALL lbc_lnk('toto', hbatu, 'U', 1._wp ) 2112 2135 DO jj = 1, jpj 2113 2136 DO ji = 1, jpi … … 2119 2142 END DO 2120 2143 END DO 2121 zhbat(:,:) = hbatv(:,:) ; CALL lbc_lnk( hbatv, 'V', 1._wp )2144 zhbat(:,:) = hbatv(:,:) ; CALL lbc_lnk('toto', hbatv, 'V', 1._wp ) 2122 2145 DO jj = 1, jpj 2123 2146 DO ji = 1, jpi … … 2128 2151 END DO 2129 2152 END DO 2130 zhbat(:,:) = hbatf(:,:) ; CALL lbc_lnk( hbatf, 'F', 1._wp )2153 zhbat(:,:) = hbatf(:,:) ; CALL lbc_lnk('toto', hbatf, 'F', 1._wp ) 2131 2154 DO jj = 1, jpj 2132 2155 DO ji = 1, jpi … … 2176 2199 ENDIF 2177 2200 2178 CALL lbc_lnk( e3t_0 , 'T', 1._wp )2179 CALL lbc_lnk( e3u_0 , 'U', 1._wp )2180 CALL lbc_lnk( e3v_0 , 'V', 1._wp )2181 CALL lbc_lnk( e3f_0 , 'F', 1._wp )2182 CALL lbc_lnk( e3w_0 , 'W', 1._wp )2183 CALL lbc_lnk( e3uw_0, 'U', 1._wp )2184 CALL lbc_lnk( e3vw_0, 'V', 1._wp )2201 CALL lbc_lnk( 'toto',e3t_0 , 'T', 1._wp ) 2202 CALL lbc_lnk( 'toto',e3u_0 , 'U', 1._wp ) 2203 CALL lbc_lnk( 'toto',e3v_0 , 'V', 1._wp ) 2204 CALL lbc_lnk( 'toto',e3f_0 , 'F', 1._wp ) 2205 CALL lbc_lnk( 'toto',e3w_0 , 'W', 1._wp ) 2206 CALL lbc_lnk( 'toto',e3uw_0, 'U', 1._wp ) 2207 CALL lbc_lnk('toto', e3vw_0, 'V', 1._wp ) 2185 2208 ! 2186 2209 WHERE( e3t_0 (:,:,:) == 0._wp ) e3t_0 (:,:,:) = 1._wp … … 2314 2337 CALL wrk_dealloc( jpi, jpj, zenv, ztmp, zmsk, zri, zrj, zhbat , ztmpi1, ztmpi2, ztmpj1, ztmpj2 ) 2315 2338 ! 2316 IF( nn_timing == 1 ) CALL timing_stop('zgr_sco')2339 !!! IF( nn_timing == 1 ) CALL timing_stop('zgr_sco') 2317 2340 ! 2318 2341 END SUBROUTINE zgr_sco … … 2585 2608 ENDDO 2586 2609 ! 2587 CALL lbc_lnk( e3t_0 ,'T',1.) ; CALL lbc_lnk(e3u_0 ,'T',1.)2588 CALL lbc_lnk( e3v_0 ,'T',1.) ; CALL lbc_lnk(e3f_0 ,'T',1.)2589 CALL lbc_lnk( e3w_0 ,'T',1.)2590 CALL lbc_lnk( e3uw_0,'T',1.) ; CALL lbc_lnk(e3vw_0,'T',1.)2610 CALL lbc_lnk('toto',e3t_0 ,'T',1.) ; CALL lbc_lnk('toto',e3u_0 ,'T',1.) 2611 CALL lbc_lnk('toto',e3v_0 ,'T',1.) ; CALL lbc_lnk('toto',e3f_0 ,'T',1.) 2612 CALL lbc_lnk('toto',e3w_0 ,'T',1.) 2613 CALL lbc_lnk('toto',e3uw_0,'T',1.) ; CALL lbc_lnk('toto',e3vw_0,'T',1.) 2591 2614 ! 2592 2615 CALL wrk_dealloc( jpi,jpj,jpk, z_gsigw3, z_gsigt3, z_gsi3w3 )
Note: See TracChangeset
for help on using the changeset viewer.