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 6596 for branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90 – NEMO

Ignore:
Timestamp:
2016-05-22T20:11:06+02:00 (8 years ago)
Author:
gm
Message:

#1692 - branch SIMPLIF_2_usrdef: remove from namcfg and namdom many obsolete variables ; remove izoom/jzoom option

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domcfg.F90

    r6140 r6596  
    99 
    1010   !!---------------------------------------------------------------------- 
    11    !!   dom_cfg        : initialize the domain configuration 
     11   !!   dom_cfg       : initialize the domain configuration 
    1212   !!---------------------------------------------------------------------- 
    13    USE dom_oce         ! ocean space and time domain 
    14    USE phycst          ! physical constants 
    15    USE in_out_manager  ! I/O manager 
    16    USE lib_mpp         ! distributed memory computing library 
    17    USE timing          ! Timing 
    18    USE c1d             ! 1D configuration 
    19    USE domc1d          ! 1D configuration: column location 
     13   USE dom_oce        ! ocean space and time domain 
     14   USE phycst         ! physical constants 
     15   ! 
     16   USE in_out_manager ! I/O manager 
     17   USE lib_mpp        ! distributed memory computing library 
     18   USE timing         ! Timing 
     19   USE c1d            ! 1D configuration 
     20   USE domc1d         ! 1D configuration: column location 
    2021 
    2122   IMPLICIT NONE 
     
    7172      !!                     ***  ROUTINE dom_glo  *** 
    7273      !! 
    73       !! ** Purpose :   initialization for global domain, zoom and local domain 
     74      !! ** Purpose :   initialization for global and local domain 
    7475      !! 
    7576      !! ** Method  :    
    7677      !! 
    77       !! ** Action  : - mig  , mjg :  
    78       !!              - mi0  , mi1   : 
    79       !!              - mj0, , mj1   : 
     78      !! ** Action  : - mig , mjg : local  domain indices ==> global domain indices 
     79      !!              - mi0 , mi1 : global domain indices ==> local  domain indices 
     80      !!              - mj0,, mj1   (global point not in the local domain ==> mi0>mi1 and/or mj0>mj1) 
    8081      !!---------------------------------------------------------------------- 
    8182      INTEGER ::   ji, jj   ! dummy loop argument 
    8283      !!---------------------------------------------------------------------- 
    83       !                              ! recalculate jpizoom/jpjzoom given lat/lon 
     84!!gm  This should be removed with the new configuration interface 
     85      !                              ! recalculate jp_izoom/jp_jzoom given lat/lon 
    8486      IF( lk_c1d .AND. ln_c1d_locpt )  CALL dom_c1d( rn_lat1d, rn_lon1d ) 
     87!!gm end 
    8588      ! 
    8689      !                        ! ============== ! 
    8790      !                        !  Local domain  !  
    8891      !                        ! ============== ! 
    89       DO ji = 1, jpi                 ! local domain indices ==> data domain indices 
    90         mig(ji) = ji + jpizoom - 1 + nimpp - 1 
     92      DO ji = 1, jpi                 ! local domain indices ==> global domain indices 
     93        mig(ji) = ji + nimpp - 1 
    9194      END DO 
    9295      DO jj = 1, jpj 
    93         mjg(jj) = jj + jpjzoom - 1 + njmpp - 1 
     96        mjg(jj) = jj + njmpp - 1 
    9497      END DO 
    9598      ! 
    96       !                              ! data domain indices ==> local domain indices 
     99      !                              ! global domain indices ==> local domain indices 
    97100      !                                   ! (return (m.0,m.1)=(1,0) if data domain gridpoint is to the west/south of the  
    98101      !                                   !local domain, or (m.0,m.1)=(jp.+1,jp.) to the east/north of local domain.  
    99       DO ji = 1, jpidta 
    100         mi0(ji) = MAX( 1, MIN( ji - jpizoom + 1 - nimpp + 1, jpi+1 ) ) 
    101         mi1(ji) = MAX( 0, MIN( ji - jpizoom + 1 - nimpp + 1, jpi   ) ) 
     102      DO ji = 1, jpiglo 
     103        mi0(ji) = MAX( 1 , MIN( ji - nimpp + 1, jpi+1 ) ) 
     104        mi1(ji) = MAX( 0 , MIN( ji - nimpp + 1, jpi   ) ) 
    102105      END DO 
    103       DO jj = 1, jpjdta 
    104         mj0(jj) = MAX( 1, MIN( jj - jpjzoom + 1 - njmpp + 1, jpj+1 ) ) 
    105         mj1(jj) = MAX( 0, MIN( jj - jpjzoom + 1 - njmpp + 1, jpj   ) ) 
     106      DO jj = 1, jpjglo 
     107        mj0(jj) = MAX( 1 , MIN( jj - njmpp + 1, jpj+1 ) ) 
     108        mj1(jj) = MAX( 0 , MIN( jj - njmpp + 1, jpj   ) ) 
    106109      END DO 
    107110      IF(lwp) THEN                   ! control print 
    108111         WRITE(numout,*) 
    109          WRITE(numout,*) 'dom_glo : domain: data / local ' 
     112         WRITE(numout,*) 'dom_glo : domain: global <<==>> local ' 
    110113         WRITE(numout,*) '~~~~~~~ ' 
    111          WRITE(numout,*) '          data input domain    : jpidta = ', jpidta,   & 
    112             &                                            ' jpjdta = ', jpjdta, ' jpkdta = ', jpkdta 
    113          WRITE(numout,*) '          global or zoom domain: jpiglo = ', jpiglo,   & 
    114             &                                            ' jpjglo = ', jpjglo, ' jpk    = ', jpk 
    115          WRITE(numout,*) '          local domain         : jpi    = ', jpi   ,   & 
    116             &                                            ' jpj    = ', jpj   , ' jpk    = ', jpk 
     114         WRITE(numout,*) '          global domain:   jpiglo = ', jpiglo, ' jpjglo = ', jpjglo, ' jpkglo = ', jpkglo 
     115         WRITE(numout,*) '          local  domain:   jpi    = ', jpi   , ' jpj    = ', jpj   , ' jpk    = ', jpk 
    117116         WRITE(numout,*) 
    118          WRITE(numout,*) '          south-west indices    jpizoom = ', jpizoom,   & 
    119             &                                           ' jpjzoom = ', jpjzoom 
    120117         IF( nn_print >= 1 ) THEN 
    121118            WRITE(numout,*) 
     
    125122            WRITE(numout,*) '          conversion data   ==> local  i-index domain' 
    126123            WRITE(numout,*) '             starting index' 
    127             WRITE(numout,25)              (mi0(ji),ji = 1,jpidta) 
     124            WRITE(numout,25)              (mi0(ji),ji = 1,jpiglo) 
    128125            WRITE(numout,*) '             ending index' 
    129             WRITE(numout,25)              (mi1(ji),ji = 1,jpidta) 
     126            WRITE(numout,25)              (mi1(ji),ji = 1,jpiglo) 
    130127            WRITE(numout,*) 
    131128            WRITE(numout,*) '          conversion local  ==> data j-index domain' 
     
    134131            WRITE(numout,*) '          conversion data  ==> local j-index domain' 
    135132            WRITE(numout,*) '             starting index' 
    136             WRITE(numout,25)              (mj0(jj),jj = 1,jpjdta) 
     133            WRITE(numout,25)              (mj0(jj),jj = 1,jpjglo) 
    137134            WRITE(numout,*) '             ending index' 
    138             WRITE(numout,25)              (mj1(jj),jj = 1,jpjdta) 
     135            WRITE(numout,25)              (mj1(jj),jj = 1,jpjglo) 
    139136         ENDIF 
    140137      ENDIF 
    141138 25   FORMAT( 100(10x,19i4,/) ) 
    142139 
    143       !                        ! ============== ! 
    144       !                        !  Zoom domain   ! 
    145       !                        ! ============== ! 
    146       !                              ! zoom control 
    147       IF( jpiglo + jpizoom - 1  >  jpidta .OR.   & 
    148           jpjglo + jpjzoom - 1  >  jpjdta      ) & 
    149           &   CALL ctl_stop( ' global or zoom domain exceed the data domain ! ' ) 
    150  
    151       !                              ! set zoom flag 
    152       IF( jpiglo < jpidta .OR. jpjglo < jpjdta )   lzoom = .TRUE. 
    153  
    154       !                              ! set zoom type flags 
    155       IF( lzoom .AND. jpizoom /= 1 )   lzoom_w = .TRUE.                     !  
    156       IF( lzoom .AND. jpjzoom /= 1 )   lzoom_s = .TRUE. 
    157       IF( lzoom .AND. jpiglo + jpizoom -1 /= jpidta )   lzoom_e = .TRUE. 
    158       IF( lzoom .AND. jpjglo + jpjzoom -1 /= jpjdta )   lzoom_n = .TRUE. 
    159       IF(lwp) THEN 
    160          WRITE(numout,*) 
    161          WRITE(numout,*) '          zoom flags : ' 
    162          WRITE(numout,*) '             lzoom   = ', lzoom  , ' (T = zoom, F = global )' 
    163          WRITE(numout,*) '             lzoom_e = ', lzoom_e, ' (T = forced closed east  boundary)' 
    164          WRITE(numout,*) '             lzoom_w = ', lzoom_w, ' (T = forced closed west  boundary)' 
    165          WRITE(numout,*) '             lzoom_s = ', lzoom_s, ' (T = forced closed South boundary)' 
    166          WRITE(numout,*) '             lzoom_n = ', lzoom_n, ' (T = forced closed North boundary)' 
    167       ENDIF 
    168       IF(  ( lzoom_e .OR. lzoom_w )  .AND.  ( jperio == 1 .OR. jperio == 4 .OR. jperio == 6 )  )   & 
    169            &   CALL ctl_stop( ' Your zoom choice is inconsistent with east-west cyclic boundary condition' ) 
    170       IF(  lzoom_n  .AND.  ( 3 <= jperio .AND. jperio <= 6 )  )   & 
    171            &   CALL ctl_stop( ' Your zoom choice is inconsistent with North fold boundary condition' ) 
    172  
    173       !                              ! Pre-defined arctic/antarctic zoom of ORCA configuration flag 
    174       IF( cp_cfg == "orca" ) THEN 
    175          SELECT CASE ( jp_cfg ) 
    176          CASE ( 2 )                               !  ORCA_R2 configuration 
    177             IF(  cp_cfz == "arctic"    .AND. jpiglo  == 142    .AND. jpjglo  ==  53 .AND.   & 
    178                & jpizoom ==  21    .AND. jpjzoom ==  97         )   THEN 
    179               IF(lwp) WRITE(numout,*) '          ORCA configuration: arctic zoom ' 
    180             ENDIF 
    181             IF(  cp_cfz == "antarctic" .AND. jpiglo  == jpidta .AND. jpjglo  ==  50 .AND.   & 
    182                & jpizoom ==   1    .AND. jpjzoom ==   1         )   THEN 
    183               IF(lwp) WRITE(numout,*) '          ORCA configuration: antarctic zoom ' 
    184             ENDIF 
    185             !                              
    186          CASE ( 05 )                              !  ORCA_R05 configuration 
    187             IF(    cp_cfz == "arctic"    .AND. jpiglo  == 562    .AND. jpjglo  == 202 .AND.   & 
    188                & jpizoom ==  81    .AND. jpjzoom == 301         )   THEN 
    189               IF(lwp) WRITE(numout,*) '          ORCA configuration: arctic zoom ' 
    190             ENDIF 
    191             IF(    cp_cfz == "antarctic" .AND. jpiglo  == jpidta .AND. jpjglo  == 187 .AND.   & 
    192                & jpizoom ==   1    .AND. jpjzoom ==   1         )   THEN 
    193               IF(lwp) WRITE(numout,*) '          ORCA configuration: antarctic zoom ' 
    194             ENDIF 
    195          END SELECT 
    196          ! 
    197       ENDIF 
    198140      ! 
    199141   END SUBROUTINE dom_glo 
Note: See TracChangeset for help on using the changeset viewer.