Changeset 12080 for utils/tools/SIREN/src/domain.f90
- Timestamp:
- 2019-12-06T10:30:14+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/tools/SIREN/src/domain.f90
r9598 r12080 2 2 ! NEMO system team, System and Interface for oceanic RElocable Nesting 3 3 !---------------------------------------------------------------------- 4 !5 ! MODULE: dom6 4 ! 7 5 ! DESCRIPTION: … … 119 117 !> @author 120 118 !> J.Paul 121 ! REVISION HISTORY:119 !> 122 120 !> @date November, 2013 - Initial Version 123 121 !> @date September, 2014 … … 127 125 !> - use mpp file structure instead of file 128 126 !> 129 !> @note Software governed by the CeCILL licence ( ./LICENSE)127 !> @note Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 130 128 !---------------------------------------------------------------------- 131 129 MODULE dom 130 132 131 USE kind ! F90 kind parameter 133 132 USE global ! global parameter … … 137 136 USE var ! variable manager 138 137 USE mpp ! mpp file manager 138 139 139 IMPLICIT NONE 140 140 ! NOTE_avoid_public_variables_if_possible … … 211 211 212 212 CONTAINS 213 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 214 FUNCTION dom__copy_unit(td_dom) & 215 & RESULT (tf_dom) 213 216 !------------------------------------------------------------------- 214 217 !> @brief … … 229 232 !> @return copy of input domain structure 230 233 !------------------------------------------------------------------- 231 FUNCTION dom__copy_unit( td_dom ) 232 IMPLICIT NONE 234 235 IMPLICIT NONE 236 233 237 ! Argument 234 238 TYPE(TDOM), INTENT(IN) :: td_dom 239 235 240 ! function 236 TYPE(TDOM) :: dom__copy_unit241 TYPE(TDOM) :: tf_dom 237 242 238 243 ! local variable 239 244 !---------------------------------------------------------------- 240 245 241 dom__copy_unit=td_dom246 tf_dom=td_dom 242 247 243 END FUNCTION dom__copy_unit 248 END FUNCTION dom__copy_unit 249 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 SUBROUTINE dom_print(td_dom) 244 251 !------------------------------------------------------------------- 245 252 !> @brief This subroutine print some information about domain strucutre. 246 ! 253 !> 247 254 !> @author J.Paul 248 255 !> @date November, 2013 - Initial Version 249 ! 256 !> 250 257 !> @param[inout] td_dom dom structure 251 258 !------------------------------------------------------------------- 252 SUBROUTINE dom_print(td_dom) 253 IMPLICIT NONE 259 260 IMPLICIT NONE 261 254 262 ! Argument 255 263 TYPE(TDOM), INTENT(IN) :: td_dom … … 284 292 & " j-direction extra point for interpolation ",td_dom%i_jextra(:) 285 293 286 END SUBROUTINE dom_print 294 END SUBROUTINE dom_print 295 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 296 FUNCTION dom__init_mpp(td_mpp, id_imin, id_imax, id_jmin, id_jmax, cd_card) & 297 & RESULT (tf_dom) 287 298 !------------------------------------------------------------------- 288 299 !> @brief … … 292 303 !> sub domain indices are computed, taking into account coarse grid 293 304 !> periodicity, pivot point, and East-West overlap. 294 ! 305 !> 295 306 !> @author J.Paul 296 307 !> @date June, 2013 - Initial Version … … 310 321 !> @return domain structure 311 322 !------------------------------------------------------------------- 312 TYPE(TDOM) FUNCTION dom__init_mpp( td_mpp, & 313 & id_imin, id_imax, id_jmin, id_jmax, & 314 & cd_card ) 315 IMPLICIT NONE 323 324 IMPLICIT NONE 325 316 326 ! Argument 317 327 TYPE(TMPP) , INTENT(IN) :: td_mpp … … 323 333 324 334 CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: cd_card 335 336 ! function 337 TYPE(TDOM) :: tf_dom 338 325 339 !local variable 326 340 !---------------------------------------------------------------- 327 341 328 342 ! clean domain structure 329 CALL dom_clean( dom__init_mpp)343 CALL dom_clean(tf_dom) 330 344 331 345 IF( .NOT. ASSOCIATED(td_mpp%t_proc) )THEN … … 342 356 SELECT CASE(TRIM(cd_card)) 343 357 CASE('north') 344 dom__init_mpp%i_bdy=jp_north358 tf_dom%i_bdy=jp_north 345 359 CASE('south') 346 dom__init_mpp%i_bdy=jp_south360 tf_dom%i_bdy=jp_south 347 361 CASE('east') 348 dom__init_mpp%i_bdy=jp_east362 tf_dom%i_bdy=jp_east 349 363 CASE('west') 350 dom__init_mpp%i_bdy=jp_west364 tf_dom%i_bdy=jp_west 351 365 CASE DEFAULT 352 366 ! no boundary 353 dom__init_mpp%i_bdy=0367 tf_dom%i_bdy=0 354 368 END SELECT 355 369 ELSE 356 370 ! no boundary 357 dom__init_mpp%i_bdy=0371 tf_dom%i_bdy=0 358 372 ENDIF 359 373 360 374 ! use global dimension define by mpp file 361 dom__init_mpp%t_dim0(:) = dim_copy(td_mpp%t_dim(:))375 tf_dom%t_dim0(:) = dim_copy(td_mpp%t_dim(:)) 362 376 363 377 IF( td_mpp%i_perio < 0 .OR. td_mpp%i_perio > 6 )THEN … … 366 380 & ") you should use grid_get_perio to compute it") 367 381 ELSE 368 dom__init_mpp%i_perio0=td_mpp%i_perio382 tf_dom%i_perio0=td_mpp%i_perio 369 383 ENDIF 370 384 371 385 ! global domain pivot point 372 SELECT CASE( dom__init_mpp%i_perio0)386 SELECT CASE(tf_dom%i_perio0) 373 387 CASE(3,4) 374 dom__init_mpp%i_pivot = 0388 tf_dom%i_pivot = 0 375 389 CASE(5,6) 376 dom__init_mpp%i_pivot = 1390 tf_dom%i_pivot = 1 377 391 CASE DEFAULT 378 dom__init_mpp%i_pivot = 0392 tf_dom%i_pivot = 0 379 393 END SELECT 380 394 381 395 ! add ghost cell factor of global domain 382 dom__init_mpp%i_ghost0(:,:)=0383 SELECT CASE( dom__init_mpp%i_perio0)396 tf_dom%i_ghost0(:,:)=0 397 SELECT CASE(tf_dom%i_perio0) 384 398 CASE(0) 385 dom__init_mpp%i_ghost0(:,:)=1399 tf_dom%i_ghost0(:,:)=1 386 400 CASE(1) 387 dom__init_mpp%i_ghost0(jp_J,:)=1401 tf_dom%i_ghost0(jp_J,:)=1 388 402 CASE(2) 389 dom__init_mpp%i_ghost0(jp_I,:)=1390 dom__init_mpp%i_ghost0(jp_J,2)=1403 tf_dom%i_ghost0(jp_I,:)=1 404 tf_dom%i_ghost0(jp_J,2)=1 391 405 CASE(3,5) 392 dom__init_mpp%i_ghost0(jp_I,:)=1393 dom__init_mpp%i_ghost0(jp_J,1)=1406 tf_dom%i_ghost0(jp_I,:)=1 407 tf_dom%i_ghost0(jp_J,1)=1 394 408 CASE(4,6) 395 dom__init_mpp%i_ghost0(jp_J,1)=1409 tf_dom%i_ghost0(jp_J,1)=1 396 410 END SELECT 397 411 398 412 ! look for EW overlap 399 dom__init_mpp%i_ew0=td_mpp%i_ew413 tf_dom%i_ew0=td_mpp%i_ew 400 414 401 415 ! initialise domain as global 402 dom__init_mpp%i_imin = 1403 dom__init_mpp%i_imax = dom__init_mpp%t_dim0(1)%i_len404 405 dom__init_mpp%i_jmin = 1406 dom__init_mpp%i_jmax = dom__init_mpp%t_dim0(2)%i_len416 tf_dom%i_imin = 1 417 tf_dom%i_imax = tf_dom%t_dim0(1)%i_len 418 419 tf_dom%i_jmin = 1 420 tf_dom%i_jmax = tf_dom%t_dim0(2)%i_len 407 421 408 422 ! sub domain dimension 409 dom__init_mpp%t_dim(:) = dim_copy(td_mpp%t_dim(:))423 tf_dom%t_dim(:) = dim_copy(td_mpp%t_dim(:)) 410 424 411 425 ! define sub domain indices 412 CALL dom__define( dom__init_mpp, & 413 & id_imin, id_imax, id_jmin, id_jmax ) 426 CALL dom__define(tf_dom, id_imin, id_imax, id_jmin, id_jmax) 414 427 415 428 ENDIF 416 429 417 430 END FUNCTION dom__init_mpp 431 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 FUNCTION dom__init_file(td_file, id_imin, id_imax, id_jmin, id_jmax, cd_card) & 433 & RESULT (tf_dom) 418 434 !------------------------------------------------------------------- 419 435 !> @brief … … 423 439 !> sub domain indices are computed, taking into account coarse grid 424 440 !> periodicity, pivot point, and East-West overlap. 425 ! 441 !> 426 442 !> @author J.Paul 427 443 !> @date June, 2013 - Initial Version … … 439 455 !> @return domain structure 440 456 !------------------------------------------------------------------- 441 TYPE(TDOM) FUNCTION dom__init_file( td_file, & 442 & id_imin, id_imax, id_jmin, id_jmax, & 443 & cd_card ) 444 IMPLICIT NONE 457 458 IMPLICIT NONE 459 445 460 ! Argument 446 461 TYPE(TFILE) , INTENT(IN) :: td_file … … 451 466 INTEGER(i4) , INTENT(IN), OPTIONAL :: id_jmax 452 467 453 CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: cd_card 468 CHARACTER(LEN=*) , INTENT(IN), OPTIONAL :: cd_card 469 470 ! function 471 TYPE(TDOM) :: tf_dom 472 454 473 !local variable 455 474 !---------------------------------------------------------------- 456 475 457 476 ! clean domain structure 458 CALL dom_clean( dom__init_file)477 CALL dom_clean(tf_dom) 459 478 460 479 IF( td_file%i_id == 0 )THEN … … 470 489 SELECT CASE(TRIM(cd_card)) 471 490 CASE('north') 472 dom__init_file%i_bdy=jp_north491 tf_dom%i_bdy=jp_north 473 492 CASE('south') 474 dom__init_file%i_bdy=jp_south493 tf_dom%i_bdy=jp_south 475 494 CASE('east') 476 dom__init_file%i_bdy=jp_east495 tf_dom%i_bdy=jp_east 477 496 CASE('west') 478 dom__init_file%i_bdy=jp_west497 tf_dom%i_bdy=jp_west 479 498 CASE DEFAULT 480 499 ! no boundary 481 dom__init_file%i_bdy=0500 tf_dom%i_bdy=0 482 501 END SELECT 483 502 ELSE 484 503 ! no boundary 485 dom__init_file%i_bdy=0504 tf_dom%i_bdy=0 486 505 ENDIF 487 506 488 507 ! use global dimension define by file 489 dom__init_file%t_dim0(:) = dim_copy(td_file%t_dim(:))508 tf_dom%t_dim0(:) = dim_copy(td_file%t_dim(:)) 490 509 491 510 IF( td_file%i_perio < 0 .OR. td_file%i_perio > 6 )THEN … … 494 513 & ") you should use grid_get_perio to compute it") 495 514 ELSE 496 dom__init_file%i_perio0=td_file%i_perio515 tf_dom%i_perio0=td_file%i_perio 497 516 ENDIF 498 517 499 518 ! global domain pivot point 500 SELECT CASE( dom__init_file%i_perio0)519 SELECT CASE(tf_dom%i_perio0) 501 520 CASE(3,4) 502 dom__init_file%i_pivot = 0521 tf_dom%i_pivot = 0 503 522 CASE(5,6) 504 dom__init_file%i_pivot = 1523 tf_dom%i_pivot = 1 505 524 CASE DEFAULT 506 dom__init_file%i_pivot = 0525 tf_dom%i_pivot = 0 507 526 END SELECT 508 527 509 528 ! add ghost cell factor of global domain 510 dom__init_file%i_ghost0(:,:)=0511 SELECT CASE( dom__init_file%i_perio0)529 tf_dom%i_ghost0(:,:)=0 530 SELECT CASE(tf_dom%i_perio0) 512 531 CASE(0) 513 dom__init_file%i_ghost0(:,:)=1532 tf_dom%i_ghost0(:,:)=1 514 533 CASE(1) 515 dom__init_file%i_ghost0(jp_J,:)=1534 tf_dom%i_ghost0(jp_J,:)=1 516 535 CASE(2) 517 dom__init_file%i_ghost0(jp_I,:)=1518 dom__init_file%i_ghost0(jp_J,2)=1536 tf_dom%i_ghost0(jp_I,:)=1 537 tf_dom%i_ghost0(jp_J,2)=1 519 538 CASE(3,5) 520 dom__init_file%i_ghost0(jp_I,:)=1521 dom__init_file%i_ghost0(jp_J,1)=1539 tf_dom%i_ghost0(jp_I,:)=1 540 tf_dom%i_ghost0(jp_J,1)=1 522 541 CASE(4,6) 523 dom__init_file%i_ghost0(jp_J,1)=1542 tf_dom%i_ghost0(jp_J,1)=1 524 543 END SELECT 525 544 526 545 ! look for EW overlap 527 dom__init_file%i_ew0=td_file%i_ew546 tf_dom%i_ew0=td_file%i_ew 528 547 529 548 ! initialise domain as global 530 dom__init_file%i_imin = 1531 dom__init_file%i_imax = dom__init_file%t_dim0(1)%i_len532 533 dom__init_file%i_jmin = 1534 dom__init_file%i_jmax = dom__init_file%t_dim0(2)%i_len549 tf_dom%i_imin = 1 550 tf_dom%i_imax = tf_dom%t_dim0(1)%i_len 551 552 tf_dom%i_jmin = 1 553 tf_dom%i_jmax = tf_dom%t_dim0(2)%i_len 535 554 536 555 ! sub domain dimension 537 dom__init_file%t_dim(:) = dim_copy(td_file%t_dim(:))556 tf_dom%t_dim(:) = dim_copy(td_file%t_dim(:)) 538 557 539 558 ! define sub domain indices 540 CALL dom__define( dom__init_file, & 541 & id_imin, id_imax, id_jmin, id_jmax ) 559 CALL dom__define(tf_dom, id_imin, id_imax, id_jmin, id_jmax) 542 560 543 561 ENDIF 544 562 545 563 END FUNCTION dom__init_file 564 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 565 SUBROUTINE dom__define(td_dom, & 566 & id_imin, id_imax, id_jmin, id_jmax) 546 567 !------------------------------------------------------------------- 547 568 !> @brief … … 551 572 !> @author J.Paul 552 573 !> @date November, 2013 - Initial version 553 ! 574 !> 554 575 !> @param[inout] td_dom domain structure 555 576 !> @param[in] id_imin i-direction sub-domain lower left point indice … … 558 579 !> @param[in] id_jmax j-direction sub-domain upper right point indice 559 580 !------------------------------------------------------------------- 560 SUBROUTINE dom__define(td_dom, & 561 & id_imin, id_imax, id_jmin, id_jmax )562 IMPLICIT NONE 581 582 IMPLICIT NONE 583 563 584 ! Argument 564 585 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 649 670 650 671 END SUBROUTINE dom__define 672 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 673 SUBROUTINE dom__define_cyclic_north_fold(td_dom) 651 674 !------------------------------------------------------------------- 652 675 !> @brief … … 658 681 !> @date September, 2014 659 682 !> - use zero indice to defined cyclic or global domain 660 ! 683 !> 661 684 !> @param[inout] td_dom domain strcuture 662 685 !------------------------------------------------------------------- 663 SUBROUTINE dom__define_cyclic_north_fold( td_dom ) 664 IMPLICIT NONE 686 687 IMPLICIT NONE 688 665 689 ! Argument 666 690 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 717 741 718 742 END SUBROUTINE dom__define_cyclic_north_fold 743 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 SUBROUTINE dom__define_north_fold(td_dom) 719 745 !------------------------------------------------------------------- 720 746 !> @brief … … 724 750 !> @author J.Paul 725 751 !> @date November, 2013 - Initial verison 726 ! 752 !> 727 753 !> @param[inout] td_dom domain strcuture 728 754 !------------------------------------------------------------------- 729 SUBROUTINE dom__define_north_fold( td_dom ) 730 IMPLICIT NONE 755 756 IMPLICIT NONE 757 731 758 ! Argument 732 759 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 751 778 752 779 END SUBROUTINE dom__define_north_fold 780 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 781 SUBROUTINE dom__define_symmetric(td_dom) 753 782 !------------------------------------------------------------------- 754 783 !> @brief … … 758 787 !> @author J.Paul 759 788 !> @date November, 2013 - Initial version 760 ! 789 !> 761 790 !> @param[inout] td_dom domain strcuture 762 791 !------------------------------------------------------------------- 763 SUBROUTINE dom__define_symmetric( td_dom ) 764 IMPLICIT NONE 792 793 IMPLICIT NONE 794 765 795 ! Argument 766 796 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 770 800 771 801 END SUBROUTINE dom__define_symmetric 802 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 803 SUBROUTINE dom__define_cyclic(td_dom) 772 804 !------------------------------------------------------------------- 773 805 !> @brief … … 777 809 !> @author J.Paul 778 810 !> @date November, 2013 - Initial version 779 ! 811 !> 780 812 !> @param[inout] td_dom domain strcuture 781 813 !------------------------------------------------------------------- 782 SUBROUTINE dom__define_cyclic( td_dom ) 783 IMPLICIT NONE 814 815 IMPLICIT NONE 816 784 817 ! Argument 785 818 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 802 835 803 836 END SUBROUTINE dom__define_cyclic 837 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 838 SUBROUTINE dom__define_closed(td_dom) 804 839 !------------------------------------------------------------------- 805 840 !> @brief … … 809 844 !> @author J.Paul 810 845 !> @date November, 2013 - Initial version 811 ! 846 !> 812 847 !> @param[inout] td_dom domain strcuture 813 848 !------------------------------------------------------------------- 814 SUBROUTINE dom__define_closed( td_dom ) 815 IMPLICIT NONE 849 850 IMPLICIT NONE 851 816 852 ! Argument 817 853 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 821 857 822 858 END SUBROUTINE dom__define_closed 859 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 SUBROUTINE dom__size_global(td_dom) 823 861 !------------------------------------------------------------------- 824 862 !> @brief … … 827 865 !> @author J.Paul 828 866 !> @date November, 2013 - Initial version 829 ! 867 !> 830 868 !> @param[inout] td_dom domain strcuture 831 869 !------------------------------------------------------------------- 832 SUBROUTINE dom__size_global( td_dom ) 833 IMPLICIT NONE 870 871 IMPLICIT NONE 872 834 873 ! Argument 835 874 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 859 898 860 899 END SUBROUTINE dom__size_global 900 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 901 SUBROUTINE dom__size_semi_global(td_dom) 861 902 !------------------------------------------------------------------- 862 903 !> @brief … … 865 906 !> @author J.Paul 866 907 !> @date November, 2013 - Initial version 867 ! 908 !> 868 909 !> @param[inout] td_dom domain strcuture 869 910 !> @note never tested 870 911 !------------------------------------------------------------------- 871 SUBROUTINE dom__size_semi_global( td_dom ) 872 IMPLICIT NONE 912 913 IMPLICIT NONE 914 873 915 ! Argument 874 916 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 908 950 909 951 END SUBROUTINE dom__size_semi_global 952 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 953 SUBROUTINE dom__size_no_pole(td_dom) 910 954 !------------------------------------------------------------------- 911 955 !> @brief … … 915 959 !> @author J.Paul 916 960 !> @date November, 2013 - Initial version 917 ! 961 !> 918 962 !> @param[inout] td_dom domain strcuture 919 963 !------------------------------------------------------------------- 920 SUBROUTINE dom__size_no_pole( td_dom ) 921 IMPLICIT NONE 964 965 IMPLICIT NONE 966 922 967 ! Argument 923 968 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 947 992 948 993 END SUBROUTINE dom__size_no_pole 994 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 995 SUBROUTINE dom__size_pole(td_dom) 949 996 !------------------------------------------------------------------- 950 997 !> @brief … … 954 1001 !> @author J.Paul 955 1002 !> @date April, 2013 - Initial version 956 ! 1003 !> 957 1004 !> @param[inout] td_dom domain strcuture 958 1005 !> @note never tested 959 1006 !------------------------------------------------------------------- 960 SUBROUTINE dom__size_pole( td_dom ) 961 IMPLICIT NONE 1007 1008 IMPLICIT NONE 1009 962 1010 ! Argument 963 1011 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 975 1023 976 1024 END SUBROUTINE dom__size_pole 1025 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1026 SUBROUTINE dom__size_no_pole_overlap(td_dom) 977 1027 !------------------------------------------------------------------- 978 1028 !> @brief … … 982 1032 !> @author J.Paul 983 1033 !> @date November, 2013 - Initial version 984 ! 1034 !> 985 1035 !> @param[inout] td_dom domain strcuture 986 1036 !------------------------------------------------------------------- 987 SUBROUTINE dom__size_no_pole_overlap( td_dom ) 988 IMPLICIT NONE 1037 1038 IMPLICIT NONE 1039 989 1040 ! Argument 990 1041 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 1037 1088 1038 1089 END SUBROUTINE dom__size_no_pole_overlap 1090 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1091 SUBROUTINE dom__size_no_pole_no_overlap(td_dom) 1039 1092 !------------------------------------------------------------------- 1040 1093 !> @brief … … 1044 1097 !> @author J.Paul 1045 1098 !> @date November, 2013 - Initial version 1046 ! 1099 !> 1047 1100 !> @param[inout] td_dom domain strcuture 1048 1101 !------------------------------------------------------------------- 1049 SUBROUTINE dom__size_no_pole_no_overlap( td_dom ) 1050 IMPLICIT NONE 1102 1103 IMPLICIT NONE 1104 1051 1105 ! Argument 1052 1106 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 1078 1132 1079 1133 END SUBROUTINE dom__size_no_pole_no_overlap 1134 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1135 SUBROUTINE dom__size_pole_overlap(td_dom) 1080 1136 !------------------------------------------------------------------- 1081 1137 !> @brief … … 1085 1141 !> @author J.Paul 1086 1142 !> @date November, 2013 - Initial version 1087 ! 1143 !> 1088 1144 !> @param[inout] td_dom domain strcuture 1089 1145 !> @note never tested 1090 1146 !------------------------------------------------------------------- 1091 SUBROUTINE dom__size_pole_overlap( td_dom ) 1092 IMPLICIT NONE 1147 1148 IMPLICIT NONE 1149 1093 1150 ! Argument 1094 1151 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 1176 1233 1177 1234 END SUBROUTINE dom__size_pole_overlap 1235 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1236 SUBROUTINE dom__size_pole_no_overlap(td_dom) 1178 1237 !------------------------------------------------------------------- 1179 1238 !> @brief … … 1183 1242 !> @author J.Paul 1184 1243 !> @date November, 2013 - Initial version 1185 ! 1244 !> 1186 1245 !> @param[inout] td_dom domain strcuture 1187 1246 !> @note never tested 1188 1247 !------------------------------------------------------------------- 1189 SUBROUTINE dom__size_pole_no_overlap( td_dom ) 1190 IMPLICIT NONE 1248 1249 IMPLICIT NONE 1250 1191 1251 ! Argument 1192 1252 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 1282 1342 1283 1343 END SUBROUTINE dom__size_pole_no_overlap 1344 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1345 SUBROUTINE dom_add_extra(td_dom, id_iext, id_jext) 1284 1346 !------------------------------------------------------------------- 1285 1347 !> @brief … … 1299 1361 !> @date February, 2016 1300 1362 !> - number of extra point is the MAX (not the MIN) of zero and asess value. 1301 ! 1363 !> 1302 1364 !> @param[inout] td_dom domain strcuture 1303 1365 !> @param [in] id_iext i-direction size of extra bands (default=im_minext) 1304 1366 !> @param [in] id_jext j-direction size of extra bands (default=im_minext) 1305 1367 !------------------------------------------------------------------- 1306 SUBROUTINE dom_add_extra( td_dom, id_iext, id_jext ) 1307 IMPLICIT NONE 1368 1369 IMPLICIT NONE 1370 1308 1371 ! Argument 1309 1372 TYPE(TDOM) , INTENT(INOUT) :: td_dom … … 1433 1496 1434 1497 END SUBROUTINE dom_add_extra 1498 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1499 SUBROUTINE dom_clean_extra(td_dom) 1435 1500 !------------------------------------------------------------------- 1436 1501 !> @brief 1437 1502 !> This subroutine clean coarse grid domain structure. 1438 1503 !> it remove extra point added. 1439 ! 1504 !> 1440 1505 !> @author J.Paul 1441 1506 !> @date November, 2013 - Initial version 1442 ! 1507 !> 1443 1508 !> @param[inout] td_dom domain strcuture 1444 1509 !------------------------------------------------------------------- 1445 SUBROUTINE dom_clean_extra( td_dom ) 1446 IMPLICIT NONE 1510 1511 IMPLICIT NONE 1512 1447 1513 ! Argument 1448 1514 TYPE(TDOM) , INTENT(INOUT) :: td_dom … … 1470 1536 1471 1537 END SUBROUTINE dom_clean_extra 1538 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1539 SUBROUTINE dom_del_extra(td_var, td_dom, id_rho, ld_coord) 1472 1540 !------------------------------------------------------------------- 1473 1541 !> @brief … … 1487 1555 !> @date December, 2014 1488 1556 !> - add special case for coordinates file. 1489 ! 1557 !> 1490 1558 !> @param[inout] td_var variable strcuture 1491 1559 !> @param[in] td_dom domain strcuture … … 1493 1561 !> @param[in] ld_coord work on coordinates file or not 1494 1562 !------------------------------------------------------------------- 1495 SUBROUTINE dom_del_extra( td_var, td_dom, id_rho, ld_coord ) 1496 IMPLICIT NONE 1563 1564 IMPLICIT NONE 1565 1497 1566 ! Argument 1498 1567 TYPE(TVAR) , INTENT(INOUT) :: td_var … … 1716 1785 1717 1786 END SUBROUTINE dom_del_extra 1787 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1788 SUBROUTINE dom_clean(td_dom) 1718 1789 !------------------------------------------------------------------- 1719 1790 !> @brief 1720 1791 !> This subroutine clean domain structure. 1721 ! 1792 !> 1722 1793 !> @author J.Paul 1723 1794 !> @date November, 2013 - Initial version 1724 ! 1795 !> 1725 1796 !> @param[inout] td_dom domain strcuture 1726 1797 !------------------------------------------------------------------- 1727 SUBROUTINE dom_clean( td_dom ) 1728 IMPLICIT NONE 1798 1799 IMPLICIT NONE 1800 1729 1801 ! Argument 1730 1802 TYPE(TDOM), INTENT(INOUT) :: td_dom … … 1748 1820 1749 1821 END SUBROUTINE dom_clean 1822 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1750 1823 END MODULE dom
Note: See TracChangeset
for help on using the changeset viewer.