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 3865 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr_substitute.h90 – NEMO

Ignore:
Timestamp:
2013-04-09T18:34:38+02:00 (11 years ago)
Author:
acc
Message:

Branch 2013/dev_r3858_NOC_ZTC, #863. Nearly complete port of 2011/dev_r2739_LOCEAN8_ZTC development branch into v3.5aplha base. Compiles and runs but currently unstable after 8 timesteps with ORCA2_LIM reference configuration.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr_substitute.h90

    r2528 r3865  
    88   !!            3.1  !  2009-02  (G. Madec, M. Leclair)  pure z* coordinate 
    99   !!---------------------------------------------------------------------- 
    10 ! reference for s- or zps-coordinate (3D no time dependency) 
    11 #   define  fsdept_0(i,j,k)  gdept(i,j,k) 
    12 #   define  fsdepw_0(i,j,k)  gdepw(i,j,k) 
    13 #   define  fsde3w_0(i,j,k)  gdep3w(i,j,k) 
    14 #   define  fse3t_0(i,j,k)   e3t(i,j,k) 
    15 #   define  fse3u_0(i,j,k)   e3u(i,j,k) 
    16 #   define  fse3v_0(i,j,k)   e3v(i,j,k) 
    17 #   define  fse3f_0(i,j,k)   e3f(i,j,k) 
    18 #   define  fse3w_0(i,j,k)   e3w(i,j,k) 
    19 #   define  fse3uw_0(i,j,k)  e3uw(i,j,k) 
    20 #   define  fse3vw_0(i,j,k)  e3vw(i,j,k) 
     10 
    2111#if defined key_vvl 
    22 ! s* or z*-coordinate (3D + time dependency) + use of additional now arrays (..._1) 
    23 #   define  fsdept(i,j,k)  gdept_1(i,j,k) 
    24 #   define  fsdepw(i,j,k)  gdepw_1(i,j,k) 
    25 #   define  fsde3w(i,j,k)  gdep3w_1(i,j,k) 
    26 #   define  fse3t(i,j,k)   e3t_1(i,j,k) 
    27 #   define  fse3u(i,j,k)   e3u_1(i,j,k) 
    28 #   define  fse3v(i,j,k)   e3v_1(i,j,k) 
    29 #   define  fse3f(i,j,k)   e3f_1(i,j,k) 
    30 #   define  fse3w(i,j,k)   e3w_1(i,j,k) 
    31 #   define  fse3uw(i,j,k)  e3uw_1(i,j,k) 
    32 #   define  fse3vw(i,j,k)  e3vw_1(i,j,k) 
     12! s* or z*-coordinate (3D + time dependency) + use of additional now arrays (..._n) 
    3313 
    3414#   define  fse3t_b(i,j,k)   e3t_b(i,j,k) 
    3515#   define  fse3u_b(i,j,k)   e3u_b(i,j,k) 
    3616#   define  fse3v_b(i,j,k)   e3v_b(i,j,k) 
    37 #   define  fse3uw_b(i,j,k)  (fse3uw_0(i,j,k)*(1.+sshu_b(i,j)*muu(i,j,k))) 
    38 #   define  fse3vw_b(i,j,k)  (fse3vw_0(i,j,k)*(1.+sshv_b(i,j)*muv(i,j,k))) 
     17#   define  fse3uw_b(i,j,k)  e3uw_b(i,j,k) 
     18#   define  fse3vw_b(i,j,k)  e3vw_b(i,j,k) 
    3919 
    40 #   define  fsdept_n(i,j,k)  (fsdept_0(i,j,k)*(1.+sshn(i,j)*mut(i,j,k))) 
    41 #   define  fsdepw_n(i,j,k)  (fsdepw_0(i,j,k)*(1.+sshn(i,j)*mut(i,j,k))) 
    42 #   define  fsde3w_n(i,j,k)  (fsde3w_0(i,j,k)*(1.+sshn(i,j)*mut(i,j,k))-sshn(i,j)) 
    43 #   define  fse3t_n(i,j,k)   (fse3t_0(i,j,k)*(1.+sshn(i,j)*mut(i,j,k))) 
    44 #   define  fse3u_n(i,j,k)   (fse3u_0(i,j,k)*(1.+sshu_n(i,j)*muu(i,j,k))) 
    45 #   define  fse3v_n(i,j,k)   (fse3v_0(i,j,k)*(1.+sshv_n(i,j)*muv(i,j,k))) 
    46 #   define  fse3f_n(i,j,k)   (fse3f_0(i,j,k)*(1.+sshf_n(i,j)*muf(i,j,k))) 
    47 #   define  fse3w_n(i,j,k)   (fse3w_0(i,j,k)*(1.+sshn(i,j)*mut(i,j,k))) 
    48 #   define  fse3uw_n(i,j,k)  (fse3uw_0(i,j,k)*(1.+sshu_n(i,j)*muu(i,j,k))) 
    49 #   define  fse3vw_n(i,j,k)  (fse3vw_0(i,j,k)*(1.+sshv_n(i,j)*muv(i,j,k))) 
     20#   define  fsdept_n(i,j,k)  gdept_n(i,j,k) 
     21#   define  fsdepw_n(i,j,k)  gdepw_n(i,j,k) 
     22#   define  fsde3w_n(i,j,k)  gdep3w_n(i,j,k) 
     23#   define  fse3t_n(i,j,k)   e3t_n(i,j,k) 
     24#   define  fse3u_n(i,j,k)   e3u_n(i,j,k) 
     25#   define  fse3v_n(i,j,k)   e3v_n(i,j,k) 
     26#   define  fse3f_n(i,j,k)   e3f_n(i,j,k) 
     27#   define  fse3w_n(i,j,k)   e3w_n(i,j,k) 
     28#   define  fse3uw_n(i,j,k)  e3uw_n(i,j,k) 
     29#   define  fse3vw_n(i,j,k)  e3vw_n(i,j,k) 
    5030 
    51 #   define  fse3t_m(i,j,k)   (fse3t_0(i,j,k)*(1.+ssh_m(i,j)*mut(i,j,k))) 
     31#   define  fse3t_a(i,j,k)   e3t_a(i,j,k) 
     32#   define  fse3u_a(i,j,k)   e3u_a(i,j,k) 
     33#   define  fse3v_a(i,j,k)   e3v_a(i,j,k) 
    5234 
    53 #   define  fse3t_a(i,j,k)   (fse3t_0(i,j,k)*(1.+ssha(i,j)*mut(i,j,k))) 
    54 #   define  fse3u_a(i,j,k)   (fse3u_0(i,j,k)*(1.+sshu_a(i,j)*muu(i,j,k))) 
    55 #   define  fse3v_a(i,j,k)   (fse3v_0(i,j,k)*(1.+sshv_a(i,j)*muv(i,j,k))) 
     35#   define  fse3t_m(i,j)     e3t_m(i,j) 
     36 
     37! This part should be removed one day ... 
     38! ... In that case all occurence of the above statement functions 
     39!     have to be replaced in the code by xxx_n 
     40#   define  fsdept(i,j,k)    gdept_n(i,j,k) 
     41#   define  fsdepw(i,j,k)    gdepw_n(i,j,k) 
     42#   define  fsde3w(i,j,k)    gdep3w_n(i,j,k) 
     43#   define  fse3t(i,j,k)     e3t_n(i,j,k)  
     44#   define  fse3u(i,j,k)     e3u_n(i,j,k)  
     45#   define  fse3v(i,j,k)     e3v_n(i,j,k)  
     46#   define  fse3f(i,j,k)     e3f_n(i,j,k)  
     47#   define  fse3w(i,j,k)     e3w_n(i,j,k)  
     48#   define  fse3uw(i,j,k)    e3uw_n(i,j,k) 
     49#   define  fse3vw(i,j,k)    e3vw_n(i,j,k) 
    5650 
    5751#else 
    5852! z- or s-coordinate (1D or 3D + no time dependency) use reference in all cases 
    59 #   define  fsdept(i,j,k)  fsdept_0(i,j,k) 
    60 #   define  fsdepw(i,j,k)  fsdepw_0(i,j,k) 
    61 #   define  fsde3w(i,j,k)  fsde3w_0(i,j,k) 
    62 #   define  fse3t(i,j,k)   fse3t_0(i,j,k) 
    63 #   define  fse3u(i,j,k)   fse3u_0(i,j,k) 
    64 #   define  fse3v(i,j,k)   fse3v_0(i,j,k) 
    65 #   define  fse3f(i,j,k)   fse3f_0(i,j,k) 
    66 #   define  fse3w(i,j,k)   fse3w_0(i,j,k) 
    67 #   define  fse3uw(i,j,k)  fse3uw_0(i,j,k) 
    68 #   define  fse3vw(i,j,k)  fse3vw_0(i,j,k) 
    6953 
    70 #   define  fse3t_b(i,j,k)   fse3t_0(i,j,k) 
    71 #   define  fse3u_b(i,j,k)   fse3u_0(i,j,k) 
    72 #   define  fse3v_b(i,j,k)   fse3v_0(i,j,k) 
    73 #   define  fse3uw_b(i,j,k)  fse3uw_0(i,j,k) 
    74 #   define  fse3vw_b(i,j,k)  fse3vw_0(i,j,k) 
     54#   define  fse3t_b(i,j,k)   e3t_0(i,j,k) 
     55#   define  fse3u_b(i,j,k)   e3u_0(i,j,k) 
     56#   define  fse3v_b(i,j,k)   e3v_0(i,j,k) 
     57#   define  fse3uw_b(i,j,k)  e3uw_0(i,j,k) 
     58#   define  fse3vw_b(i,j,k)  e3vw_0(i,j,k) 
    7559 
    76 #   define  fsdept_n(i,j,k)  fsdept_0(i,j,k) 
    77 #   define  fsdepw_n(i,j,k)  fsdepw_0(i,j,k) 
    78 #   define  fsde3w_n(i,j,k)  fsde3w_0(i,j,k) 
    79 #   define  fse3t_n(i,j,k)   fse3t_0(i,j,k) 
    80 #   define  fse3u_n(i,j,k)   fse3u_0(i,j,k) 
    81 #   define  fse3v_n(i,j,k)   fse3v_0(i,j,k) 
    82 #   define  fse3f_n(i,j,k)   fse3f_0(i,j,k) 
    83 #   define  fse3w_n(i,j,k)   fse3w_0(i,j,k) 
    84 #   define  fse3uw_n(i,j,k)  fse3uw_0(i,j,k) 
    85 #   define  fse3vw_n(i,j,k)  fse3vw_0(i,j,k) 
     60#   define  fsdept_n(i,j,k)  gdept_0(i,j,k) 
     61#   define  fsdepw_n(i,j,k)  gdepw_0(i,j,k) 
     62#   define  fsde3w_n(i,j,k)  gdep3w_0(i,j,k) 
     63#   define  fse3t_n(i,j,k)   e3t_0(i,j,k) 
     64#   define  fse3u_n(i,j,k)   e3u_0(i,j,k) 
     65#   define  fse3v_n(i,j,k)   e3v_0(i,j,k) 
     66#   define  fse3f_n(i,j,k)   e3f_0(i,j,k) 
     67#   define  fse3w_n(i,j,k)   e3w_0(i,j,k) 
     68#   define  fse3uw_n(i,j,k)  e3uw_0(i,j,k) 
     69#   define  fse3vw_n(i,j,k)  e3vw_0(i,j,k) 
    8670 
    87 #   define  fse3t_m(i,j,k)   fse3t_0(i,j,k) 
     71#   define  fse3t_a(i,j,k)   e3t_0(i,j,k) 
     72#   define  fse3u_a(i,j,k)   e3u_0(i,j,k) 
     73#   define  fse3v_a(i,j,k)   e3v_0(i,j,k) 
    8874 
    89 #   define  fse3t_a(i,j,k)   fse3t_0(i,j,k) 
    90 #   define  fse3u_a(i,j,k)   fse3u_0(i,j,k) 
    91 #   define  fse3v_a(i,j,k)   fse3v_0(i,j,k) 
     75#   define  fse3t_m(i,j)     e3t_0(i,j,1) 
     76 
     77! This part should be removed one day ... 
     78! ... In that case all occurence of the above statement functions 
     79!     have to be replaced in the code by xxx_n 
     80#   define  fsdept(i,j,k)    gdept_0(i,j,k) 
     81#   define  fsdepw(i,j,k)    gdepw_0(i,j,k) 
     82#   define  fsde3w(i,j,k)    gdep3w_0(i,j,k) 
     83#   define  fse3t(i,j,k)     e3t_0(i,j,k) 
     84#   define  fse3u(i,j,k)     e3u_0(i,j,k) 
     85#   define  fse3v(i,j,k)     e3v_0(i,j,k) 
     86#   define  fse3f(i,j,k)     e3f_0(i,j,k) 
     87#   define  fse3w(i,j,k)     e3w_0(i,j,k) 
     88#   define  fse3uw(i,j,k)    e3uw_0(i,j,k) 
     89#   define  fse3vw(i,j,k)    e3vw_0(i,j,k) 
     90 
    9291#endif 
    9392   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.