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 1605 for trunk/NEMO/NST_SRC/agrif_user.F90 – NEMO

Ignore:
Timestamp:
2009-08-11T14:33:40+02:00 (15 years ago)
Author:
ctlod
Message:

Doctor naming of OPA namelist variables, see ticket: #526

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/NST_SRC/agrif_user.F90

    r1465 r1605  
    77 
    88   SUBROUTINE Agrif_InitWorkspace 
    9       !!------------------------------------------ 
    10       !!   *** ROUTINE Agrif_InitWorkspace *** 
    11       !!------------------------------------------  
     9      !!---------------------------------------------------------------------- 
     10      !!                 *** ROUTINE Agrif_InitWorkspace *** 
     11      !!---------------------------------------------------------------------- 
    1212      USE par_oce 
    1313      USE dom_oce 
    1414      USE Agrif_Util 
    15  
     15      !! 
    1616      IMPLICIT NONE 
    17        
     17      !! 
    1818#if defined key_mpp_dyndist 
    1919      CHARACTER(len=20) :: namelistname 
    2020      INTEGER nummpp 
    21       NAMELIST/nam_mpp_dyndist/jpni,jpnj,jpnij 
    22  
    23       IF (Agrif_Nbstepint() .EQ. 0) THEN 
     21      NAMELIST/nammpp_dyndist/ jpni, jpnj, jpnij 
     22#endif 
     23      !!---------------------------------------------------------------------- 
     24 
     25#if defined key_mpp_dyndist 
     26      ! MPP dynamical distribution : read the processor cutting in the namelist 
     27      IF( Agrif_Nbstepint() == 0 ) THEN 
    2428        nummpp = Agrif_Get_Unit() 
    2529        namelistname='namelist' 
    26         IF (.NOT. Agrif_Root()) namelistname=TRIM(Agrif_CFixed())//'_namelist' 
    27         OPEN(nummpp,file=namelistname,status='OLD',form='formatted') 
    28         READ (nummpp,nam_mpp_dyndist) 
     30        IF(.NOT. Agrif_Root() )   namelistname=TRIM(Agrif_CFixed())//'_namelist' 
     31        ! 
     32        OPEN (nummpp,file=namelistname,status='OLD',form='formatted') 
     33        READ (nummpp,nammpp_dyndist) 
    2934        CLOSE(nummpp) 
    3035      ENDIF 
     
    3237 
    3338      IF( .NOT. Agrif_Root() ) THEN 
    34          jpiglo = nbcellsx + 2 + 2*nbghostcells 
    35          jpjglo = nbcellsy + 2 + 2*nbghostcells 
    36          jpi = ( jpiglo-2*jpreci + (jpni-1+0) ) / jpni + 2*jpreci 
    37          jpj = ( jpjglo-2*jprecj + (jpnj-1+0) ) / jpnj + 2*jprecj 
    38          jpim1 = jpi-1 
    39          jpjm1 = jpj-1 
    40          jpkm1 = jpk-1                                         
    41          jpij  = jpi*jpj 
    42          jpidta = jpiglo 
    43          jpjdta = jpjglo 
     39         jpiglo  = nbcellsx + 2 + 2*nbghostcells 
     40         jpjglo  = nbcellsy + 2 + 2*nbghostcells 
     41         jpi     = ( jpiglo-2*jpreci + (jpni-1+0) ) / jpni + 2*jpreci 
     42         jpj     = ( jpjglo-2*jprecj + (jpnj-1+0) ) / jpnj + 2*jprecj 
     43         jpim1   = jpi-1 
     44         jpjm1   = jpj-1 
     45         jpkm1   = jpk-1                                         
     46         jpij    = jpi*jpj 
     47         jpidta  = jpiglo 
     48         jpjdta  = jpjglo 
    4449         jpizoom = 1 
    4550         jpjzoom = 1 
    46          nperio = 0 
    47          jperio = 0 
     51         nperio  = 0 
     52         jperio  = 0 
    4853      ENDIF 
    49  
     54      ! 
    5055   END SUBROUTINE Agrif_InitWorkspace 
    5156 
    52    ! 
    5357#if ! defined key_off_tra 
    5458 
    5559   SUBROUTINE Agrif_InitValues 
    56       !!------------------------------------------ 
    57       !!   *** ROUTINE Agrif_InitValues *** 
    58       !! 
    59       !! ** Purpose :: Declaration of variables to 
    60       !!               be interpolated 
    61       !!------------------------------------------ 
     60      !!---------------------------------------------------------------------- 
     61      !!                 *** ROUTINE Agrif_InitValues *** 
     62      !! 
     63      !! ** Purpose :: Declaration of variables to be interpolated 
     64      !!---------------------------------------------------------------------- 
    6265      USE Agrif_Util 
    6366      USE oce  
     
    7881      USE agrif_top_interp 
    7982      USE agrif_top_sponge 
    80  
     83      !! 
    8184      IMPLICIT NONE 
    82  
     85      !! 
    8386      REAL(wp) :: tabtemp(jpi,jpj,jpk) 
    8487#if defined key_top 
     
    8689#endif  
    8790      LOGICAL check_namelist 
     91      !!---------------------------------------------------------------------- 
    8892 
    8993      ! 0. Initializations 
     
    313317#endif 
    314318      nbcline = 0 
    315  
     319      ! 
    316320   END SUBROUTINE Agrif_InitValues 
    317    ! 
    318321 
    319322#else 
     323 
    320324   SUBROUTINE Agrif_InitValues 
    321       !!------------------------------------------ 
    322       !!   *** ROUTINE Agrif_InitValues *** 
    323       !! 
    324       !! ** Purpose :: Declaration of variables to 
    325       !!               be interpolated 
    326       !!------------------------------------------ 
     325      !!---------------------------------------------------------------------- 
     326      !!                 *** ROUTINE Agrif_InitValues *** 
     327      !! 
     328      !! ** Purpose :: Declaration of variables to be interpolated 
     329      !!---------------------------------------------------------------------- 
    327330      USE Agrif_Util 
    328331      USE oce  
     
    334337      USE agrif_top_interp 
    335338      USE agrif_top_sponge 
    336  
     339      !! 
    337340      IMPLICIT NONE 
    338  
     341      !! 
    339342      REAL(wp) :: tabtrtemp(jpi,jpj,jpk,jptra) 
    340343      LOGICAL check_namelist 
     344      !!---------------------------------------------------------------------- 
    341345 
    342346      ! 0. Initializations 
     
    441445      CALL Agrif_Update_trc(0) 
    442446      nbcline_trc = 0 
    443  
     447      ! 
    444448   END SUBROUTINE Agrif_InitValues 
     449 
    445450#endif 
    446451    
    447 SUBROUTINE Agrif_detect(g,sizex) 
    448       !!------------------------------------------ 
     452   SUBROUTINE Agrif_detect( g, sizex ) 
     453      !!---------------------------------------------------------------------- 
    449454      !!   *** ROUTINE Agrif_detect *** 
    450       !!------------------------------------------ 
     455      !!---------------------------------------------------------------------- 
    451456      USE Agrif_Types 
    452   
     457      !!  
    453458      INTEGER, DIMENSION(2) :: sizex 
    454459      INTEGER, DIMENSION(sizex(1),sizex(2)) :: g  
    455  
    456       Return 
    457  
    458    End SUBROUTINE Agrif_detect 
     460      !!---------------------------------------------------------------------- 
     461      ! 
     462      RETURN 
     463      ! 
     464   END SUBROUTINE Agrif_detect 
     465 
    459466 
    460467   SUBROUTINE agrif_opa_init 
    461       !!--------------------------------------------- 
    462       !!   *** ROUTINE agrif_init *** 
    463       !!--------------------------------------------- 
     468      !!---------------------------------------------------------------------- 
     469      !!                     *** ROUTINE agrif_init *** 
     470      !!---------------------------------------------------------------------- 
    464471      USE agrif_oce  
    465472      USE in_out_manager 
    466  
     473      !! 
    467474      IMPLICIT NONE 
    468  
    469       NAMELIST/namagrif/ nbclineupdate, visc_tra, visc_dyn, ln_spc_dyn 
    470  
    471       REWIND ( numnam ) 
    472       READ   ( numnam, namagrif ) 
    473       IF(lwp) THEN 
     475      !! 
     476      NAMELIST/namagrif/ nn_cln_update, rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn 
     477      !!---------------------------------------------------------------------- 
     478 
     479      REWIND( numnam )                ! Read namagrif namelist 
     480      READ  ( numnam, namagrif ) 
     481      ! 
     482      IF(lwp) THEN                    ! control print 
    474483         WRITE(numout,*) 
    475          WRITE(numout,*) 'agrif_opa_init : agrif parameters' 
     484         WRITE(numout,*) 'agrif_opa_init : AGRIF parameters' 
    476485         WRITE(numout,*) '~~~~~~~~~~~~' 
    477          WRITE(numout,*) '          Namelist namagrif : set agrif parameters' 
    478          WRITE(numout,*) '             baroclinic update frequency          =  ', nbclineupdate 
    479          WRITE(numout,*) '             sponge coefficient for tracers       =  ', visc_tra 
    480          WRITE(numout,*) '             sponge coefficient for dynamics      =  ', visc_dyn 
    481          WRITE(numout,*) '             use special values for dynamics      = ', ln_spc_dyn 
     486         WRITE(numout,*) '   Namelist namagrif : set AGRIF parameters' 
     487         WRITE(numout,*) '      baroclinic update frequency       nn_cln_update = ', nn_cln_update 
     488         WRITE(numout,*) '      sponge coefficient for tracers    rn_sponge_tra = ', rn_sponge_tra, ' s' 
     489         WRITE(numout,*) '      sponge coefficient for dynamics   rn_sponge_tra = ', rn_sponge_dyn, ' s' 
     490         WRITE(numout,*) '      use special values for dynamics   ln_spc_dyn    = ', ln_spc_dyn 
    482491         WRITE(numout,*)  
    483492      ENDIF 
    484  
     493      ! 
     494      ! convert DOCTOR namelist name into OLD names 
     495      nbclineupdate = nn_cln_update 
     496      visc_tra      = rn_sponge_tra 
     497      visc_dyn      = rn_sponge_dyn 
     498      ! 
    485499    END SUBROUTINE agrif_opa_init 
    486 #if defined key_mpp_mpi 
    487    SUBROUTINE Agrif_InvLoc(indloc,nprocloc,i,indglob) 
    488       !!------------------------------------------ 
    489       !!   *** ROUTINE Agrif_detect *** 
    490       !!------------------------------------------ 
     500 
     501# if defined key_mpp_mpi 
     502 
     503   SUBROUTINE Agrif_InvLoc( indloc, nprocloc, i, indglob ) 
     504      !!---------------------------------------------------------------------- 
     505      !!                     *** ROUTINE Agrif_detect *** 
     506      !!---------------------------------------------------------------------- 
    491507      USE dom_oce 
    492        
     508      !! 
    493509      IMPLICIT NONE 
    494  
     510      !! 
    495511      INTEGER :: indglob,indloc,nprocloc,i 
    496  
     512      !!---------------------------------------------------------------------- 
     513      ! 
    497514      SELECT CASE(i) 
    498515      CASE(1) 
     
    505522         indglob = indloc 
    506523      END SELECT 
    507  
     524      ! 
    508525   END SUBROUTINE Agrif_InvLoc 
    509 #endif 
     526 
     527# endif 
     528 
    510529#else 
    511530   SUBROUTINE Subcalledbyagrif 
    512       !!------------------------------------------ 
     531      !!---------------------------------------------------------------------- 
    513532      !!   *** ROUTINE Subcalledbyagrif *** 
    514       !!------------------------------------------ 
     533      !!---------------------------------------------------------------------- 
    515534      WRITE(*,*) 'Impossible to be here' 
    516535   END SUBROUTINE Subcalledbyagrif 
Note: See TracChangeset for help on using the changeset viewer.