New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12080 for utils/tools/SIREN/src/domain.f90 – NEMO

Ignore:
Timestamp:
2019-12-06T10:30:14+01:00 (5 years ago)
Author:
jpaul
Message:

update nemo trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • utils/tools/SIREN/src/domain.f90

    r9598 r12080  
    22! NEMO system team, System and Interface for oceanic RElocable Nesting 
    33!---------------------------------------------------------------------- 
    4 ! 
    5 ! MODULE: dom 
    64! 
    75! DESCRIPTION: 
     
    119117!> @author 
    120118!> J.Paul 
    121 ! REVISION HISTORY: 
     119!> 
    122120!> @date November, 2013 - Initial Version 
    123121!> @date September, 2014 
     
    127125!> - use mpp file structure instead of file 
    128126!>  
    129 !> @note Software governed by the CeCILL licence     (./LICENSE) 
     127!> @note Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    130128!---------------------------------------------------------------------- 
    131129MODULE dom 
     130 
    132131   USE kind                            ! F90 kind parameter 
    133132   USE global                          ! global parameter 
     
    137136   USE var                             ! variable manager 
    138137   USE mpp                             ! mpp file manager 
     138 
    139139   IMPLICIT NONE 
    140140   ! NOTE_avoid_public_variables_if_possible 
     
    211211 
    212212CONTAINS 
     213   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     214   FUNCTION dom__copy_unit(td_dom) & 
     215         & RESULT (tf_dom) 
    213216   !------------------------------------------------------------------- 
    214217   !> @brief 
     
    229232   !> @return copy of input domain structure 
    230233   !------------------------------------------------------------------- 
    231    FUNCTION dom__copy_unit( td_dom ) 
    232       IMPLICIT NONE 
     234 
     235      IMPLICIT NONE 
     236 
    233237      ! Argument 
    234238      TYPE(TDOM), INTENT(IN)  :: td_dom 
     239 
    235240      ! function 
    236       TYPE(TDOM) :: dom__copy_unit 
     241      TYPE(TDOM)              :: tf_dom 
    237242 
    238243      ! local variable 
    239244      !---------------------------------------------------------------- 
    240245 
    241       dom__copy_unit=td_dom 
     246      tf_dom=td_dom 
    242247       
    243       END FUNCTION dom__copy_unit 
     248   END FUNCTION dom__copy_unit 
     249   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     250   SUBROUTINE dom_print(td_dom) 
    244251   !------------------------------------------------------------------- 
    245252   !> @brief This subroutine print some information about domain strucutre. 
    246    ! 
     253   !> 
    247254   !> @author J.Paul 
    248255   !> @date November, 2013 - Initial Version 
    249    ! 
     256   !> 
    250257   !> @param[inout] td_dom dom structure 
    251258   !------------------------------------------------------------------- 
    252    SUBROUTINE dom_print(td_dom) 
    253       IMPLICIT NONE 
     259 
     260      IMPLICIT NONE 
     261 
    254262      ! Argument       
    255263      TYPE(TDOM), INTENT(IN) :: td_dom 
     
    284292      &  " j-direction extra point for interpolation       ",td_dom%i_jextra(:) 
    285293 
    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) 
    287298   !------------------------------------------------------------------- 
    288299   !> @brief  
     
    292303   !> sub domain indices are computed, taking into account coarse grid 
    293304   !> periodicity, pivot point, and East-West overlap. 
    294    ! 
     305   !> 
    295306   !> @author J.Paul 
    296307   !> @date June, 2013 - Initial Version 
     
    310321   !> @return domain structure 
    311322   !------------------------------------------------------------------- 
    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 
    316326      ! Argument 
    317327      TYPE(TMPP)      , INTENT(IN) :: td_mpp  
     
    323333 
    324334      CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: cd_card 
     335 
     336      ! function 
     337      TYPE(TDOM)                   :: tf_dom 
     338 
    325339      !local variable 
    326340      !---------------------------------------------------------------- 
    327341 
    328342      ! clean domain structure 
    329       CALL dom_clean(dom__init_mpp) 
     343      CALL dom_clean(tf_dom) 
    330344 
    331345      IF( .NOT. ASSOCIATED(td_mpp%t_proc) )THEN 
     
    342356            SELECT CASE(TRIM(cd_card)) 
    343357               CASE('north') 
    344                   dom__init_mpp%i_bdy=jp_north 
     358                  tf_dom%i_bdy=jp_north 
    345359               CASE('south') 
    346                   dom__init_mpp%i_bdy=jp_south 
     360                  tf_dom%i_bdy=jp_south 
    347361               CASE('east') 
    348                   dom__init_mpp%i_bdy=jp_east 
     362                  tf_dom%i_bdy=jp_east 
    349363               CASE('west') 
    350                   dom__init_mpp%i_bdy=jp_west 
     364                  tf_dom%i_bdy=jp_west 
    351365               CASE DEFAULT 
    352366                  ! no boundary 
    353                   dom__init_mpp%i_bdy=0 
     367                  tf_dom%i_bdy=0 
    354368            END SELECT 
    355369         ELSE 
    356370            ! no boundary 
    357             dom__init_mpp%i_bdy=0 
     371            tf_dom%i_bdy=0 
    358372         ENDIF 
    359373 
    360374         ! 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(:)) 
    362376 
    363377         IF( td_mpp%i_perio < 0 .OR. td_mpp%i_perio > 6 )THEN 
     
    366380            &  ") you should use grid_get_perio to compute it") 
    367381         ELSE 
    368             dom__init_mpp%i_perio0=td_mpp%i_perio 
     382            tf_dom%i_perio0=td_mpp%i_perio 
    369383         ENDIF 
    370384 
    371385         ! global domain pivot point 
    372          SELECT CASE(dom__init_mpp%i_perio0) 
     386         SELECT CASE(tf_dom%i_perio0) 
    373387            CASE(3,4) 
    374                dom__init_mpp%i_pivot = 0 
     388               tf_dom%i_pivot = 0 
    375389            CASE(5,6) 
    376                dom__init_mpp%i_pivot = 1 
     390               tf_dom%i_pivot = 1 
    377391            CASE DEFAULT 
    378                dom__init_mpp%i_pivot = 0 
     392               tf_dom%i_pivot = 0 
    379393         END SELECT 
    380394 
    381395         ! add ghost cell factor of global domain 
    382          dom__init_mpp%i_ghost0(:,:)=0 
    383          SELECT CASE(dom__init_mpp%i_perio0) 
     396         tf_dom%i_ghost0(:,:)=0 
     397         SELECT CASE(tf_dom%i_perio0) 
    384398            CASE(0) 
    385                dom__init_mpp%i_ghost0(:,:)=1 
     399               tf_dom%i_ghost0(:,:)=1 
    386400            CASE(1) 
    387                dom__init_mpp%i_ghost0(jp_J,:)=1 
     401               tf_dom%i_ghost0(jp_J,:)=1 
    388402            CASE(2) 
    389                dom__init_mpp%i_ghost0(jp_I,:)=1 
    390                dom__init_mpp%i_ghost0(jp_J,2)=1 
     403               tf_dom%i_ghost0(jp_I,:)=1 
     404               tf_dom%i_ghost0(jp_J,2)=1 
    391405            CASE(3,5) 
    392                dom__init_mpp%i_ghost0(jp_I,:)=1 
    393                dom__init_mpp%i_ghost0(jp_J,1)=1 
     406               tf_dom%i_ghost0(jp_I,:)=1 
     407               tf_dom%i_ghost0(jp_J,1)=1 
    394408            CASE(4,6) 
    395                dom__init_mpp%i_ghost0(jp_J,1)=1 
     409               tf_dom%i_ghost0(jp_J,1)=1 
    396410         END SELECT 
    397411 
    398412         ! look for EW overlap 
    399          dom__init_mpp%i_ew0=td_mpp%i_ew 
     413         tf_dom%i_ew0=td_mpp%i_ew 
    400414 
    401415         ! initialise domain as global 
    402          dom__init_mpp%i_imin = 1  
    403          dom__init_mpp%i_imax = dom__init_mpp%t_dim0(1)%i_len 
    404  
    405          dom__init_mpp%i_jmin = 1  
    406          dom__init_mpp%i_jmax = dom__init_mpp%t_dim0(2)%i_len 
     416         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 
    407421 
    408422         ! 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(:)) 
    410424 
    411425         ! 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) 
    414427 
    415428      ENDIF 
    416429 
    417430   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) 
    418434   !------------------------------------------------------------------- 
    419435   !> @brief  
     
    423439   !> sub domain indices are computed, taking into account coarse grid 
    424440   !> periodicity, pivot point, and East-West overlap. 
    425    ! 
     441   !> 
    426442   !> @author J.Paul 
    427443   !> @date June, 2013 - Initial Version 
     
    439455   !> @return domain structure 
    440456   !------------------------------------------------------------------- 
    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 
    445460      ! Argument 
    446461      TYPE(TFILE)      , INTENT(IN) :: td_file  
     
    451466      INTEGER(i4)      , INTENT(IN), OPTIONAL :: id_jmax 
    452467 
    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 
    454473      !local variable 
    455474      !---------------------------------------------------------------- 
    456475 
    457476      ! clean domain structure 
    458       CALL dom_clean(dom__init_file) 
     477      CALL dom_clean(tf_dom) 
    459478 
    460479      IF( td_file%i_id == 0 )THEN 
     
    470489            SELECT CASE(TRIM(cd_card)) 
    471490               CASE('north') 
    472                   dom__init_file%i_bdy=jp_north 
     491                  tf_dom%i_bdy=jp_north 
    473492               CASE('south') 
    474                   dom__init_file%i_bdy=jp_south 
     493                  tf_dom%i_bdy=jp_south 
    475494               CASE('east') 
    476                   dom__init_file%i_bdy=jp_east 
     495                  tf_dom%i_bdy=jp_east 
    477496               CASE('west') 
    478                   dom__init_file%i_bdy=jp_west 
     497                  tf_dom%i_bdy=jp_west 
    479498               CASE DEFAULT 
    480499                  ! no boundary 
    481                   dom__init_file%i_bdy=0 
     500                  tf_dom%i_bdy=0 
    482501            END SELECT 
    483502         ELSE 
    484503            ! no boundary 
    485             dom__init_file%i_bdy=0 
     504            tf_dom%i_bdy=0 
    486505         ENDIF 
    487506 
    488507         ! 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(:)) 
    490509 
    491510         IF( td_file%i_perio < 0 .OR. td_file%i_perio > 6 )THEN 
     
    494513            &  ") you should use grid_get_perio to compute it") 
    495514         ELSE 
    496             dom__init_file%i_perio0=td_file%i_perio 
     515            tf_dom%i_perio0=td_file%i_perio 
    497516         ENDIF 
    498517 
    499518         ! global domain pivot point 
    500          SELECT CASE(dom__init_file%i_perio0) 
     519         SELECT CASE(tf_dom%i_perio0) 
    501520            CASE(3,4) 
    502                dom__init_file%i_pivot = 0 
     521               tf_dom%i_pivot = 0 
    503522            CASE(5,6) 
    504                dom__init_file%i_pivot = 1 
     523               tf_dom%i_pivot = 1 
    505524            CASE DEFAULT 
    506                dom__init_file%i_pivot = 0 
     525               tf_dom%i_pivot = 0 
    507526         END SELECT 
    508527 
    509528         ! add ghost cell factor of global domain 
    510          dom__init_file%i_ghost0(:,:)=0 
    511          SELECT CASE(dom__init_file%i_perio0) 
     529         tf_dom%i_ghost0(:,:)=0 
     530         SELECT CASE(tf_dom%i_perio0) 
    512531            CASE(0) 
    513                dom__init_file%i_ghost0(:,:)=1 
     532               tf_dom%i_ghost0(:,:)=1 
    514533            CASE(1) 
    515                dom__init_file%i_ghost0(jp_J,:)=1 
     534               tf_dom%i_ghost0(jp_J,:)=1 
    516535            CASE(2) 
    517                dom__init_file%i_ghost0(jp_I,:)=1 
    518                dom__init_file%i_ghost0(jp_J,2)=1 
     536               tf_dom%i_ghost0(jp_I,:)=1 
     537               tf_dom%i_ghost0(jp_J,2)=1 
    519538            CASE(3,5) 
    520                dom__init_file%i_ghost0(jp_I,:)=1 
    521                dom__init_file%i_ghost0(jp_J,1)=1 
     539               tf_dom%i_ghost0(jp_I,:)=1 
     540               tf_dom%i_ghost0(jp_J,1)=1 
    522541            CASE(4,6) 
    523                dom__init_file%i_ghost0(jp_J,1)=1 
     542               tf_dom%i_ghost0(jp_J,1)=1 
    524543         END SELECT 
    525544 
    526545         ! look for EW overlap 
    527          dom__init_file%i_ew0=td_file%i_ew 
     546         tf_dom%i_ew0=td_file%i_ew 
    528547 
    529548         ! initialise domain as global 
    530          dom__init_file%i_imin = 1  
    531          dom__init_file%i_imax = dom__init_file%t_dim0(1)%i_len 
    532  
    533          dom__init_file%i_jmin = 1  
    534          dom__init_file%i_jmax = dom__init_file%t_dim0(2)%i_len 
     549         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 
    535554 
    536555         ! 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(:)) 
    538557 
    539558         ! 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) 
    542560 
    543561      ENDIF 
    544562 
    545563   END FUNCTION dom__init_file 
     564   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     565   SUBROUTINE dom__define(td_dom, & 
     566         &                id_imin, id_imax, id_jmin, id_jmax) 
    546567   !------------------------------------------------------------------- 
    547568   !> @brief  
     
    551572   !> @author J.Paul 
    552573   !> @date November, 2013 - Initial version 
    553    ! 
     574   !> 
    554575   !> @param[inout] td_dom domain structure 
    555576   !> @param[in] id_imin   i-direction sub-domain lower left  point indice 
     
    558579   !> @param[in] id_jmax   j-direction sub-domain upper right point indice 
    559580   !------------------------------------------------------------------- 
    560    SUBROUTINE dom__define(td_dom, & 
    561    &                      id_imin, id_imax, id_jmin, id_jmax ) 
    562       IMPLICIT NONE 
     581 
     582      IMPLICIT NONE 
     583 
    563584      ! Argument       
    564585      TYPE(TDOM),  INTENT(INOUT) :: td_dom 
     
    649670 
    650671   END SUBROUTINE dom__define 
     672   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     673   SUBROUTINE dom__define_cyclic_north_fold(td_dom) 
    651674   !------------------------------------------------------------------- 
    652675   !> @brief  
     
    658681   !> @date September, 2014 
    659682   !> - use zero indice to defined cyclic or global domain 
    660    ! 
     683   !> 
    661684   !> @param[inout] td_dom domain strcuture 
    662685   !------------------------------------------------------------------- 
    663    SUBROUTINE dom__define_cyclic_north_fold( td_dom ) 
    664       IMPLICIT NONE 
     686 
     687      IMPLICIT NONE 
     688 
    665689      ! Argument 
    666690      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    717741       
    718742   END SUBROUTINE dom__define_cyclic_north_fold 
     743   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     744   SUBROUTINE dom__define_north_fold(td_dom) 
    719745   !------------------------------------------------------------------- 
    720746   !> @brief  
     
    724750   !> @author J.Paul 
    725751   !> @date November, 2013 - Initial verison 
    726    ! 
     752   !> 
    727753   !> @param[inout] td_dom domain strcuture 
    728754   !------------------------------------------------------------------- 
    729    SUBROUTINE dom__define_north_fold( td_dom ) 
    730       IMPLICIT NONE 
     755 
     756      IMPLICIT NONE 
     757 
    731758      ! Argument 
    732759      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    751778 
    752779   END SUBROUTINE dom__define_north_fold 
     780   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     781   SUBROUTINE dom__define_symmetric(td_dom) 
    753782   !------------------------------------------------------------------- 
    754783   !> @brief  
     
    758787   !> @author J.Paul 
    759788   !> @date November, 2013 - Initial version 
    760    ! 
     789   !> 
    761790   !> @param[inout] td_dom domain strcuture 
    762791   !------------------------------------------------------------------- 
    763    SUBROUTINE dom__define_symmetric( td_dom ) 
    764       IMPLICIT NONE 
     792 
     793      IMPLICIT NONE 
     794 
    765795      ! Argument 
    766796      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    770800 
    771801   END SUBROUTINE dom__define_symmetric 
     802   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     803   SUBROUTINE dom__define_cyclic(td_dom) 
    772804   !------------------------------------------------------------------- 
    773805   !> @brief  
     
    777809   !> @author J.Paul 
    778810   !> @date November, 2013 - Initial version 
    779    ! 
     811   !> 
    780812   !> @param[inout] td_dom domain strcuture 
    781813   !------------------------------------------------------------------- 
    782    SUBROUTINE dom__define_cyclic( td_dom ) 
    783       IMPLICIT NONE 
     814 
     815      IMPLICIT NONE 
     816 
    784817      ! Argument 
    785818      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    802835 
    803836   END SUBROUTINE dom__define_cyclic 
     837   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     838   SUBROUTINE dom__define_closed(td_dom) 
    804839   !------------------------------------------------------------------- 
    805840   !> @brief  
     
    809844   !> @author J.Paul 
    810845   !> @date November, 2013 - Initial version 
    811    ! 
     846   !> 
    812847   !> @param[inout] td_dom domain strcuture 
    813848   !------------------------------------------------------------------- 
    814    SUBROUTINE dom__define_closed( td_dom ) 
    815       IMPLICIT NONE 
     849 
     850      IMPLICIT NONE 
     851 
    816852      ! Argument 
    817853      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    821857 
    822858   END SUBROUTINE dom__define_closed 
     859   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     860   SUBROUTINE dom__size_global(td_dom) 
    823861   !------------------------------------------------------------------- 
    824862   !> @brief 
     
    827865   !> @author J.Paul 
    828866   !> @date November, 2013 - Initial version 
    829    ! 
     867   !> 
    830868   !> @param[inout] td_dom domain strcuture 
    831869   !------------------------------------------------------------------- 
    832    SUBROUTINE dom__size_global( td_dom ) 
    833       IMPLICIT NONE 
     870 
     871      IMPLICIT NONE 
     872 
    834873      ! Argument 
    835874      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    859898 
    860899   END SUBROUTINE dom__size_global 
     900   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     901   SUBROUTINE dom__size_semi_global(td_dom) 
    861902   !------------------------------------------------------------------- 
    862903   !> @brief 
     
    865906   !> @author J.Paul 
    866907   !> @date November, 2013 - Initial version 
    867    ! 
     908   !> 
    868909   !> @param[inout] td_dom domain strcuture 
    869910   !> @note never tested 
    870911   !------------------------------------------------------------------- 
    871    SUBROUTINE dom__size_semi_global( td_dom ) 
    872       IMPLICIT NONE 
     912 
     913      IMPLICIT NONE 
     914 
    873915      ! Argument 
    874916      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    908950 
    909951   END SUBROUTINE dom__size_semi_global 
     952   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     953   SUBROUTINE dom__size_no_pole(td_dom) 
    910954   !------------------------------------------------------------------- 
    911955   !> @brief 
     
    915959   !> @author J.Paul 
    916960   !> @date November, 2013 - Initial version 
    917    ! 
     961   !> 
    918962   !> @param[inout] td_dom domain strcuture 
    919963   !------------------------------------------------------------------- 
    920    SUBROUTINE dom__size_no_pole( td_dom ) 
    921       IMPLICIT NONE 
     964 
     965      IMPLICIT NONE 
     966 
    922967      ! Argument 
    923968      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    947992 
    948993   END SUBROUTINE dom__size_no_pole 
     994   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     995   SUBROUTINE dom__size_pole(td_dom) 
    949996   !------------------------------------------------------------------- 
    950997   !> @brief 
     
    9541001   !> @author J.Paul 
    9551002   !> @date April, 2013 - Initial version 
    956    ! 
     1003   !> 
    9571004   !> @param[inout] td_dom domain strcuture 
    9581005   !> @note never tested 
    9591006   !------------------------------------------------------------------- 
    960    SUBROUTINE dom__size_pole( td_dom ) 
    961       IMPLICIT NONE 
     1007 
     1008      IMPLICIT NONE 
     1009 
    9621010      ! Argument 
    9631011      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    9751023 
    9761024   END SUBROUTINE dom__size_pole 
     1025   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1026   SUBROUTINE dom__size_no_pole_overlap(td_dom) 
    9771027   !------------------------------------------------------------------- 
    9781028   !> @brief 
     
    9821032   !> @author J.Paul 
    9831033   !> @date November, 2013 - Initial version 
    984    ! 
     1034   !> 
    9851035   !> @param[inout] td_dom domain strcuture 
    9861036   !------------------------------------------------------------------- 
    987    SUBROUTINE dom__size_no_pole_overlap( td_dom ) 
    988       IMPLICIT NONE 
     1037 
     1038      IMPLICIT NONE 
     1039 
    9891040      ! Argument 
    9901041      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    10371088 
    10381089   END SUBROUTINE dom__size_no_pole_overlap 
     1090   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1091   SUBROUTINE dom__size_no_pole_no_overlap(td_dom) 
    10391092   !------------------------------------------------------------------- 
    10401093   !> @brief 
     
    10441097   !> @author J.Paul 
    10451098   !> @date November, 2013 - Initial version 
    1046    ! 
     1099   !> 
    10471100   !> @param[inout] td_dom domain strcuture 
    10481101   !------------------------------------------------------------------- 
    1049    SUBROUTINE dom__size_no_pole_no_overlap( td_dom ) 
    1050       IMPLICIT NONE 
     1102 
     1103      IMPLICIT NONE 
     1104 
    10511105      ! Argument 
    10521106      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    10781132 
    10791133   END SUBROUTINE dom__size_no_pole_no_overlap 
     1134   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1135   SUBROUTINE dom__size_pole_overlap(td_dom) 
    10801136   !------------------------------------------------------------------- 
    10811137   !> @brief 
     
    10851141   !> @author J.Paul 
    10861142   !> @date November, 2013 - Initial version 
    1087    ! 
     1143   !> 
    10881144   !> @param[inout] td_dom domain strcuture 
    10891145   !> @note never tested 
    10901146   !------------------------------------------------------------------- 
    1091    SUBROUTINE dom__size_pole_overlap( td_dom ) 
    1092       IMPLICIT NONE 
     1147 
     1148      IMPLICIT NONE 
     1149 
    10931150      ! Argument 
    10941151      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    11761233 
    11771234   END SUBROUTINE dom__size_pole_overlap 
     1235   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1236   SUBROUTINE dom__size_pole_no_overlap(td_dom) 
    11781237   !------------------------------------------------------------------- 
    11791238   !> @brief 
     
    11831242   !> @author J.Paul 
    11841243   !> @date November, 2013 - Initial version 
    1185    ! 
     1244   !> 
    11861245   !> @param[inout] td_dom domain strcuture 
    11871246   !> @note never tested 
    11881247   !------------------------------------------------------------------- 
    1189    SUBROUTINE dom__size_pole_no_overlap( td_dom ) 
    1190       IMPLICIT NONE 
     1248 
     1249      IMPLICIT NONE 
     1250 
    11911251      ! Argument 
    11921252      TYPE(TDOM), INTENT(INOUT) :: td_dom 
     
    12821342 
    12831343   END SUBROUTINE dom__size_pole_no_overlap 
     1344   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1345   SUBROUTINE dom_add_extra(td_dom, id_iext, id_jext) 
    12841346   !------------------------------------------------------------------- 
    12851347   !> @brief  
     
    12991361   !> @date February, 2016 
    13001362   !> - number of extra point is the MAX (not the MIN) of zero and asess value.  
    1301    ! 
     1363   !> 
    13021364   !> @param[inout] td_dom domain strcuture 
    13031365   !> @param [in] id_iext  i-direction size of extra bands (default=im_minext) 
    13041366   !> @param [in] id_jext  j-direction size of extra bands (default=im_minext) 
    13051367   !------------------------------------------------------------------- 
    1306    SUBROUTINE dom_add_extra( td_dom, id_iext, id_jext ) 
    1307       IMPLICIT NONE 
     1368 
     1369      IMPLICIT NONE 
     1370 
    13081371      ! Argument 
    13091372      TYPE(TDOM) ,  INTENT(INOUT) :: td_dom 
     
    14331496 
    14341497   END SUBROUTINE dom_add_extra 
     1498   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1499   SUBROUTINE dom_clean_extra(td_dom) 
    14351500   !------------------------------------------------------------------- 
    14361501   !> @brief  
    14371502   !>  This subroutine clean coarse grid domain structure.  
    14381503   !> it remove extra point added.  
    1439    ! 
     1504   !> 
    14401505   !> @author J.Paul 
    14411506   !> @date November, 2013 - Initial version 
    1442    ! 
     1507   !> 
    14431508   !> @param[inout] td_dom domain strcuture 
    14441509   !------------------------------------------------------------------- 
    1445    SUBROUTINE dom_clean_extra( td_dom ) 
    1446       IMPLICIT NONE 
     1510 
     1511      IMPLICIT NONE 
     1512 
    14471513      ! Argument 
    14481514      TYPE(TDOM) , INTENT(INOUT) :: td_dom 
     
    14701536 
    14711537   END SUBROUTINE dom_clean_extra 
     1538   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1539   SUBROUTINE dom_del_extra(td_var, td_dom, id_rho, ld_coord) 
    14721540   !------------------------------------------------------------------- 
    14731541   !> @brief  
     
    14871555   !> @date December, 2014 
    14881556   !> - add special case for coordinates file. 
    1489    ! 
     1557   !> 
    14901558   !> @param[inout] td_var variable strcuture 
    14911559   !> @param[in] td_dom    domain strcuture 
     
    14931561   !> @param[in] ld_coord  work on coordinates file or not 
    14941562   !------------------------------------------------------------------- 
    1495    SUBROUTINE dom_del_extra( td_var, td_dom, id_rho, ld_coord ) 
    1496       IMPLICIT NONE 
     1563 
     1564      IMPLICIT NONE 
     1565 
    14971566      ! Argument 
    14981567      TYPE(TVAR)               , INTENT(INOUT) :: td_var 
     
    17161785 
    17171786   END SUBROUTINE dom_del_extra 
     1787   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1788   SUBROUTINE dom_clean(td_dom) 
    17181789   !------------------------------------------------------------------- 
    17191790   !> @brief  
    17201791   !>  This subroutine clean domain structure. 
    1721    ! 
     1792   !> 
    17221793   !> @author J.Paul 
    17231794   !> @date November, 2013 - Initial version 
    1724    ! 
     1795   !> 
    17251796   !> @param[inout] td_dom domain strcuture 
    17261797   !------------------------------------------------------------------- 
    1727    SUBROUTINE dom_clean( td_dom ) 
    1728       IMPLICIT NONE 
     1798 
     1799      IMPLICIT NONE 
     1800 
    17291801      ! Argument 
    17301802      TYPE(TDOM),  INTENT(INOUT) :: td_dom 
     
    17481820 
    17491821   END SUBROUTINE dom_clean 
     1822   !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    17501823END MODULE dom 
Note: See TracChangeset for help on using the changeset viewer.