Changeset 3604
- Timestamp:
- 2012-11-19T15:21:34+01:00 (12 years ago)
- Location:
- trunk/NEMOGCM
- Files:
-
- 3 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/CONFIG/AMM12/EXP00/namelist
r3309 r3604 3 3 !! namelists 2 - Domain (namzgr, namzgr_sco, namdom, namtsd) 4 4 !! 3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 7 !! 4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) … … 25 25 !----------------------------------------------------------------------- 26 26 nn_no = 0 ! job number (no more used...) 27 cn_exp = "AMM12" ! experience name 27 cn_exp = "AMM12" ! experience name 28 28 nn_it000 = 1 ! first time step 29 29 nn_itend = 576 ! last time step (std 1 day = 576) … … 52 52 !! namzgr_sco s-coordinate or hybrid z-s-coordinate 53 53 !! namdom space and time domain (bathymetry, mesh, timestep) 54 !! namtsd data: temperature & salinity 54 !! namtsd data: temperature & salinity 55 55 !!====================================================================== 56 56 ! … … 72 72 ln_s_sigma = .true. ! hybrid s-sigma coordinates 73 73 rn_bb = 0.8 ! stretching with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 75 75 / 76 76 !----------------------------------------------------------------------- … … 94 94 / 95 95 !----------------------------------------------------------------------- 96 &namtsd ! data : Temperature & Salinity 96 &namtsd ! data : Temperature & Salinity 97 97 !----------------------------------------------------------------------- 98 98 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim !'yearly' or ! weights ! rotation ! … … 129 129 ln_ana = .false ! analytical formulation (T => fill namsbc_ana ) 130 130 ln_flx = .true. ! flux formulation (T => fill namsbc_flx ) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 133 133 ln_blk_mfs = .false. ! MFS bulk formulation (T => fill namsbc_mfs ) 134 134 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) … … 140 140 ln_rnf = .true. ! runoffs (T => fill namsbc_rnf) 141 141 ln_ssr = .false. ! Sea Surface Restoring on T and/or S (T => fill namsbc_ssr) 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 144 144 ! =2 annual global mean of e-p-r set to zero 145 145 ! =3 global emp set to zero and spread out over erp area … … 167 167 sn_emp = 'amm12_flx' , 3 , 'sowafldo' , .true. , .false. , 'daily' , '' , '' 168 168 cn_dir = './fluxes/' ! root directory for the location of the flux files 169 / 169 / 170 170 !----------------------------------------------------------------------- 171 171 &namsbc_clio ! namsbc_clio CLIO bulk formulae … … 224 224 ! ! ! categories ! reference ! orientation ! grids ! 225 225 ! send 226 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 227 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 228 sn_snd_thick = 'none' , 'no' , '' , '' , '' 229 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 230 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 226 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 227 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 228 sn_snd_thick = 'none' , 'no' , '' , '' , '' 229 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 230 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 231 231 ! receive 232 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 233 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 234 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 235 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 236 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 237 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 239 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 240 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 232 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 233 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 234 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 235 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 236 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 237 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 239 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 240 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 242 242 / 243 243 !----------------------------------------------------------------------- … … 305 305 ln_sssr_bnd = .true. ! flag to bound erp term (associated with nn_sssr=2) 306 306 rn_sssr_bnd = 4.e0 ! ABS(Max/Min) value of the damping erp term [mm/day] 307 / 307 / 308 308 !----------------------------------------------------------------------- 309 309 &namsbc_alb ! albedo parameters 310 310 !----------------------------------------------------------------------- 311 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 311 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 312 312 rn_albice = 0.53 ! albedo of melting ice in the arctic and antarctic 313 313 rn_alphd = 0.80 ! coefficients for linear interpolation used to 314 rn_alphc = 0.65 ! compute albedo between two extremes values 314 rn_alphc = 0.65 ! compute albedo between two extremes values 315 315 rn_alphdi = 0.72 ! (Pyane, 1972) 316 316 / … … 322 322 !! namcla cross land advection 323 323 !! namobc open boundaries parameters ("key_obc") 324 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 324 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 325 325 !! nambdy Unstructured open boundaries ("key_bdy") 326 326 !! namtide Tidal forcing at open boundaries ("key_bdy_tides") … … 344 344 ln_obc_clim = .false. ! climatological obc data files (T) or not (F) 345 345 ln_vol_cst = .true. ! impose the total volume conservation (T) or not (F) 346 ln_obc_fla = .false. ! Flather open boundary condition 346 ln_obc_fla = .false. ! Flather open boundary condition 347 347 nn_obcdta = 1 ! = 0 the obc data are equal to the initial state 348 348 ! = 1 the obc data are read in 'obc.dta' files … … 388 388 &nambdy ! unstructured open boundaries ("key_bdy") 389 389 !----------------------------------------------------------------------- 390 nb_bdy = 1 ! number of open boundary sets 390 nb_bdy = 1 ! number of open boundary sets 391 391 ln_coords_file = .true. ! =T : read bdy coordinates from file 392 392 cn_coords_file = 'coordinates.bdy.nc' ! bdy coordinates files … … 424 424 / 425 425 !----------------------------------------------------------------------- 426 &nambdy_tide ! tidal forcing at open boundaries 426 &nambdy_tide ! tidal forcing at open boundaries 427 427 !----------------------------------------------------------------------- 428 428 filtide = 'bdydta/amm12_bdytide_' ! file name root of tidal forcing files … … 463 463 !!====================================================================== 464 464 !! nambfr bottom friction 465 !! nambbc bottom temperature boundary condition 465 !! nambbc bottom temperature boundary condition 466 466 !! nambbl bottom boundary layer scheme ("key_trabbl") 467 467 !!====================================================================== … … 483 483 !----------------------------------------------------------------------- 484 484 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 485 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 485 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 486 486 ! = 1 constant flux 487 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 487 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 488 488 rn_geoflx_cst = 86.4e-3 ! Constant value of geothermal heat flux [W/m2] 489 489 / … … 503 503 !! namtra_adv advection scheme 504 504 !! namtra_ldf lateral diffusion scheme 505 !! namtra_dmp T & S newtonian damping 505 !! namtra_dmp T & S newtonian damping 506 506 !!====================================================================== 507 507 ! … … 517 517 / 518 518 !----------------------------------------------------------------------- 519 &namtra_adv ! advection scheme for tracer 520 !----------------------------------------------------------------------- 521 ln_traadv_cen2 = .false. ! 2nd order centered scheme 522 ln_traadv_tvd = .true. ! TVD scheme 523 ln_traadv_muscl = .false. ! MUSCL scheme 524 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 525 ln_traadv_ubs = .false. ! UBS scheme 526 ln_traadv_qck = .false. ! QUICKEST scheme 519 &namtra_adv ! advection scheme for tracer 520 !----------------------------------------------------------------------- 521 ln_traadv_cen2 = .false. ! 2nd order centered scheme 522 ln_traadv_tvd = .true. ! TVD scheme 523 ln_traadv_muscl = .false. ! MUSCL scheme 524 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 525 ln_traadv_ubs = .false. ! UBS scheme 526 ln_traadv_qck = .false. ! QUICKEST scheme 527 527 / 528 528 !---------------------------------------------------------------------------------- … … 551 551 / 552 552 !----------------------------------------------------------------------- 553 &namtra_dmp ! tracer: T & S newtonian damping 553 &namtra_dmp ! tracer: T & S newtonian damping 554 554 !----------------------------------------------------------------------- 555 555 ln_tradmp = .false. ! add a damping termn (T) or not (F) … … 579 579 &namdyn_adv ! formulation of the momentum advection 580 580 !----------------------------------------------------------------------- 581 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 581 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 582 582 ln_dynadv_cen2= .false. ! flux form - 2nd order centered scheme 583 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 584 / 583 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 584 / 585 585 !----------------------------------------------------------------------- 586 586 &namdyn_vor ! option of physics/algorithm (not control by CPP keys) 587 587 !----------------------------------------------------------------------- 588 ln_dynvor_ene = .false. ! enstrophy conserving scheme 589 ln_dynvor_ens = .false. ! energy conserving scheme 590 ln_dynvor_mix = .false. ! mixed scheme 591 ln_dynvor_een = .true. ! energy & enstrophy scheme 588 ln_dynvor_ene = .false. ! enstrophy conserving scheme 589 ln_dynvor_ens = .false. ! energy conserving scheme 590 ln_dynvor_mix = .false. ! mixed scheme 591 ln_dynvor_een = .true. ! energy & enstrophy scheme 592 592 / 593 593 !----------------------------------------------------------------------- 594 594 &namdyn_hpg ! Hydrostatic pressure gradient option 595 595 !----------------------------------------------------------------------- 596 ln_hpg_zco = .false. ! z-coordinate - full steps 596 ln_hpg_zco = .false. ! z-coordinate - full steps 597 597 ln_hpg_zps = .false. ! z-coordinate - partial steps (interpolation) 598 598 ln_hpg_sco = .true. ! s-coordinate (standard jacobian formulation) … … 612 612 &namdyn_ldf ! lateral diffusion on momentum 613 613 !----------------------------------------------------------------------- 614 ! ! Type of the operator : 615 ln_dynldf_lap = .true. ! laplacian operator 614 ! ! Type of the operator : 615 ln_dynldf_lap = .true. ! laplacian operator 616 616 ln_dynldf_bilap = .true. ! bilaplacian operator 617 617 ! Direction of action : 618 ln_dynldf_level = .false. ! iso-level 618 ln_dynldf_level = .false. ! iso-level 619 619 ln_dynldf_hor = .true. ! horizontal (geopotential) (require "key_ldfslp" in s-coord.) 620 620 ln_dynldf_iso = .false. ! iso-neutral (require "key_ldfslp") 621 ! Coefficient 621 ! Coefficient 622 622 rn_ahm_0_lap = 60.0 ! horizontal laplacian eddy viscosity [m2/s] 623 623 rn_ahmb_0 = 0.0 ! background eddy viscosity for ldf_iso [m2/s] … … 695 695 &namzdf_kpp ! K-Profile Parameterization dependent vertical mixing ("key_zdfkpp", and optionally: 696 696 !------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 697 ln_kpprimix = .true. ! shear instability mixing 697 ln_kpprimix = .true. ! shear instability mixing 698 698 rn_difmiw = 1.0e-04 ! constant internal wave viscosity [m2/s] 699 699 rn_difsiw = 0.1e-04 ! constant internal wave diffusivity [m2/s] 700 700 rn_riinfty = 0.8 ! local Richardson Number limit for shear instability 701 701 rn_difri = 0.0050 ! maximum shear mixing at Rig = 0 [m2/s] 702 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 703 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 702 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 703 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 704 704 nn_avb = 0 ! horizontal averaged (=1) or not (=0) on avt and amv 705 705 nn_ave = 1 ! constant (=0) or profile (=1) background on avt … … 735 735 rn_n2min = 1.e-8 ! threshold of the Brunt-Vaisala frequency (s-1) 736 736 rn_tfe = 0.333 ! tidal dissipation efficiency 737 rn_me = 0.2 ! mixing efficiency 737 rn_me = 0.2 ! mixing efficiency 738 738 ln_tmx_itf = .FALSE. ! ITF specific parameterisation 739 739 rn_tfe_itf = 1. ! ITF tidal dissipation efficiency … … 745 745 !! nammpp Massively Parallel Processing ("key_mpp_mpi) 746 746 !! namctl Control prints & Benchmark 747 !! namsol elliptic solver / island / free surface 748 !!====================================================================== 749 ! 750 !----------------------------------------------------------------------- 751 &namsol ! elliptic solver / island / free surface 747 !! namsol elliptic solver / island / free surface 748 !!====================================================================== 749 ! 750 !----------------------------------------------------------------------- 751 &namsol ! elliptic solver / island / free surface 752 752 !----------------------------------------------------------------------- 753 753 nn_solv = 1 ! elliptic solver: =1 preconditioned conjugate gradient (pcg) … … 795 795 !! namflo float parameters ("key_float") 796 796 !! namptr Poleward Transport Diagnostics 797 !! namhsb Heat and salt budgets 797 !! namhsb Heat and salt budgets 798 798 !!====================================================================== 799 799 ! … … 833 833 jpnnewflo = 0 ! number of floats for the restart 834 834 ln_rstflo = .false. ! float restart (T) or not (F) 835 nn_writefl = 75 ! frequency of writing in float output file 836 nn_stockfl = 5475 ! frequency of creation of the float restart file 835 nn_writefl = 75 ! frequency of writing in float output file 836 nn_stockfl = 5475 ! frequency of creation of the float restart file 837 837 ln_argo = .false. ! Argo type floats (stay at the surface each 10 days) 838 838 ln_flork4 = .false. ! trajectories computed with a 4th order Runge-Kutta (T) … … 846 846 ln_diaptr = .false. ! Poleward heat and salt transport (T) or not (F) 847 847 ln_diaznl = .false. ! Add zonal means and meridional stream functions 848 ln_subbas = .false. ! Atlantic/Pacific/Indian basins computation (T) or not 848 ln_subbas = .false. ! Atlantic/Pacific/Indian basins computation (T) or not 849 849 ! (orca configuration only, need input basins mask file named "subbasins.nc" 850 850 ln_ptrcomp = .false. ! Add decomposition : overturning … … 853 853 / 854 854 !----------------------------------------------------------------------- 855 &namhsb ! Heat and salt budgets 855 &namhsb ! Heat and salt budgets 856 856 !----------------------------------------------------------------------- 857 857 ln_diahsb = .false. ! check the heat and salt budgets (T) or not (F) … … 885 885 &namobs ! observation usage switch ('key_diaobs') 886 886 !----------------------------------------------------------------------- 887 ln_t3d = .false. ! Logical switch for T profile observations 888 ln_s3d = .false. ! Logical switch for S profile observations 889 ln_ena = .false. ! Logical switch for ENACT insitu data set 890 ! ! ln_cor Logical switch for Coriolis insitu data set 891 ln_profb = .false. ! Logical switch for feedback insitu data set 892 ln_sla = .false. ! Logical switch for SLA observations 893 894 ln_sladt = .false. ! Logical switch for AVISO SLA data 895 896 ln_slafb = .false. ! Logical switch for feedback SLA data 897 ! ln_ssh Logical switch for SSH observations 898 899 ln_sst = .false. ! Logical switch for SST observations 900 ! ln_reysst Logical switch for Reynolds observations 901 ! ln_ghrsst Logical switch for GHRSST observations 902 903 ln_sstfb = .false. ! Logical switch for feedback SST data 904 ! ln_sss Logical switch for SSS observations 905 ! ln_seaice Logical switch for Sea Ice observations 906 ! ln_vel3d Logical switch for velocity observations 907 ! ln_velavcur Logical switch for velocity daily av. cur. 908 ! ln_velhrcur Logical switch for velocity high freq. cur. 909 ! ln_velavadcp Logical switch for velocity daily av. ADCP 887 ln_t3d = .false. ! Logical switch for T profile observations 888 ln_s3d = .false. ! Logical switch for S profile observations 889 ln_ena = .false. ! Logical switch for ENACT insitu data set 890 ! ! ln_cor Logical switch for Coriolis insitu data set 891 ln_profb = .false. ! Logical switch for feedback insitu data set 892 ln_sla = .false. ! Logical switch for SLA observations 893 894 ln_sladt = .false. ! Logical switch for AVISO SLA data 895 896 ln_slafb = .false. ! Logical switch for feedback SLA data 897 ! ln_ssh Logical switch for SSH observations 898 899 ln_sst = .false. ! Logical switch for SST observations 900 ! ln_reysst Logical switch for Reynolds observations 901 ! ln_ghrsst Logical switch for GHRSST observations 902 903 ln_sstfb = .false. ! Logical switch for feedback SST data 904 ! ln_sss Logical switch for SSS observations 905 ! ln_seaice Logical switch for Sea Ice observations 906 ! ln_vel3d Logical switch for velocity observations 907 ! ln_velavcur Logical switch for velocity daily av. cur. 908 ! ln_velhrcur Logical switch for velocity high freq. cur. 909 ! ln_velavadcp Logical switch for velocity daily av. ADCP 910 910 ! ln_velhradcp Logical switch for velocity high freq. ADCP 911 ! ln_velfb Logical switch for feedback velocity data 912 ! ln_grid_global Global distribtion of observations 913 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 914 ! grid_search_file Grid search lookup file header 915 ! enactfiles ENACT input observation file names 916 ! coriofiles Coriolis input observation file name 917 ! ! profbfiles: Profile feedback input observation file name 911 ! ln_velfb Logical switch for feedback velocity data 912 ! ln_grid_global Global distribtion of observations 913 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 914 ! grid_search_file Grid search lookup file header 915 ! enactfiles ENACT input observation file names 916 ! coriofiles Coriolis input observation file name 917 ! ! profbfiles: Profile feedback input observation file name 918 918 profbfiles = 'profiles_01.nc' 919 ! ln_profb_enatim Enact feedback input time setting switch 919 ! ln_profb_enatim Enact feedback input time setting switch 920 920 ! slafilesact Active SLA input observation file name 921 ! slafilespas Passive SLA input observation file name 922 ! ! slafbfiles: Feedback SLA input observation file name 921 ! slafilespas Passive SLA input observation file name 922 ! ! slafbfiles: Feedback SLA input observation file name 923 923 slafbfiles = 'sla_01.nc' 924 ! sstfiles GHRSST input observation file name 925 ! ! sstfbfiles: Feedback SST input observation file name 924 ! sstfiles GHRSST input observation file name 925 ! ! sstfbfiles: Feedback SST input observation file name 926 926 sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 927 ! seaicefiles Sea Ice input observation file name 928 ! velavcurfiles Vel. cur. daily av. input file name 929 ! velhvcurfiles Vel. cur. high freq. input file name 930 ! velavadcpfiles Vel. ADCP daily av. input file name 931 ! velhvadcpfiles Vel. ADCP high freq. input file name 932 ! velfbfiles Vel. feedback input observation file name 933 ! dobsini Initial date in window YYYYMMDD.HHMMSS 934 ! dobsend Final date in window YYYYMMDD.HHMMSS 935 ! n1dint Type of vertical interpolation method 936 ! n2dint Type of horizontal interpolation method 937 ! ln_nea Rejection of observations near land switch 938 nmsshc = 0 ! MSSH correction scheme 939 ! mdtcorr MDT correction 940 ! mdtcutoff MDT cutoff for computed correction 941 ln_altbias = .false. ! Logical switch for alt bias 942 ln_ignmis = .true. ! Logical switch for ignoring missing files 943 ! endailyavtypes ENACT daily average types 927 ! seaicefiles Sea Ice input observation file name 928 ! velavcurfiles Vel. cur. daily av. input file name 929 ! velhvcurfiles Vel. cur. high freq. input file name 930 ! velavadcpfiles Vel. ADCP daily av. input file name 931 ! velhvadcpfiles Vel. ADCP high freq. input file name 932 ! velfbfiles Vel. feedback input observation file name 933 ! dobsini Initial date in window YYYYMMDD.HHMMSS 934 ! dobsend Final date in window YYYYMMDD.HHMMSS 935 ! n1dint Type of vertical interpolation method 936 ! n2dint Type of horizontal interpolation method 937 ! ln_nea Rejection of observations near land switch 938 nmsshc = 0 ! MSSH correction scheme 939 ! mdtcorr MDT correction 940 ! mdtcutoff MDT cutoff for computed correction 941 ln_altbias = .false. ! Logical switch for alt bias 942 ln_ignmis = .true. ! Logical switch for ignoring missing files 943 ! endailyavtypes ENACT daily average types 944 944 ln_grid_global = .true. 945 945 ln_grid_search_lookup = .false. 946 / 946 / 947 947 !----------------------------------------------------------------------- 948 948 &nam_asminc ! assimilation increments ('key_asminc') 949 949 !----------------------------------------------------------------------- 950 ln_bkgwri = .false. ! Logical switch for writing out background state 951 ln_trjwri = .false. ! Logical switch for writing out state trajectory 950 ln_bkgwri = .false. ! Logical switch for writing out background state 952 951 ln_trainc = .false. ! Logical switch for applying tracer increments 953 952 ln_dyninc = .false. ! Logical switch for applying velocity increments 954 ln_sshinc = .false. ! Logical switch for applying SSH increments 953 ln_sshinc = .false. ! Logical switch for applying SSH increments 955 954 ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) 956 955 ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) … … 960 959 nitiaufin = 15 ! Timestep of end of IAU interval in [0,nitend-nit000-1] 961 960 niaufn = 0 ! Type of IAU weighting function 962 nittrjfrq = 0 ! Frequency of trajectory output for 4D-VAR963 961 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 964 962 salfixmin = -9999 ! Minimum salinity after applying the increments … … 989 987 rn_htrmax = 200.0 ! max. depth of transition range 990 988 / 989 !----------------------------------------------------------------------- 990 &namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 991 !----------------------------------------------------------------------- 992 cn_dirtrj = 'tam_trajectory' ! prefix for input/ouput files 993 ln_trjhand = .false. ! Handling non linear trajectory 994 nn_ittrjfrq = 20 ! Output/input frequency 995 ln_trj_spl = .false. ! Handling trajectory at simple precision 996 / -
trunk/NEMOGCM/CONFIG/AMM12_PISCES/EXP00/namelist
r3309 r3604 3 3 !! namelists 2 - Domain (namzgr, namzgr_sco, namdom, namtsd) 4 4 !! 3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 7 !! 4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) … … 25 25 !----------------------------------------------------------------------- 26 26 nn_no = 0 ! job number (no more used...) 27 cn_exp = "AMM12" ! experience name 27 cn_exp = "AMM12" ! experience name 28 28 nn_it000 = 1 ! first time step 29 29 nn_itend = 576 ! last time step (std 1 day = 576) … … 52 52 !! namzgr_sco s-coordinate or hybrid z-s-coordinate 53 53 !! namdom space and time domain (bathymetry, mesh, timestep) 54 !! namtsd data: temperature & salinity 54 !! namtsd data: temperature & salinity 55 55 !!====================================================================== 56 56 ! … … 72 72 ln_s_sigma = .true. ! hybrid s-sigma coordinates 73 73 rn_bb = 0.8 ! stretching with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 75 75 / 76 76 !----------------------------------------------------------------------- … … 94 94 / 95 95 !----------------------------------------------------------------------- 96 &namtsd ! data : Temperature & Salinity 96 &namtsd ! data : Temperature & Salinity 97 97 !----------------------------------------------------------------------- 98 98 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim !'yearly' or ! weights ! rotation ! … … 129 129 ln_ana = .false ! analytical formulation (T => fill namsbc_ana ) 130 130 ln_flx = .true. ! flux formulation (T => fill namsbc_flx ) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 133 133 ln_blk_mfs = .false. ! MFS bulk formulation (T => fill namsbc_mfs ) 134 134 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) … … 140 140 ln_rnf = .true. ! runoffs (T => fill namsbc_rnf) 141 141 ln_ssr = .false. ! Sea Surface Restoring on T and/or S (T => fill namsbc_ssr) 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 144 144 ! =2 annual global mean of e-p-r set to zero 145 145 ! =3 global emp set to zero and spread out over erp area … … 167 167 sn_emp = 'amm12_flx' , 3 , 'sowafldo' , .true. , .false. , 'daily' , '' , '' 168 168 cn_dir = './fluxes/' ! root directory for the location of the flux files 169 / 169 / 170 170 !----------------------------------------------------------------------- 171 171 &namsbc_clio ! namsbc_clio CLIO bulk formulae … … 224 224 ! ! ! categories ! reference ! orientation ! grids ! 225 225 ! send 226 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 227 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 228 sn_snd_thick = 'none' , 'no' , '' , '' , '' 229 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 230 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 226 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 227 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 228 sn_snd_thick = 'none' , 'no' , '' , '' , '' 229 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 230 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 231 231 ! receive 232 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 233 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 234 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 235 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 236 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 237 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 239 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 240 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 232 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 233 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 234 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 235 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 236 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 237 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 239 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 240 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 242 242 / 243 243 !----------------------------------------------------------------------- … … 305 305 ln_sssr_bnd = .true. ! flag to bound erp term (associated with nn_sssr=2) 306 306 rn_sssr_bnd = 4.e0 ! ABS(Max/Min) value of the damping erp term [mm/day] 307 / 307 / 308 308 !----------------------------------------------------------------------- 309 309 &namsbc_alb ! albedo parameters 310 310 !----------------------------------------------------------------------- 311 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 311 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 312 312 rn_albice = 0.53 ! albedo of melting ice in the arctic and antarctic 313 313 rn_alphd = 0.80 ! coefficients for linear interpolation used to 314 rn_alphc = 0.65 ! compute albedo between two extremes values 314 rn_alphc = 0.65 ! compute albedo between two extremes values 315 315 rn_alphdi = 0.72 ! (Pyane, 1972) 316 316 / … … 322 322 !! namcla cross land advection 323 323 !! namobc open boundaries parameters ("key_obc") 324 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 324 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 325 325 !! nambdy Unstructured open boundaries ("key_bdy") 326 326 !! namtide Tidal forcing at open boundaries ("key_bdy_tides") … … 344 344 ln_obc_clim = .false. ! climatological obc data files (T) or not (F) 345 345 ln_vol_cst = .true. ! impose the total volume conservation (T) or not (F) 346 ln_obc_fla = .false. ! Flather open boundary condition 346 ln_obc_fla = .false. ! Flather open boundary condition 347 347 nn_obcdta = 1 ! = 0 the obc data are equal to the initial state 348 348 ! = 1 the obc data are read in 'obc.dta' files … … 388 388 &nambdy ! unstructured open boundaries ("key_bdy") 389 389 !----------------------------------------------------------------------- 390 nb_bdy = 1 ! number of open boundary sets 390 nb_bdy = 1 ! number of open boundary sets 391 391 ln_coords_file = .true. ! =T : read bdy coordinates from file 392 392 cn_coords_file = 'coordinates.bdy.nc' ! bdy coordinates files … … 424 424 / 425 425 !----------------------------------------------------------------------- 426 &nambdy_tide ! tidal forcing at open boundaries 426 &nambdy_tide ! tidal forcing at open boundaries 427 427 !----------------------------------------------------------------------- 428 428 filtide = 'bdydta/amm12_bdytide_' ! file name root of tidal forcing files … … 463 463 !!====================================================================== 464 464 !! nambfr bottom friction 465 !! nambbc bottom temperature boundary condition 465 !! nambbc bottom temperature boundary condition 466 466 !! nambbl bottom boundary layer scheme ("key_trabbl") 467 467 !!====================================================================== … … 483 483 !----------------------------------------------------------------------- 484 484 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 485 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 485 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 486 486 ! = 1 constant flux 487 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 487 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 488 488 rn_geoflx_cst = 86.4e-3 ! Constant value of geothermal heat flux [W/m2] 489 489 / … … 503 503 !! namtra_adv advection scheme 504 504 !! namtra_ldf lateral diffusion scheme 505 !! namtra_dmp T & S newtonian damping 505 !! namtra_dmp T & S newtonian damping 506 506 !!====================================================================== 507 507 ! … … 517 517 / 518 518 !----------------------------------------------------------------------- 519 &namtra_adv ! advection scheme for tracer 520 !----------------------------------------------------------------------- 521 ln_traadv_cen2 = .false. ! 2nd order centered scheme 522 ln_traadv_tvd = .true. ! TVD scheme 523 ln_traadv_muscl = .false. ! MUSCL scheme 524 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 525 ln_traadv_ubs = .false. ! UBS scheme 526 ln_traadv_qck = .false. ! QUICKEST scheme 519 &namtra_adv ! advection scheme for tracer 520 !----------------------------------------------------------------------- 521 ln_traadv_cen2 = .false. ! 2nd order centered scheme 522 ln_traadv_tvd = .true. ! TVD scheme 523 ln_traadv_muscl = .false. ! MUSCL scheme 524 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 525 ln_traadv_ubs = .false. ! UBS scheme 526 ln_traadv_qck = .false. ! QUICKEST scheme 527 527 / 528 528 !---------------------------------------------------------------------------------- … … 551 551 / 552 552 !----------------------------------------------------------------------- 553 &namtra_dmp ! tracer: T & S newtonian damping 553 &namtra_dmp ! tracer: T & S newtonian damping 554 554 !----------------------------------------------------------------------- 555 555 ln_tradmp = .false. ! add a damping termn (T) or not (F) … … 579 579 &namdyn_adv ! formulation of the momentum advection 580 580 !----------------------------------------------------------------------- 581 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 581 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 582 582 ln_dynadv_cen2= .false. ! flux form - 2nd order centered scheme 583 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 584 / 583 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 584 / 585 585 !----------------------------------------------------------------------- 586 586 &namdyn_vor ! option of physics/algorithm (not control by CPP keys) 587 587 !----------------------------------------------------------------------- 588 ln_dynvor_ene = .false. ! enstrophy conserving scheme 589 ln_dynvor_ens = .false. ! energy conserving scheme 590 ln_dynvor_mix = .false. ! mixed scheme 591 ln_dynvor_een = .true. ! energy & enstrophy scheme 588 ln_dynvor_ene = .false. ! enstrophy conserving scheme 589 ln_dynvor_ens = .false. ! energy conserving scheme 590 ln_dynvor_mix = .false. ! mixed scheme 591 ln_dynvor_een = .true. ! energy & enstrophy scheme 592 592 / 593 593 !----------------------------------------------------------------------- 594 594 &namdyn_hpg ! Hydrostatic pressure gradient option 595 595 !----------------------------------------------------------------------- 596 ln_hpg_zco = .false. ! z-coordinate - full steps 596 ln_hpg_zco = .false. ! z-coordinate - full steps 597 597 ln_hpg_zps = .false. ! z-coordinate - partial steps (interpolation) 598 598 ln_hpg_sco = .true. ! s-coordinate (standard jacobian formulation) … … 612 612 &namdyn_ldf ! lateral diffusion on momentum 613 613 !----------------------------------------------------------------------- 614 ! ! Type of the operator : 615 ln_dynldf_lap = .true. ! laplacian operator 614 ! ! Type of the operator : 615 ln_dynldf_lap = .true. ! laplacian operator 616 616 ln_dynldf_bilap = .true. ! bilaplacian operator 617 617 ! Direction of action : 618 ln_dynldf_level = .false. ! iso-level 618 ln_dynldf_level = .false. ! iso-level 619 619 ln_dynldf_hor = .true. ! horizontal (geopotential) (require "key_ldfslp" in s-coord.) 620 620 ln_dynldf_iso = .false. ! iso-neutral (require "key_ldfslp") 621 ! Coefficient 621 ! Coefficient 622 622 rn_ahm_0_lap = 60.0 ! horizontal laplacian eddy viscosity [m2/s] 623 623 rn_ahmb_0 = 0.0 ! background eddy viscosity for ldf_iso [m2/s] … … 695 695 &namzdf_kpp ! K-Profile Parameterization dependent vertical mixing ("key_zdfkpp", and optionally: 696 696 !------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 697 ln_kpprimix = .true. ! shear instability mixing 697 ln_kpprimix = .true. ! shear instability mixing 698 698 rn_difmiw = 1.0e-04 ! constant internal wave viscosity [m2/s] 699 699 rn_difsiw = 0.1e-04 ! constant internal wave diffusivity [m2/s] 700 700 rn_riinfty = 0.8 ! local Richardson Number limit for shear instability 701 701 rn_difri = 0.0050 ! maximum shear mixing at Rig = 0 [m2/s] 702 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 703 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 702 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 703 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 704 704 nn_avb = 0 ! horizontal averaged (=1) or not (=0) on avt and amv 705 705 nn_ave = 1 ! constant (=0) or profile (=1) background on avt … … 735 735 rn_n2min = 1.e-8 ! threshold of the Brunt-Vaisala frequency (s-1) 736 736 rn_tfe = 0.333 ! tidal dissipation efficiency 737 rn_me = 0.2 ! mixing efficiency 737 rn_me = 0.2 ! mixing efficiency 738 738 ln_tmx_itf = .FALSE. ! ITF specific parameterisation 739 739 rn_tfe_itf = 1. ! ITF tidal dissipation efficiency … … 745 745 !! nammpp Massively Parallel Processing ("key_mpp_mpi) 746 746 !! namctl Control prints & Benchmark 747 !! namsol elliptic solver / island / free surface 748 !!====================================================================== 749 ! 750 !----------------------------------------------------------------------- 751 &namsol ! elliptic solver / island / free surface 747 !! namsol elliptic solver / island / free surface 748 !!====================================================================== 749 ! 750 !----------------------------------------------------------------------- 751 &namsol ! elliptic solver / island / free surface 752 752 !----------------------------------------------------------------------- 753 753 nn_solv = 1 ! elliptic solver: =1 preconditioned conjugate gradient (pcg) … … 795 795 !! namflo float parameters ("key_float") 796 796 !! namptr Poleward Transport Diagnostics 797 !! namhsb Heat and salt budgets 797 !! namhsb Heat and salt budgets 798 798 !!====================================================================== 799 799 ! … … 833 833 jpnnewflo = 0 ! number of floats for the restart 834 834 ln_rstflo = .false. ! float restart (T) or not (F) 835 nn_writefl = 75 ! frequency of writing in float output file 836 nn_stockfl = 5475 ! frequency of creation of the float restart file 835 nn_writefl = 75 ! frequency of writing in float output file 836 nn_stockfl = 5475 ! frequency of creation of the float restart file 837 837 ln_argo = .false. ! Argo type floats (stay at the surface each 10 days) 838 838 ln_flork4 = .false. ! trajectories computed with a 4th order Runge-Kutta (T) … … 846 846 ln_diaptr = .false. ! Poleward heat and salt transport (T) or not (F) 847 847 ln_diaznl = .false. ! Add zonal means and meridional stream functions 848 ln_subbas = .false. ! Atlantic/Pacific/Indian basins computation (T) or not 848 ln_subbas = .false. ! Atlantic/Pacific/Indian basins computation (T) or not 849 849 ! (orca configuration only, need input basins mask file named "subbasins.nc" 850 850 ln_ptrcomp = .false. ! Add decomposition : overturning … … 853 853 / 854 854 !----------------------------------------------------------------------- 855 &namhsb ! Heat and salt budgets 855 &namhsb ! Heat and salt budgets 856 856 !----------------------------------------------------------------------- 857 857 ln_diahsb = .false. ! check the heat and salt budgets (T) or not (F) … … 886 886 &namobs ! observation usage switch ('key_diaobs') 887 887 !----------------------------------------------------------------------- 888 ln_t3d = .false. ! Logical switch for T profile observations 889 ln_s3d = .false. ! Logical switch for S profile observations 890 ln_ena = .false. ! Logical switch for ENACT insitu data set 891 ! ! ln_cor Logical switch for Coriolis insitu data set 892 ln_profb = .false. ! Logical switch for feedback insitu data set 893 ln_sla = .false. ! Logical switch for SLA observations 894 895 ln_sladt = .false. ! Logical switch for AVISO SLA data 896 897 ln_slafb = .false. ! Logical switch for feedback SLA data 898 ! ln_ssh Logical switch for SSH observations 899 900 ln_sst = .false. ! Logical switch for SST observations 901 ! ln_reysst Logical switch for Reynolds observations 902 ! ln_ghrsst Logical switch for GHRSST observations 903 904 ln_sstfb = .false. ! Logical switch for feedback SST data 905 ! ln_sss Logical switch for SSS observations 906 ! ln_seaice Logical switch for Sea Ice observations 907 ! ln_vel3d Logical switch for velocity observations 908 ! ln_velavcur Logical switch for velocity daily av. cur. 909 ! ln_velhrcur Logical switch for velocity high freq. cur. 910 ! ln_velavadcp Logical switch for velocity daily av. ADCP 888 ln_t3d = .false. ! Logical switch for T profile observations 889 ln_s3d = .false. ! Logical switch for S profile observations 890 ln_ena = .false. ! Logical switch for ENACT insitu data set 891 ! ! ln_cor Logical switch for Coriolis insitu data set 892 ln_profb = .false. ! Logical switch for feedback insitu data set 893 ln_sla = .false. ! Logical switch for SLA observations 894 895 ln_sladt = .false. ! Logical switch for AVISO SLA data 896 897 ln_slafb = .false. ! Logical switch for feedback SLA data 898 ! ln_ssh Logical switch for SSH observations 899 900 ln_sst = .false. ! Logical switch for SST observations 901 ! ln_reysst Logical switch for Reynolds observations 902 ! ln_ghrsst Logical switch for GHRSST observations 903 904 ln_sstfb = .false. ! Logical switch for feedback SST data 905 ! ln_sss Logical switch for SSS observations 906 ! ln_seaice Logical switch for Sea Ice observations 907 ! ln_vel3d Logical switch for velocity observations 908 ! ln_velavcur Logical switch for velocity daily av. cur. 909 ! ln_velhrcur Logical switch for velocity high freq. cur. 910 ! ln_velavadcp Logical switch for velocity daily av. ADCP 911 911 ! ln_velhradcp Logical switch for velocity high freq. ADCP 912 ! ln_velfb Logical switch for feedback velocity data 913 ! ln_grid_global Global distribtion of observations 914 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 915 ! grid_search_file Grid search lookup file header 916 ! enactfiles ENACT input observation file names 917 ! coriofiles Coriolis input observation file name 918 ! ! profbfiles: Profile feedback input observation file name 912 ! ln_velfb Logical switch for feedback velocity data 913 ! ln_grid_global Global distribtion of observations 914 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 915 ! grid_search_file Grid search lookup file header 916 ! enactfiles ENACT input observation file names 917 ! coriofiles Coriolis input observation file name 918 ! ! profbfiles: Profile feedback input observation file name 919 919 profbfiles = 'profiles_01.nc' 920 ! ln_profb_enatim Enact feedback input time setting switch 920 ! ln_profb_enatim Enact feedback input time setting switch 921 921 ! slafilesact Active SLA input observation file name 922 ! slafilespas Passive SLA input observation file name 923 ! ! slafbfiles: Feedback SLA input observation file name 922 ! slafilespas Passive SLA input observation file name 923 ! ! slafbfiles: Feedback SLA input observation file name 924 924 slafbfiles = 'sla_01.nc' 925 ! sstfiles GHRSST input observation file name 926 ! ! sstfbfiles: Feedback SST input observation file name 925 ! sstfiles GHRSST input observation file name 926 ! ! sstfbfiles: Feedback SST input observation file name 927 927 sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 928 ! seaicefiles Sea Ice input observation file name 929 ! velavcurfiles Vel. cur. daily av. input file name 930 ! velhvcurfiles Vel. cur. high freq. input file name 931 ! velavadcpfiles Vel. ADCP daily av. input file name 932 ! velhvadcpfiles Vel. ADCP high freq. input file name 933 ! velfbfiles Vel. feedback input observation file name 934 ! dobsini Initial date in window YYYYMMDD.HHMMSS 935 ! dobsend Final date in window YYYYMMDD.HHMMSS 936 ! n1dint Type of vertical interpolation method 937 ! n2dint Type of horizontal interpolation method 938 ! ln_nea Rejection of observations near land switch 939 nmsshc = 0 ! MSSH correction scheme 940 ! mdtcorr MDT correction 941 ! mdtcutoff MDT cutoff for computed correction 942 ln_altbias = .false. ! Logical switch for alt bias 943 ln_ignmis = .true. ! Logical switch for ignoring missing files 944 ! endailyavtypes ENACT daily average types 928 ! seaicefiles Sea Ice input observation file name 929 ! velavcurfiles Vel. cur. daily av. input file name 930 ! velhvcurfiles Vel. cur. high freq. input file name 931 ! velavadcpfiles Vel. ADCP daily av. input file name 932 ! velhvadcpfiles Vel. ADCP high freq. input file name 933 ! velfbfiles Vel. feedback input observation file name 934 ! dobsini Initial date in window YYYYMMDD.HHMMSS 935 ! dobsend Final date in window YYYYMMDD.HHMMSS 936 ! n1dint Type of vertical interpolation method 937 ! n2dint Type of horizontal interpolation method 938 ! ln_nea Rejection of observations near land switch 939 nmsshc = 0 ! MSSH correction scheme 940 ! mdtcorr MDT correction 941 ! mdtcutoff MDT cutoff for computed correction 942 ln_altbias = .false. ! Logical switch for alt bias 943 ln_ignmis = .true. ! Logical switch for ignoring missing files 944 ! endailyavtypes ENACT daily average types 945 945 ln_grid_global = .true. 946 946 ln_grid_search_lookup = .false. 947 / 947 / 948 948 !----------------------------------------------------------------------- 949 949 &nam_asminc ! assimilation increments ('key_asminc') 950 950 !----------------------------------------------------------------------- 951 ln_bkgwri = .false. ! Logical switch for writing out background state 952 ln_trjwri = .false. ! Logical switch for writing out state trajectory 951 ln_bkgwri = .false. ! Logical switch for writing out background state 953 952 ln_trainc = .false. ! Logical switch for applying tracer increments 954 953 ln_dyninc = .false. ! Logical switch for applying velocity increments 955 ln_sshinc = .false. ! Logical switch for applying SSH increments 954 ln_sshinc = .false. ! Logical switch for applying SSH increments 956 955 ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) 957 956 ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) … … 961 960 nitiaufin = 15 ! Timestep of end of IAU interval in [0,nitend-nit000-1] 962 961 niaufn = 0 ! Type of IAU weighting function 963 nittrjfrq = 0 ! Frequency of trajectory output for 4D-VAR964 962 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 965 963 salfixmin = -9999 ! Minimum salinity after applying the increments … … 990 988 rn_htrmax = 200.0 ! max. depth of transition range 991 989 / 990 !----------------------------------------------------------------------- 991 &namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 992 !----------------------------------------------------------------------- 993 cn_dirtrj = 'tam_trajectory' ! prefix for input/ouput files 994 ln_trjhand = .false. ! Handling non linear trajectory 995 nn_ittrjfrq = 20 ! Output/input frequency 996 ln_trj_spl = .false. ! Handling trajectory at simple precision 997 / -
trunk/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r3306 r3604 3 3 !! namelists 2 - Domain (namzgr, namzgr_sco, namdom, namtsd) 4 4 !! 3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 7 !! 4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) … … 25 25 !----------------------------------------------------------------------- 26 26 nn_no = 0 ! job number (no more used...) 27 cn_exp = "GYRE" ! experience name 27 cn_exp = "GYRE" ! experience name 28 28 nn_it000 = 1 ! first time step 29 29 nn_itend = 4320 ! last time step … … 52 52 !! namzgr_sco s-coordinate or hybrid z-s-coordinate 53 53 !! namdom space and time domain (bathymetry, mesh, timestep) 54 !! namtsd data: temperature & salinity 54 !! namtsd data: temperature & salinity 55 55 !!====================================================================== 56 56 ! … … 72 72 ln_s_sigma = .false. ! hybrid s-sigma coordinates 73 73 rn_bb = 0.8 ! stretching with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 75 75 / 76 76 !----------------------------------------------------------------------- … … 94 94 / 95 95 !----------------------------------------------------------------------- 96 &namtsd ! data : Temperature & Salinity 96 &namtsd ! data : Temperature & Salinity 97 97 !----------------------------------------------------------------------- 98 98 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim !'yearly' or ! weights ! rotation ! … … 125 125 &namsbc ! Surface Boundary Condition (surface module) 126 126 !----------------------------------------------------------------------- 127 nn_fsbc = 1 ! frequency of surface boundary condition computation 127 nn_fsbc = 1 ! frequency of surface boundary condition computation 128 128 ! (also = the frequency of sea-ice model call) 129 ln_ana = .true. ! analytical formulation (T => fill namsbc_ana ) 129 ln_ana = .true. ! analytical formulation (T => fill namsbc_ana ) 130 130 ln_flx = .false. ! flux formulation (T => fill namsbc_flx ) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 133 133 ln_blk_mfs = .false. ! MFS bulk formulation (T => fill namsbc_mfs ) 134 134 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) … … 140 140 ln_rnf = .false. ! runoffs (T => fill namsbc_rnf) 141 141 ln_ssr = .false. ! Sea Surface Restoring on T and/or S (T => fill namsbc_ssr) 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 142 nn_fwb = 0 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 144 144 ! =2 annual global mean of e-p-r set to zero 145 145 ! =3 global emp set to zero and spread out over erp area … … 168 168 169 169 cn_dir = './' ! root directory for the location of the flux files 170 / 170 / 171 171 !----------------------------------------------------------------------- 172 172 &namsbc_clio ! namsbc_clio CLIO bulk formulae … … 225 225 ! ! ! categories ! reference ! orientation ! grids ! 226 226 ! send 227 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 228 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 229 sn_snd_thick = 'none' , 'no' , '' , '' , '' 230 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 231 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 227 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 228 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 229 sn_snd_thick = 'none' , 'no' , '' , '' , '' 230 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 231 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 232 232 ! receive 233 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 234 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 235 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 236 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 237 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 239 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 240 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 242 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 233 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 234 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 235 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 236 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 237 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 239 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 240 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 242 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 243 243 / 244 244 !----------------------------------------------------------------------- … … 248 248 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 249 249 sn_chl ='chlorophyll', -1 , 'CHLA' , .true. , .true. , 'yearly' , '' , '' 250 250 251 251 cn_dir = './' ! root directory for the location of the runoff files 252 252 ln_traqsr = .true. ! Light penetration (T) or not (F) … … 297 297 sn_sst = 'sst_data' , 24 , 'sst' , .false. , .false., 'yearly' , '' , '' 298 298 sn_sss = 'sss_data' , -1 , 'sss' , .true. , .true. , 'yearly' , '' , '' 299 299 300 300 cn_dir = './' ! root directory for the location of the runoff files 301 301 nn_sstr = 0 ! add a retroaction term in the surface heat flux (=1) or not (=0) … … 306 306 ln_sssr_bnd = .false. ! flag to bound erp term (associated with nn_sssr=2) 307 307 rn_sssr_bnd = 4.e0 ! ABS(Max/Min) value of the damping erp term [mm/day] 308 / 308 / 309 309 !----------------------------------------------------------------------- 310 310 &namsbc_alb ! albedo parameters 311 311 !----------------------------------------------------------------------- 312 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 312 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 313 313 rn_albice = 0.53 ! albedo of melting ice in the arctic and antarctic 314 314 rn_alphd = 0.80 ! coefficients for linear interpolation used to 315 rn_alphc = 0.65 ! compute albedo between two extremes values 315 rn_alphc = 0.65 ! compute albedo between two extremes values 316 316 rn_alphdi = 0.72 ! (Pyane, 1972) 317 317 / … … 323 323 !! namcla cross land advection 324 324 !! namobc open boundaries parameters ("key_obc") 325 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 325 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 326 326 !! nambdy Unstructured open boundaries ("key_bdy") 327 327 !! namtide Tidal forcing at open boundaries ("key_bdy_tides") … … 345 345 ln_obc_clim = .false. ! climatological obc data files (T) or not (F) 346 346 ln_vol_cst = .true. ! impose the total volume conservation (T) or not (F) 347 ln_obc_fla = .false. ! Flather open boundary condition 347 ln_obc_fla = .false. ! Flather open boundary condition 348 348 nn_obcdta = 1 ! = 0 the obc data are equal to the initial state 349 349 ! = 1 the obc data are read in 'obc.dta' files … … 394 394 &nambdy ! unstructured open boundaries ("key_bdy") 395 395 !----------------------------------------------------------------------- 396 nb_bdy = 1 ! number of open boundary sets 396 nb_bdy = 1 ! number of open boundary sets 397 397 ln_coords_file = .true. ! =T : read bdy coordinates from file 398 398 cn_coords_file = 'coordinates.bdy.nc' ! bdy coordinates files … … 430 430 / 431 431 !----------------------------------------------------------------------- 432 &nambdy_tide ! tidal forcing at open boundaries 432 &nambdy_tide ! tidal forcing at open boundaries 433 433 !----------------------------------------------------------------------- 434 434 filtide = 'bdydta/amm12_bdytide_' ! file name root of tidal forcing files … … 469 469 !!====================================================================== 470 470 !! nambfr bottom friction 471 !! nambbc bottom temperature boundary condition 471 !! nambbc bottom temperature boundary condition 472 472 !! nambbl bottom boundary layer scheme ("key_trabbl") 473 473 !!====================================================================== … … 489 489 !----------------------------------------------------------------------- 490 490 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 491 nn_geoflx = 0 ! geothermal heat flux: = 0 no flux 491 nn_geoflx = 0 ! geothermal heat flux: = 0 no flux 492 492 ! = 1 constant flux 493 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 493 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 494 494 rn_geoflx_cst = 86.4e-3 ! Constant value of geothermal heat flux [W/m2] 495 495 / … … 509 509 !! namtra_adv advection scheme 510 510 !! namtra_ldf lateral diffusion scheme 511 !! namtra_dmp T & S newtonian damping 511 !! namtra_dmp T & S newtonian damping 512 512 !!====================================================================== 513 513 ! … … 523 523 / 524 524 !----------------------------------------------------------------------- 525 &namtra_adv ! advection scheme for tracer 526 !----------------------------------------------------------------------- 527 ln_traadv_cen2 = .false. ! 2nd order centered scheme 528 ln_traadv_tvd = .true. ! TVD scheme 529 ln_traadv_muscl = .false. ! MUSCL scheme 530 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 531 ln_traadv_ubs = .false. ! UBS scheme 532 ln_traadv_qck = .false. ! QUICKEST scheme 525 &namtra_adv ! advection scheme for tracer 526 !----------------------------------------------------------------------- 527 ln_traadv_cen2 = .false. ! 2nd order centered scheme 528 ln_traadv_tvd = .true. ! TVD scheme 529 ln_traadv_muscl = .false. ! MUSCL scheme 530 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 531 ln_traadv_ubs = .false. ! UBS scheme 532 ln_traadv_qck = .false. ! QUICKEST scheme 533 533 / 534 534 !---------------------------------------------------------------------------------- … … 557 557 / 558 558 !----------------------------------------------------------------------- 559 &namtra_dmp ! tracer: T & S newtonian damping 559 &namtra_dmp ! tracer: T & S newtonian damping 560 560 !----------------------------------------------------------------------- 561 561 ln_tradmp = .false. ! add a damping termn (T) or not (F) … … 585 585 &namdyn_adv ! formulation of the momentum advection 586 586 !----------------------------------------------------------------------- 587 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 587 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 588 588 ln_dynadv_cen2= .false. ! flux form - 2nd order centered scheme 589 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 590 / 589 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 590 / 591 591 !----------------------------------------------------------------------- 592 592 &namdyn_vor ! option of physics/algorithm (not control by CPP keys) 593 593 !----------------------------------------------------------------------- 594 ln_dynvor_ene = .true. ! enstrophy conserving scheme 595 ln_dynvor_ens = .false. ! energy conserving scheme 596 ln_dynvor_mix = .false. ! mixed scheme 597 ln_dynvor_een = .false. ! energy & enstrophy scheme 594 ln_dynvor_ene = .true. ! enstrophy conserving scheme 595 ln_dynvor_ens = .false. ! energy conserving scheme 596 ln_dynvor_mix = .false. ! mixed scheme 597 ln_dynvor_een = .false. ! energy & enstrophy scheme 598 598 / 599 599 !----------------------------------------------------------------------- 600 600 &namdyn_hpg ! Hydrostatic pressure gradient option 601 601 !----------------------------------------------------------------------- 602 ln_hpg_zco = .true. ! z-coordinate - full steps 602 ln_hpg_zco = .true. ! z-coordinate - full steps 603 603 ln_hpg_zps = .false. ! z-coordinate - partial steps (interpolation) 604 604 ln_hpg_sco = .false. ! s-coordinate (standard jacobian formulation) … … 618 618 &namdyn_ldf ! lateral diffusion on momentum 619 619 !----------------------------------------------------------------------- 620 ! ! Type of the operator : 621 ln_dynldf_lap = .true. ! laplacian operator 622 ln_dynldf_bilap = .false. ! bilaplacian operator 623 ! ! Direction of action : 624 ln_dynldf_level = .false. ! iso-level 620 ! ! Type of the operator : 621 ln_dynldf_lap = .true. ! laplacian operator 622 ln_dynldf_bilap = .false. ! bilaplacian operator 623 ! ! Direction of action : 624 ln_dynldf_level = .false. ! iso-level 625 625 ln_dynldf_hor = .true. ! horizontal (geopotential) (require "key_ldfslp" in s-coord.) 626 626 ln_dynldf_iso = .false. ! iso-neutral (require "key_ldfslp") … … 701 701 &namzdf_kpp ! K-Profile Parameterization dependent vertical mixing ("key_zdfkpp", and optionally: 702 702 !------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 703 ln_kpprimix = .true. ! shear instability mixing 703 ln_kpprimix = .true. ! shear instability mixing 704 704 rn_difmiw = 1.0e-04 ! constant internal wave viscosity [m2/s] 705 705 rn_difsiw = 0.1e-04 ! constant internal wave diffusivity [m2/s] 706 706 rn_riinfty = 0.8 ! local Richardson Number limit for shear instability 707 707 rn_difri = 0.0050 ! maximum shear mixing at Rig = 0 [m2/s] 708 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 709 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 708 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 709 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 710 710 nn_avb = 0 ! horizontal averaged (=1) or not (=0) on avt and amv 711 711 nn_ave = 1 ! constant (=0) or profile (=1) background on avt … … 741 741 rn_n2min = 1.e-8 ! threshold of the Brunt-Vaisala frequency (s-1) 742 742 rn_tfe = 0.333 ! tidal dissipation efficiency 743 rn_me = 0.2 ! mixing efficiency 743 rn_me = 0.2 ! mixing efficiency 744 744 ln_tmx_itf = .false. ! ITF specific parameterisation 745 745 rn_tfe_itf = 1. ! ITF tidal dissipation efficiency … … 751 751 !! nammpp Massively Parallel Processing ("key_mpp_mpi) 752 752 !! namctl Control prints & Benchmark 753 !! namsol elliptic solver / island / free surface 754 !!====================================================================== 755 ! 756 !----------------------------------------------------------------------- 757 &namsol ! elliptic solver / island / free surface 753 !! namsol elliptic solver / island / free surface 754 !!====================================================================== 755 ! 756 !----------------------------------------------------------------------- 757 &namsol ! elliptic solver / island / free surface 758 758 !----------------------------------------------------------------------- 759 759 nn_solv = 2 ! elliptic solver: =1 preconditioned conjugate gradient (pcg) … … 774 774 nn_buffer = 0 ! size in bytes of exported buffer ('B' case), 0 no exportation 775 775 ln_nnogather= .false. ! activate code to avoid mpi_allgather use at the northfold 776 jpni = 0 ! jpni number of processors following i (set automatically if < 1) 777 jpnj = 0 ! jpnj number of processors following j (set automatically if < 1) 778 jpnij = 0 ! jpnij number of local domains (set automatically if < 1) 776 jpni = 0 ! jpni number of processors following i (set automatically if < 1) 777 jpnj = 0 ! jpnj number of processors following j (set automatically if < 1) 778 jpnij = 0 ! jpnij number of local domains (set automatically if < 1) 779 779 / 780 780 !----------------------------------------------------------------------- … … 801 801 !! namflo float parameters ("key_float") 802 802 !! namptr Poleward Transport Diagnostics 803 !! namhsb Heat and salt budgets 803 !! namhsb Heat and salt budgets 804 804 !!====================================================================== 805 805 ! … … 846 846 ln_diaptr = .false. ! Poleward heat and salt transport (T) or not (F) 847 847 ln_diaznl = .true. ! Add zonal means and meridional stream functions 848 ln_subbas = .true. ! Atlantic/Pacific/Indian basins computation (T) or not 848 ln_subbas = .true. ! Atlantic/Pacific/Indian basins computation (T) or not 849 849 ! (orca configuration only, need input basins mask file named "subbasins.nc" 850 850 ln_ptrcomp = .true. ! Add decomposition : overturning … … 853 853 / 854 854 !----------------------------------------------------------------------- 855 &namhsb ! Heat and salt budgets 855 &namhsb ! Heat and salt budgets 856 856 !----------------------------------------------------------------------- 857 857 ln_diahsb = .false. ! check the heat and salt budgets (T) or not (F) … … 865 865 ! -1 : debug all section 866 866 ! 0 < n : debug section number n 867 / 867 / 868 868 869 869 !!====================================================================== … … 877 877 &namobs ! observation usage switch ('key_diaobs') 878 878 !----------------------------------------------------------------------- 879 ln_t3d = .false. ! Logical switch for T profile observations 880 ln_s3d = .false. ! Logical switch for S profile observations 881 ln_ena = .false. ! Logical switch for ENACT insitu data set 882 ! ! ln_cor Logical switch for Coriolis insitu data set 883 ln_profb = .false. ! Logical switch for feedback insitu data set 884 ln_sla = .false. ! Logical switch for SLA observations 885 886 ln_sladt = .false. ! Logical switch for AVISO SLA data 887 888 ln_slafb = .false. ! Logical switch for feedback SLA data 889 ! ln_ssh Logical switch for SSH observations 890 891 ln_sst = .false. ! Logical switch for SST observations 892 ! ln_reysst Logical switch for Reynolds observations 893 ! ln_ghrsst Logical switch for GHRSST observations 894 895 ln_sstfb = .false. ! Logical switch for feedback SST data 896 ! ln_sss Logical switch for SSS observations 897 ! ln_seaice Logical switch for Sea Ice observations 898 ! ln_vel3d Logical switch for velocity observations 899 ! ln_velavcur Logical switch for velocity daily av. cur. 900 ! ln_velhrcur Logical switch for velocity high freq. cur. 901 ! ln_velavadcp Logical switch for velocity daily av. ADCP 879 ln_t3d = .false. ! Logical switch for T profile observations 880 ln_s3d = .false. ! Logical switch for S profile observations 881 ln_ena = .false. ! Logical switch for ENACT insitu data set 882 ! ! ln_cor Logical switch for Coriolis insitu data set 883 ln_profb = .false. ! Logical switch for feedback insitu data set 884 ln_sla = .false. ! Logical switch for SLA observations 885 886 ln_sladt = .false. ! Logical switch for AVISO SLA data 887 888 ln_slafb = .false. ! Logical switch for feedback SLA data 889 ! ln_ssh Logical switch for SSH observations 890 891 ln_sst = .false. ! Logical switch for SST observations 892 ! ln_reysst Logical switch for Reynolds observations 893 ! ln_ghrsst Logical switch for GHRSST observations 894 895 ln_sstfb = .false. ! Logical switch for feedback SST data 896 ! ln_sss Logical switch for SSS observations 897 ! ln_seaice Logical switch for Sea Ice observations 898 ! ln_vel3d Logical switch for velocity observations 899 ! ln_velavcur Logical switch for velocity daily av. cur. 900 ! ln_velhrcur Logical switch for velocity high freq. cur. 901 ! ln_velavadcp Logical switch for velocity daily av. ADCP 902 902 ! ln_velhradcp Logical switch for velocity high freq. ADCP 903 ! ln_velfb Logical switch for feedback velocity data 904 ! ln_grid_global Global distribtion of observations 905 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 906 ! grid_search_file Grid search lookup file header 907 ! enactfiles ENACT input observation file names 908 ! coriofiles Coriolis input observation file name 909 ! ! profbfiles: Profile feedback input observation file name 903 ! ln_velfb Logical switch for feedback velocity data 904 ! ln_grid_global Global distribtion of observations 905 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 906 ! grid_search_file Grid search lookup file header 907 ! enactfiles ENACT input observation file names 908 ! coriofiles Coriolis input observation file name 909 ! ! profbfiles: Profile feedback input observation file name 910 910 profbfiles = 'profiles_01.nc' 911 ! ln_profb_enatim Enact feedback input time setting switch 911 ! ln_profb_enatim Enact feedback input time setting switch 912 912 ! slafilesact Active SLA input observation file name 913 ! slafilespas Passive SLA input observation file name 914 ! ! slafbfiles: Feedback SLA input observation file name 913 ! slafilespas Passive SLA input observation file name 914 ! ! slafbfiles: Feedback SLA input observation file name 915 915 slafbfiles = 'sla_01.nc' 916 ! sstfiles GHRSST input observation file name 917 ! ! sstfbfiles: Feedback SST input observation file name 916 ! sstfiles GHRSST input observation file name 917 ! ! sstfbfiles: Feedback SST input observation file name 918 918 sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 919 ! seaicefiles Sea Ice input observation file name 920 ! velavcurfiles Vel. cur. daily av. input file name 921 ! velhvcurfiles Vel. cur. high freq. input file name 922 ! velavadcpfiles Vel. ADCP daily av. input file name 923 ! velhvadcpfiles Vel. ADCP high freq. input file name 924 ! velfbfiles Vel. feedback input observation file name 925 ! dobsini Initial date in window YYYYMMDD.HHMMSS 926 ! dobsend Final date in window YYYYMMDD.HHMMSS 927 ! n1dint Type of vertical interpolation method 928 ! n2dint Type of horizontal interpolation method 929 ! ln_nea Rejection of observations near land switch 930 nmsshc = 0 ! MSSH correction scheme 931 ! mdtcorr MDT correction 932 ! mdtcutoff MDT cutoff for computed correction 933 ln_altbias = .false. ! Logical switch for alt bias 934 ln_ignmis = .true. ! Logical switch for ignoring missing files 935 ! endailyavtypes ENACT daily average types 919 ! seaicefiles Sea Ice input observation file name 920 ! velavcurfiles Vel. cur. daily av. input file name 921 ! velhvcurfiles Vel. cur. high freq. input file name 922 ! velavadcpfiles Vel. ADCP daily av. input file name 923 ! velhvadcpfiles Vel. ADCP high freq. input file name 924 ! velfbfiles Vel. feedback input observation file name 925 ! dobsini Initial date in window YYYYMMDD.HHMMSS 926 ! dobsend Final date in window YYYYMMDD.HHMMSS 927 ! n1dint Type of vertical interpolation method 928 ! n2dint Type of horizontal interpolation method 929 ! ln_nea Rejection of observations near land switch 930 nmsshc = 0 ! MSSH correction scheme 931 ! mdtcorr MDT correction 932 ! mdtcutoff MDT cutoff for computed correction 933 ln_altbias = .false. ! Logical switch for alt bias 934 ln_ignmis = .true. ! Logical switch for ignoring missing files 935 ! endailyavtypes ENACT daily average types 936 936 ln_grid_global = .true. 937 937 ln_grid_search_lookup = .false. 938 / 938 / 939 939 !----------------------------------------------------------------------- 940 940 &nam_asminc ! assimilation increments ('key_asminc') 941 941 !----------------------------------------------------------------------- 942 ln_bkgwri = .false. ! Logical switch for writing out background state 943 ln_trjwri = .false. ! Logical switch for writing out state trajectory 942 ln_bkgwri = .false. ! Logical switch for writing out background state 944 943 ln_trainc = .false. ! Logical switch for applying tracer increments 945 944 ln_dyninc = .false. ! Logical switch for applying velocity increments 946 ln_sshinc = .false. ! Logical switch for applying SSH increments 945 ln_sshinc = .false. ! Logical switch for applying SSH increments 947 946 ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) 948 947 ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) … … 952 951 nitiaufin = 15 ! Timestep of end of IAU interval in [0,nitend-nit000-1] 953 952 niaufn = 0 ! Type of IAU weighting function 954 nittrjfrq = 0 ! Frequency of trajectory output for 4D-VAR955 953 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 956 954 salfixmin = -9999 ! Minimum salinity after applying the increments … … 981 979 rn_htrmax = 200.0 ! max. depth of transition range 982 980 / 981 !----------------------------------------------------------------------- 982 &namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 983 !----------------------------------------------------------------------- 984 cn_dirtrj = 'tam_trajectory' ! prefix for input/ouput files 985 ln_trjhand = .false. ! Handling non linear trajectory 986 nn_ittrjfrq = 20 ! Output/input frequency 987 ln_trj_spl = .false. ! Handling trajectory at simple precision 988 / -
trunk/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r3306 r3604 3 3 !! namelists 2 - Domain (namzgr, namzgr_sco, namdom, namtsd) 4 4 !! 3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 5 !! namsbc_cpl, namtra_qsr, namsbc_rnf, 6 6 !! namsbc_apr, namsbc_ssr, namsbc_alb) 7 7 !! 4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide) … … 25 25 !----------------------------------------------------------------------- 26 26 nn_no = 0 ! job number (no more used...) 27 cn_exp = "ORCA2" ! experience name 27 cn_exp = "ORCA2" ! experience name 28 28 nn_it000 = 1 ! first time step 29 29 nn_itend = 5475 ! last time step (std 5475) … … 52 52 !! namzgr_sco s-coordinate or hybrid z-s-coordinate 53 53 !! namdom space and time domain (bathymetry, mesh, timestep) 54 !! namtsd data: temperature & salinity 54 !! namtsd data: temperature & salinity 55 55 !!====================================================================== 56 56 ! … … 72 72 ln_s_sigma = .false. ! hybrid s-sigma coordinates 73 73 rn_bb = 0.8 ! stretching with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 74 rn_hc = 150.0 ! critical depth with s-sigma 75 75 / 76 76 !----------------------------------------------------------------------- … … 94 94 / 95 95 !----------------------------------------------------------------------- 96 &namtsd ! data : Temperature & Salinity 96 &namtsd ! data : Temperature & Salinity 97 97 !----------------------------------------------------------------------- 98 98 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim !'yearly' or ! weights ! rotation ! … … 125 125 &namsbc ! Surface Boundary Condition (surface module) 126 126 !----------------------------------------------------------------------- 127 nn_fsbc = 5 ! frequency of surface boundary condition computation 127 nn_fsbc = 5 ! frequency of surface boundary condition computation 128 128 ! (also = the frequency of sea-ice model call) 129 ln_ana = .false. ! analytical formulation (T => fill namsbc_ana ) 129 ln_ana = .false. ! analytical formulation (T => fill namsbc_ana ) 130 130 ln_flx = .false. ! flux formulation (T => fill namsbc_flx ) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 131 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) 132 ln_blk_core = .true. ! CORE bulk formulation (T => fill namsbc_core) 133 133 ln_blk_mfs = .false. ! MFS bulk formulation (T => fill namsbc_mfs ) 134 134 ln_cpl = .false. ! Coupled formulation (T => fill namsbc_cpl ) … … 140 140 ln_rnf = .true. ! runoffs (T => fill namsbc_rnf) 141 141 ln_ssr = .true. ! Sea Surface Restoring on T and/or S (T => fill namsbc_ssr) 142 nn_fwb = 3 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 142 nn_fwb = 3 ! FreshWater Budget: =0 unchecked 143 ! =1 global mean of e-p-r set to zero at each time step 144 144 ! =2 annual global mean of e-p-r set to zero 145 145 ! =3 global emp set to zero and spread out over erp area … … 168 168 169 169 cn_dir = './' ! root directory for the location of the flux files 170 / 170 / 171 171 !----------------------------------------------------------------------- 172 172 &namsbc_clio ! namsbc_clio CLIO bulk formulae … … 225 225 ! ! ! categories ! reference ! orientation ! grids ! 226 226 ! send 227 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 228 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 229 sn_snd_thick = 'none' , 'no' , '' , '' , '' 230 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 231 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 227 sn_snd_temp = 'weighted oce and ice' , 'no' , '' , '' , '' 228 sn_snd_alb = 'weighted ice' , 'no' , '' , '' , '' 229 sn_snd_thick = 'none' , 'no' , '' , '' , '' 230 sn_snd_crt = 'none' , 'no' , 'spherical' , 'eastward-northward' , 'T' 231 sn_snd_co2 = 'coupled' , 'no' , '' , '' , '' 232 232 ! receive 233 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 234 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 235 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 236 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 237 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 239 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 240 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 242 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 233 sn_rcv_w10m = 'none' , 'no' , '' , '' , '' 234 sn_rcv_taumod = 'coupled' , 'no' , '' , '' , '' 235 sn_rcv_tau = 'oce only' , 'no' , 'cartesian' , 'eastward-northward', 'U,V' 236 sn_rcv_dqnsdt = 'coupled' , 'no' , '' , '' , '' 237 sn_rcv_qsr = 'oce and ice' , 'no' , '' , '' , '' 238 sn_rcv_qns = 'oce and ice' , 'no' , '' , '' , '' 239 sn_rcv_emp = 'conservative' , 'no' , '' , '' , '' 240 sn_rcv_rnf = 'coupled' , 'no' , '' , '' , '' 241 sn_rcv_cal = 'coupled' , 'no' , '' , '' , '' 242 sn_rcv_co2 = 'coupled' , 'no' , '' , '' , '' 243 243 / 244 244 !----------------------------------------------------------------------- … … 300 300 cn_dir = './' ! root directory for the location of the runoff files 301 301 nn_sstr = 0 ! add a retroaction term in the surface heat flux (=1) or not (=0) 302 nn_sssr = 2 ! add a damping term in the surface freshwater flux (=2) 302 nn_sssr = 2 ! add a damping term in the surface freshwater flux (=2) 303 303 ! or to SSS only (=1) or no damping term (=0) 304 304 rn_dqdt = -40. ! magnitude of the retroaction on temperature [W/m2/K] … … 306 306 ln_sssr_bnd = .true. ! flag to bound erp term (associated with nn_sssr=2) 307 307 rn_sssr_bnd = 4.e0 ! ABS(Max/Min) value of the damping erp term [mm/day] 308 / 308 / 309 309 !----------------------------------------------------------------------- 310 310 &namsbc_alb ! albedo parameters 311 311 !----------------------------------------------------------------------- 312 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 312 rn_cloud = 0.06 ! cloud correction to snow and ice albedo 313 313 rn_albice = 0.53 ! albedo of melting ice in the arctic and antarctic 314 314 rn_alphd = 0.80 ! coefficients for linear interpolation used to 315 rn_alphc = 0.65 ! compute albedo between two extremes values 315 rn_alphc = 0.65 ! compute albedo between two extremes values 316 316 rn_alphdi = 0.72 ! (Pyane, 1972) 317 317 / … … 323 323 !! namcla cross land advection 324 324 !! namobc open boundaries parameters ("key_obc") 325 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 325 !! namagrif agrif nested grid ( read by child model only ) ("key_agrif") 326 326 !! nambdy Unstructured open boundaries ("key_bdy") 327 327 !! namtide Tidal forcing at open boundaries ("key_bdy_tides") … … 345 345 ln_obc_clim = .false. ! climatological obc data files (T) or not (F) 346 346 ln_vol_cst = .true. ! impose the total volume conservation (T) or not (F) 347 ln_obc_fla = .false. ! Flather open boundary condition 347 ln_obc_fla = .false. ! Flather open boundary condition 348 348 nn_obcdta = 1 ! = 0 the obc data are equal to the initial state 349 349 ! = 1 the obc data are read in 'obc.dta' files … … 389 389 &nambdy ! unstructured open boundaries ("key_bdy") 390 390 !----------------------------------------------------------------------- 391 nb_bdy = 1 ! number of open boundary sets 391 nb_bdy = 1 ! number of open boundary sets 392 392 ln_coords_file = .true. ! =T : read bdy coordinates from file 393 393 cn_coords_file = 'coordinates.bdy.nc' ! bdy coordinates files … … 425 425 / 426 426 !----------------------------------------------------------------------- 427 &nambdy_tide ! tidal forcing at open boundaries 427 &nambdy_tide ! tidal forcing at open boundaries 428 428 !----------------------------------------------------------------------- 429 429 filtide = 'bdydta/amm12_bdytide_' ! file name root of tidal forcing files … … 464 464 !!====================================================================== 465 465 !! nambfr bottom friction 466 !! nambbc bottom temperature boundary condition 466 !! nambbc bottom temperature boundary condition 467 467 !! nambbl bottom boundary layer scheme ("key_trabbl") 468 468 !!====================================================================== … … 484 484 !----------------------------------------------------------------------- 485 485 ln_trabbc = .true. ! Apply a geothermal heating at the ocean bottom 486 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 486 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 487 487 ! = 1 constant flux 488 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 488 ! = 2 variable flux (read in geothermal_heating.nc in mW/m2) 489 489 rn_geoflx_cst = 86.4e-3 ! Constant value of geothermal heat flux [W/m2] 490 490 / … … 504 504 !! namtra_adv advection scheme 505 505 !! namtra_ldf lateral diffusion scheme 506 !! namtra_dmp T & S newtonian damping 506 !! namtra_dmp T & S newtonian damping 507 507 !!====================================================================== 508 508 ! … … 518 518 / 519 519 !----------------------------------------------------------------------- 520 &namtra_adv ! advection scheme for tracer 521 !----------------------------------------------------------------------- 522 ln_traadv_cen2 = .false. ! 2nd order centered scheme 523 ln_traadv_tvd = .true. ! TVD scheme 524 ln_traadv_muscl = .false. ! MUSCL scheme 525 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 526 ln_traadv_ubs = .false. ! UBS scheme 527 ln_traadv_qck = .false. ! QUICKEST scheme 520 &namtra_adv ! advection scheme for tracer 521 !----------------------------------------------------------------------- 522 ln_traadv_cen2 = .false. ! 2nd order centered scheme 523 ln_traadv_tvd = .true. ! TVD scheme 524 ln_traadv_muscl = .false. ! MUSCL scheme 525 ln_traadv_muscl2 = .false. ! MUSCL2 scheme + cen2 at boundaries 526 ln_traadv_ubs = .false. ! UBS scheme 527 ln_traadv_qck = .false. ! QUICKEST scheme 528 528 / 529 529 !---------------------------------------------------------------------------------- … … 552 552 / 553 553 !----------------------------------------------------------------------- 554 &namtra_dmp ! tracer: T & S newtonian damping 554 &namtra_dmp ! tracer: T & S newtonian damping 555 555 !----------------------------------------------------------------------- 556 556 ln_tradmp = .true. ! add a damping termn (T) or not (F) … … 580 580 &namdyn_adv ! formulation of the momentum advection 581 581 !----------------------------------------------------------------------- 582 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 582 ln_dynadv_vec = .true. ! vector form (T) or flux form (F) 583 583 ln_dynadv_cen2= .false. ! flux form - 2nd order centered scheme 584 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 585 / 584 ln_dynadv_ubs = .false. ! flux form - 3rd order UBS scheme 585 / 586 586 !----------------------------------------------------------------------- 587 587 &namdyn_vor ! option of physics/algorithm (not control by CPP keys) 588 588 !----------------------------------------------------------------------- 589 ln_dynvor_ene = .false. ! enstrophy conserving scheme 590 ln_dynvor_ens = .false. ! energy conserving scheme 591 ln_dynvor_mix = .false. ! mixed scheme 592 ln_dynvor_een = .true. ! energy & enstrophy scheme 589 ln_dynvor_ene = .false. ! enstrophy conserving scheme 590 ln_dynvor_ens = .false. ! energy conserving scheme 591 ln_dynvor_mix = .false. ! mixed scheme 592 ln_dynvor_een = .true. ! energy & enstrophy scheme 593 593 / 594 594 !----------------------------------------------------------------------- 595 595 &namdyn_hpg ! Hydrostatic pressure gradient option 596 596 !----------------------------------------------------------------------- 597 ln_hpg_zco = .false. ! z-coordinate - full steps 597 ln_hpg_zco = .false. ! z-coordinate - full steps 598 598 ln_hpg_zps = .true. ! z-coordinate - partial steps (interpolation) 599 599 ln_hpg_sco = .false. ! s-coordinate (standard jacobian formulation) … … 613 613 &namdyn_ldf ! lateral diffusion on momentum 614 614 !----------------------------------------------------------------------- 615 ! ! Type of the operator : 616 ln_dynldf_lap = .true. ! laplacian operator 617 ln_dynldf_bilap = .false. ! bilaplacian operator 618 ! ! Direction of action : 619 ln_dynldf_level = .false. ! iso-level 615 ! ! Type of the operator : 616 ln_dynldf_lap = .true. ! laplacian operator 617 ln_dynldf_bilap = .false. ! bilaplacian operator 618 ! ! Direction of action : 619 ln_dynldf_level = .false. ! iso-level 620 620 ln_dynldf_hor = .true. ! horizontal (geopotential) (require "key_ldfslp" in s-coord.) 621 621 ln_dynldf_iso = .false. ! iso-neutral (require "key_ldfslp") … … 623 623 rn_ahm_0_lap = 40000. ! horizontal laplacian eddy viscosity [m2/s] 624 624 rn_ahmb_0 = 0. ! background eddy viscosity for ldf_iso [m2/s] 625 rn_ahm_0_blp = 0. ! horizontal bilaplacian eddy viscosity [m4/s] 625 rn_ahm_0_blp = 0. ! horizontal bilaplacian eddy viscosity [m4/s] 626 626 / 627 627 … … 696 696 &namzdf_kpp ! K-Profile Parameterization dependent vertical mixing ("key_zdfkpp", and optionally: 697 697 !------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb") 698 ln_kpprimix = .true. ! shear instability mixing 698 ln_kpprimix = .true. ! shear instability mixing 699 699 rn_difmiw = 1.0e-04 ! constant internal wave viscosity [m2/s] 700 700 rn_difsiw = 0.1e-04 ! constant internal wave diffusivity [m2/s] 701 701 rn_riinfty = 0.8 ! local Richardson Number limit for shear instability 702 702 rn_difri = 0.0050 ! maximum shear mixing at Rig = 0 [m2/s] 703 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 704 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 703 rn_bvsqcon = -0.01e-07 ! Brunt-Vaisala squared for maximum convection [1/s2] 704 rn_difcon = 1. ! maximum mixing in interior convection [m2/s] 705 705 nn_avb = 0 ! horizontal averaged (=1) or not (=0) on avt and amv 706 706 nn_ave = 1 ! constant (=0) or profile (=1) background on avt … … 736 736 rn_n2min = 1.e-8 ! threshold of the Brunt-Vaisala frequency (s-1) 737 737 rn_tfe = 0.333 ! tidal dissipation efficiency 738 rn_me = 0.2 ! mixing efficiency 738 rn_me = 0.2 ! mixing efficiency 739 739 ln_tmx_itf = .true. ! ITF specific parameterisation 740 740 rn_tfe_itf = 1. ! ITF tidal dissipation efficiency … … 746 746 !! nammpp Massively Parallel Processing ("key_mpp_mpi) 747 747 !! namctl Control prints & Benchmark 748 !! namsol elliptic solver / island / free surface 749 !!====================================================================== 750 ! 751 !----------------------------------------------------------------------- 752 &namsol ! elliptic solver / island / free surface 748 !! namsol elliptic solver / island / free surface 749 !!====================================================================== 750 ! 751 !----------------------------------------------------------------------- 752 &namsol ! elliptic solver / island / free surface 753 753 !----------------------------------------------------------------------- 754 754 nn_solv = 1 ! elliptic solver: =1 preconditioned conjugate gradient (pcg) … … 796 796 !! namflo float parameters ("key_float") 797 797 !! namptr Poleward Transport Diagnostics 798 !! namhsb Heat and salt budgets 798 !! namhsb Heat and salt budgets 799 799 !!====================================================================== 800 800 ! … … 828 828 jpnnewflo = 0 ! number of floats for the restart 829 829 ln_rstflo = .false. ! float restart (T) or not (F) 830 nn_writefl = 75 ! frequency of writing in float output file 831 nn_stockfl = 5475 ! frequency of creation of the float restart file 830 nn_writefl = 75 ! frequency of writing in float output file 831 nn_stockfl = 5475 ! frequency of creation of the float restart file 832 832 ln_argo = .false. ! Argo type floats (stay at the surface each 10 days) 833 833 ln_flork4 = .false. ! trajectories computed with a 4th order Runge-Kutta (T) … … 841 841 ln_diaptr = .false. ! Poleward heat and salt transport (T) or not (F) 842 842 ln_diaznl = .true. ! Add zonal means and meridional stream functions 843 ln_subbas = .true. ! Atlantic/Pacific/Indian basins computation (T) or not 843 ln_subbas = .true. ! Atlantic/Pacific/Indian basins computation (T) or not 844 844 ! (orca configuration only, need input basins mask file named "subbasins.nc" 845 845 ln_ptrcomp = .true. ! Add decomposition : overturning … … 848 848 / 849 849 !----------------------------------------------------------------------- 850 &namhsb ! Heat and salt budgets 850 &namhsb ! Heat and salt budgets 851 851 !----------------------------------------------------------------------- 852 852 ln_diahsb = .false. ! check the heat and salt budgets (T) or not (F) … … 881 881 &namobs ! observation usage switch ('key_diaobs') 882 882 !----------------------------------------------------------------------- 883 ln_t3d = .false. ! Logical switch for T profile observations 884 ln_s3d = .false. ! Logical switch for S profile observations 885 ln_ena = .false. ! Logical switch for ENACT insitu data set 886 ! ! ln_cor Logical switch for Coriolis insitu data set 887 ln_profb = .false. ! Logical switch for feedback insitu data set 888 ln_sla = .false. ! Logical switch for SLA observations 889 890 ln_sladt = .false. ! Logical switch for AVISO SLA data 891 892 ln_slafb = .false. ! Logical switch for feedback SLA data 893 ! ln_ssh Logical switch for SSH observations 894 895 ln_sst = .false. ! Logical switch for SST observations 896 ! ln_reysst Logical switch for Reynolds observations 897 ! ln_ghrsst Logical switch for GHRSST observations 898 899 ln_sstfb = .false. ! Logical switch for feedback SST data 900 ! ln_sss Logical switch for SSS observations 901 ! ln_seaice Logical switch for Sea Ice observations 902 ! ln_vel3d Logical switch for velocity observations 903 ! ln_velavcur Logical switch for velocity daily av. cur. 904 ! ln_velhrcur Logical switch for velocity high freq. cur. 905 ! ln_velavadcp Logical switch for velocity daily av. ADCP 883 ln_t3d = .false. ! Logical switch for T profile observations 884 ln_s3d = .false. ! Logical switch for S profile observations 885 ln_ena = .false. ! Logical switch for ENACT insitu data set 886 ! ! ln_cor Logical switch for Coriolis insitu data set 887 ln_profb = .false. ! Logical switch for feedback insitu data set 888 ln_sla = .false. ! Logical switch for SLA observations 889 890 ln_sladt = .false. ! Logical switch for AVISO SLA data 891 892 ln_slafb = .false. ! Logical switch for feedback SLA data 893 ! ln_ssh Logical switch for SSH observations 894 895 ln_sst = .false. ! Logical switch for SST observations 896 ! ln_reysst Logical switch for Reynolds observations 897 ! ln_ghrsst Logical switch for GHRSST observations 898 899 ln_sstfb = .false. ! Logical switch for feedback SST data 900 ! ln_sss Logical switch for SSS observations 901 ! ln_seaice Logical switch for Sea Ice observations 902 ! ln_vel3d Logical switch for velocity observations 903 ! ln_velavcur Logical switch for velocity daily av. cur. 904 ! ln_velhrcur Logical switch for velocity high freq. cur. 905 ! ln_velavadcp Logical switch for velocity daily av. ADCP 906 906 ! ln_velhradcp Logical switch for velocity high freq. ADCP 907 ! ln_velfb Logical switch for feedback velocity data 908 ! ln_grid_global Global distribtion of observations 909 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 910 ! grid_search_file Grid search lookup file header 911 ! enactfiles ENACT input observation file names 912 ! coriofiles Coriolis input observation file name 913 ! ! profbfiles: Profile feedback input observation file name 907 ! ln_velfb Logical switch for feedback velocity data 908 ! ln_grid_global Global distribtion of observations 909 ! ln_grid_search_lookup Logical switch for obs grid search w/lookup table 910 ! grid_search_file Grid search lookup file header 911 ! enactfiles ENACT input observation file names 912 ! coriofiles Coriolis input observation file name 913 ! ! profbfiles: Profile feedback input observation file name 914 914 profbfiles = 'profiles_01.nc' 915 ! ln_profb_enatim Enact feedback input time setting switch 915 ! ln_profb_enatim Enact feedback input time setting switch 916 916 ! slafilesact Active SLA input observation file name 917 ! slafilespas Passive SLA input observation file name 918 ! ! slafbfiles: Feedback SLA input observation file name 917 ! slafilespas Passive SLA input observation file name 918 ! ! slafbfiles: Feedback SLA input observation file name 919 919 slafbfiles = 'sla_01.nc' 920 ! sstfiles GHRSST input observation file name 921 ! ! sstfbfiles: Feedback SST input observation file name 920 ! sstfiles GHRSST input observation file name 921 ! ! sstfbfiles: Feedback SST input observation file name 922 922 sstfbfiles = 'sst_01.nc' 'sst_02.nc' 'sst_03.nc' 'sst_04.nc' 'sst_05.nc' 923 ! seaicefiles Sea Ice input observation file name 924 ! velavcurfiles Vel. cur. daily av. input file name 925 ! velhvcurfiles Vel. cur. high freq. input file name 926 ! velavadcpfiles Vel. ADCP daily av. input file name 927 ! velhvadcpfiles Vel. ADCP high freq. input file name 928 ! velfbfiles Vel. feedback input observation file name 929 ! dobsini Initial date in window YYYYMMDD.HHMMSS 930 ! dobsend Final date in window YYYYMMDD.HHMMSS 931 ! n1dint Type of vertical interpolation method 932 ! n2dint Type of horizontal interpolation method 933 ! ln_nea Rejection of observations near land switch 934 nmsshc = 0 ! MSSH correction scheme 935 ! mdtcorr MDT correction 936 ! mdtcutoff MDT cutoff for computed correction 937 ln_altbias = .false. ! Logical switch for alt bias 938 ln_ignmis = .true. ! Logical switch for ignoring missing files 939 ! endailyavtypes ENACT daily average types 923 ! seaicefiles Sea Ice input observation file name 924 ! velavcurfiles Vel. cur. daily av. input file name 925 ! velhvcurfiles Vel. cur. high freq. input file name 926 ! velavadcpfiles Vel. ADCP daily av. input file name 927 ! velhvadcpfiles Vel. ADCP high freq. input file name 928 ! velfbfiles Vel. feedback input observation file name 929 ! dobsini Initial date in window YYYYMMDD.HHMMSS 930 ! dobsend Final date in window YYYYMMDD.HHMMSS 931 ! n1dint Type of vertical interpolation method 932 ! n2dint Type of horizontal interpolation method 933 ! ln_nea Rejection of observations near land switch 934 nmsshc = 0 ! MSSH correction scheme 935 ! mdtcorr MDT correction 936 ! mdtcutoff MDT cutoff for computed correction 937 ln_altbias = .false. ! Logical switch for alt bias 938 ln_ignmis = .true. ! Logical switch for ignoring missing files 939 ! endailyavtypes ENACT daily average types 940 940 ln_grid_global = .true. 941 941 ln_grid_search_lookup = .false. 942 / 942 / 943 943 !----------------------------------------------------------------------- 944 944 &nam_asminc ! assimilation increments ('key_asminc') 945 945 !----------------------------------------------------------------------- 946 ln_bkgwri = .false. ! Logical switch for writing out background state 947 ln_trjwri = .false. ! Logical switch for writing out state trajectory 946 ln_bkgwri = .false. ! Logical switch for writing out background state 948 947 ln_trainc = .false. ! Logical switch for applying tracer increments 949 948 ln_dyninc = .false. ! Logical switch for applying velocity increments 950 ln_sshinc = .false. ! Logical switch for applying SSH increments 949 ln_sshinc = .false. ! Logical switch for applying SSH increments 951 950 ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) 952 951 ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) … … 956 955 nitiaufin = 15 ! Timestep of end of IAU interval in [0,nitend-nit000-1] 957 956 niaufn = 0 ! Type of IAU weighting function 958 nittrjfrq = 0 ! Frequency of trajectory output for 4D-VAR959 957 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 960 958 salfixmin = -9999 ! Minimum salinity after applying the increments … … 985 983 rn_htrmax = 200.0 ! max. depth of transition range 986 984 / 985 !----------------------------------------------------------------------- 986 &namtrj ! Handling non-linear trajectory for TAM (output for direct model, input for TAM) 987 !----------------------------------------------------------------------- 988 cn_dirtrj = 'tam_trajectory' ! prefix for input/ouput files 989 ln_trjhand = .false. ! Handling non linear trajectory 990 nn_ittrjfrq = 20 ! Output/input frequency 991 ln_trj_spl = .false. ! Handling trajectory at simple precision 992 / -
trunk/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r3294 r3604 10 10 !! NEMO 3.3 ! 2010-05 (D. Lea) Update to work with NEMO v3.2 11 11 !! - ! 2010-05 (D. Lea) add calc_month_len routine based on day_init 12 !! 3.4 ! 2012-10 (A. Weaver and K. Mogensen) Fix for direct initialization 12 13 !!---------------------------------------------------------------------- 13 14 … … 20 21 !! dyn_asm_inc : Apply the dynamic (u and v) increments 21 22 !! ssh_asm_inc : Apply the SSH increment 23 !! seaice_asm_inc : Apply the seaice increment 22 24 !!---------------------------------------------------------------------- 23 25 USE wrk_nemo ! Memory Allocation … … 25 27 USE dom_oce ! Ocean space and time domain 26 28 USE oce ! Dynamics and active tracers defined in memory 27 USE divcur ! Horizontal divergence and relative vorticity28 29 USE ldfdyn_oce ! ocean dynamics: lateral physics 29 30 USE eosbn2 ! Equation of state - in situ and potential density … … 33 34 USE c1d ! 1D initialization 34 35 USE in_out_manager ! I/O manager 35 USE lib_mpp ! MPP library 36 USE lib_mpp ! MPP library 37 #if defined key_lim3 38 USE ice ! LIM3 39 #endif 40 #if defined key_lim2 41 USE ice_2 ! LIM2 42 #endif 43 USE sbc_oce ! Surface boundary condition variables. 36 44 37 45 IMPLICIT NONE … … 43 51 PUBLIC dyn_asm_inc !: Apply the dynamic (u and v) increments 44 52 PUBLIC ssh_asm_inc !: Apply the SSH increment 53 PUBLIC seaice_asm_inc !: Apply the seaice increment 45 54 46 55 #if defined key_asminc … … 50 59 #endif 51 60 LOGICAL, PUBLIC :: ln_bkgwri = .FALSE. !: No output of the background state fields 52 LOGICAL, PUBLIC :: ln_trjwri = .FALSE. !: No output of the state trajectory fields53 61 LOGICAL, PUBLIC :: ln_asmiau = .FALSE. !: No applying forcing with an assimilation increment 54 62 LOGICAL, PUBLIC :: ln_asmdin = .FALSE. !: No direct initialization … … 56 64 LOGICAL, PUBLIC :: ln_dyninc = .FALSE. !: No dynamics (u and v) assimilation increments 57 65 LOGICAL, PUBLIC :: ln_sshinc = .FALSE. !: No sea surface height assimilation increment 66 LOGICAL, PUBLIC :: ln_seaiceinc = .FALSE. !: No sea ice concentration increment 58 67 LOGICAL, PUBLIC :: ln_salfix = .FALSE. !: Apply minimum salinity check 68 LOGICAL, PUBLIC :: ln_temnofreeze = .FALSE. !: Don't allow the temperature to drop below freezing 59 69 INTEGER, PUBLIC :: nn_divdmp = 0 !: Apply divergence damping filter nn_divdmp times 60 70 … … 78 88 79 89 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment 90 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: seaice_bkginc ! Increment to the background sea ice conc 80 91 81 92 !! * Substitutions … … 125 136 REAL(wp), POINTER, DIMENSION(:,:) :: hdiv 126 137 !! 127 NAMELIST/nam_asminc/ ln_bkgwri, ln_trjwri,&138 NAMELIST/nam_asminc/ ln_bkgwri, & 128 139 & ln_trainc, ln_dyninc, ln_sshinc, & 129 140 & ln_asmdin, ln_asmiau, & 130 141 & nitbkg, nitdin, nitiaustr, nitiaufin, niaufn, & 131 & nittrjfrq,ln_salfix, salfixmin, &142 & ln_salfix, salfixmin, & 132 143 & nn_divdmp 133 144 !!---------------------------------------------------------------------- … … 139 150 ! Set default values 140 151 ln_bkgwri = .FALSE. 141 ln_trjwri = .FALSE.142 152 ln_trainc = .FALSE. 143 153 ln_dyninc = .FALSE. 144 154 ln_sshinc = .FALSE. 155 ln_seaiceinc = .FALSE. 145 156 ln_asmdin = .FALSE. 146 157 ln_asmiau = .TRUE. 147 158 ln_salfix = .FALSE. 159 ln_temnofreeze = .FALSE. 148 160 salfixmin = -9999 149 161 nitbkg = 0 … … 152 164 nitiaufin = 150 ! = 10 days with ORCA2 153 165 niaufn = 0 154 nittrjfrq = 1155 166 156 167 REWIND ( numnam ) … … 164 175 WRITE(numout,*) ' Namelist namasm : set assimilation increment parameters' 165 176 WRITE(numout,*) ' Logical switch for writing out background state ln_bkgwri = ', ln_bkgwri 166 WRITE(numout,*) ' Logical switch for writing out state trajectory ln_trjwri = ', ln_trjwri167 177 WRITE(numout,*) ' Logical switch for applying tracer increments ln_trainc = ', ln_trainc 168 178 WRITE(numout,*) ' Logical switch for applying velocity increments ln_dyninc = ', ln_dyninc 169 179 WRITE(numout,*) ' Logical switch for applying SSH increments ln_sshinc = ', ln_sshinc 170 180 WRITE(numout,*) ' Logical switch for Direct Initialization (DI) ln_asmdin = ', ln_asmdin 181 WRITE(numout,*) ' Logical switch for applying sea ice increments ln_seaiceinc = ', ln_seaiceinc 171 182 WRITE(numout,*) ' Logical switch for Incremental Analysis Updating (IAU) ln_asmiau = ', ln_asmiau 172 183 WRITE(numout,*) ' Timestep of background in [0,nitend-nit000-1] nitbkg = ', nitbkg … … 175 186 WRITE(numout,*) ' Timestep of end of IAU interval in [0,nitend-nit000-1] nitiaufin = ', nitiaufin 176 187 WRITE(numout,*) ' Type of IAU weighting function niaufn = ', niaufn 177 WRITE(numout,*) ' Frequency of trajectory output for 4D-VAR nittrjfrq = ', nittrjfrq178 188 WRITE(numout,*) ' Logical switch for ensuring that the sa > salfixmin ln_salfix = ', ln_salfix 179 189 WRITE(numout,*) ' Minimum salinity after applying the increments salfixmin = ', salfixmin … … 213 223 WRITE(numout,*) ' nitiaustr_r = ', nitiaustr_r 214 224 WRITE(numout,*) ' nitiaufin_r = ', nitiaufin_r 215 WRITE(numout,*) ' nittrjfrq = ', nittrjfrq216 225 WRITE(numout,*) 217 226 WRITE(numout,*) ' Dates referenced to current cycle:' … … 235 244 236 245 IF ( ( ( .NOT. ln_asmdin ).AND.( .NOT. ln_asmiau ) ) & 237 .AND.( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) )) &238 & CALL ctl_stop( ' One or more of ln_trainc, ln_dyninc and ln_sshinc is set to .true.', &246 .AND.( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) .OR. ( ln_seaiceinc) )) & 247 & CALL ctl_stop( ' One or more of ln_trainc, ln_dyninc, ln_sshinc and ln_seaiceinc is set to .true.', & 239 248 & ' but ln_asmdin and ln_asmiau are both set to .false. :', & 240 249 & ' Inconsistent options') … … 248 257 & ' Type IAU weighting function is invalid') 249 258 250 IF ( ( .NOT. ln_trainc ).AND.( .NOT. ln_dyninc ).AND.( .NOT. ln_sshinc ) &259 IF ( ( .NOT. ln_trainc ).AND.( .NOT. ln_dyninc ).AND.( .NOT. ln_sshinc ).AND.( .NOT. ln_seaiceinc ) & 251 260 & ) & 252 & CALL ctl_warn( ' ln_trainc, ln_dyninc and ln_sshinc are set to .false. :', &261 & CALL ctl_warn( ' ln_trainc, ln_dyninc, ln_sshinc and ln_seaiceinc are set to .false. :', & 253 262 & ' The assimilation increments are not applied') 254 263 … … 353 362 ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 354 363 ALLOCATE( ssh_bkginc(jpi,jpj) ) 364 ALLOCATE( seaice_bkginc(jpi,jpj)) 355 365 #if defined key_asminc 356 366 ALLOCATE( ssh_iau(jpi,jpj) ) … … 361 371 v_bkginc(:,:,:) = 0.0 362 372 ssh_bkginc(:,:) = 0.0 373 seaice_bkginc(:,:) = 0.0 363 374 #if defined key_asminc 364 375 ssh_iau(:,:) = 0.0 365 376 #endif 366 IF ( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ) ) THEN377 IF ( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ).OR.( ln_seaiceinc ) ) THEN 367 378 368 379 !-------------------------------------------------------------------- … … 429 440 ENDIF 430 441 442 IF ( ln_seaiceinc ) THEN 443 CALL iom_get( inum, jpdom_autoglo, 'bckinseaice', seaice_bkginc, 1 ) 444 ! Apply the masks 445 seaice_bkginc(:,:) = seaice_bkginc(:,:) * tmask(:,:,1) 446 ! Set missing increments to 0.0 rather than 1e+20 447 ! to allow for differences in masks 448 WHERE( ABS( seaice_bkginc(:,:) ) > 1.0e+10 ) seaice_bkginc(:,:) = 0.0 449 ENDIF 450 431 451 CALL iom_close( inum ) 432 452 … … 437 457 !----------------------------------------------------------------------- 438 458 439 440 459 IF ( ln_dyninc .AND. nn_divdmp > 0 ) THEN 441 460 442 CALL wrk_alloc(jpi,jpj,hdiv) 443 444 DO jt = 1, nn_divdmp 445 446 DO jk = 1, jpkm1 447 448 hdiv(:,:) = 0._wp 449 450 DO jj = 2, jpjm1 451 DO ji = fs_2, fs_jpim1 ! vector opt. 452 hdiv(ji,jj) = & 453 ( e2u(ji ,jj)*fse3u(ji ,jj,jk) * u_bkginc(ji ,jj,jk) & 454 - e2u(ji-1,jj)*fse3u(ji-1,jj,jk) * u_bkginc(ji-1,jj,jk) & 455 + e1v(ji,jj )*fse3v(ji,jj ,jk) * v_bkginc(ji,jj ,jk) & 456 - e1v(ji,jj-1)*fse3v(ji,jj-1,jk) * v_bkginc(ji,jj-1,jk) ) & 457 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 461 CALL wrk_alloc(jpi,jpj,hdiv) 462 463 DO jt = 1, nn_divdmp 464 465 DO jk = 1, jpkm1 466 467 hdiv(:,:) = 0._wp 468 469 DO jj = 2, jpjm1 470 DO ji = fs_2, fs_jpim1 ! vector opt. 471 hdiv(ji,jj) = & 472 ( e2u(ji ,jj ) * fse3u(ji ,jj ,jk) * u_bkginc(ji ,jj ,jk) & 473 - e2u(ji-1,jj ) * fse3u(ji-1,jj ,jk) * u_bkginc(ji-1,jj ,jk) & 474 + e1v(ji ,jj ) * fse3v(ji ,jj ,jk) * v_bkginc(ji ,jj ,jk) & 475 - e1v(ji ,jj-1) * fse3v(ji ,jj-1,jk) * v_bkginc(ji ,jj-1,jk) ) & 476 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 477 END DO 458 478 END DO 479 480 CALL lbc_lnk( hdiv, 'T', 1. ) ! lateral boundary cond. (no sign change) 481 482 DO jj = 2, jpjm1 483 DO ji = fs_2, fs_jpim1 ! vector opt. 484 u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk) + 0.2_wp * ( e1t(ji+1,jj)*e2t(ji+1,jj) * hdiv(ji+1,jj) & 485 - e1t(ji ,jj)*e2t(ji ,jj) * hdiv(ji ,jj) ) & 486 / e1u(ji,jj) * umask(ji,jj,jk) 487 v_bkginc(ji,jj,jk) = v_bkginc(ji,jj,jk) + 0.2_wp * ( e1t(ji,jj+1)*e2t(ji,jj+1) * hdiv(ji,jj+1) & 488 - e1t(ji,jj )*e2t(ji,jj ) * hdiv(ji,jj ) ) & 489 / e2v(ji,jj) * vmask(ji,jj,jk) 490 END DO 491 END DO 492 459 493 END DO 460 494 461 CALL lbc_lnk( hdiv, 'T', 1. ) ! lateral boundary cond. (no sign change) 462 463 DO jj = 2, jpjm1 464 DO ji = fs_2, fs_jpim1 ! vector opt. 465 u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji+1,jj)*e2t(ji+1,jj) * hdiv(ji+1,jj) & 466 - e1t(ji ,jj)*e2t(ji ,jj) * hdiv(ji ,jj) ) & 467 / e1u(ji,jj) * umask(ji,jj,jk) 468 v_bkginc(ji,jj,jk) = v_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji,jj+1)*e2t(ji,jj+1) * hdiv(ji,jj+1) & 469 - e1t(ji,jj )*e2t(ji,jj ) * hdiv(ji,jj ) ) & 470 / e2v(ji,jj) * vmask(ji,jj,jk) 471 END DO 472 END DO 473 474 END DO 475 476 END DO 477 478 CALL wrk_dealloc(jpi,jpj,hdiv) 495 END DO 496 497 CALL wrk_dealloc(jpi,jpj,hdiv) 479 498 480 499 ENDIF … … 506 525 CALL iom_open( c_asmdin, inum ) 507 526 508 CALL iom_get( inum, ' zdate', zdate_bkg )527 CALL iom_get( inum, 'rdastp', zdate_bkg ) 509 528 510 529 IF(lwp) THEN … … 662 681 INTEGER :: it 663 682 REAL(wp) :: zincwgt ! IAU weight for current time step 664 !!---------------------------------------------------------------------- 683 REAL (wp), DIMENSION(jpi,jpj,jpk) :: fzptnz ! 3d freezing point values 684 !!---------------------------------------------------------------------- 685 686 ! freezing point calculation taken from oc_fz_pt (but calculated for all depths) 687 ! used to prevent the applied increments taking the temperature below the local freezing point 688 689 #if defined key_cice 690 fzptnz(:,:,:) = -1.8_wp 691 #else 692 DO jk = 1, jpk 693 DO jj = 1, jpj 694 DO ji = 1, jpk 695 fzptnz (ji,jj,jk) = ( -0.0575_wp + 1.710523e-3_wp * SQRT( tsn(ji,jj,jk,jp_sal) ) & 696 - 2.154996e-4_wp * tsn(ji,jj,jk,jp_sal) ) * tsn(ji,jj,jk,jp_sal) & 697 - 7.53e-4_wp * fsdepw(ji,jj,jk) ! (pressure in dbar) 698 END DO 699 END DO 700 END DO 701 #endif 665 702 666 703 IF ( ln_asmiau ) THEN … … 684 721 ! Update the tracer tendencies 685 722 DO jk = 1, jpkm1 686 tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt 687 tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 723 IF (ln_temnofreeze) THEN 724 ! Do not apply negative increments if the temperature will fall below freezing 725 WHERE(t_bkginc(:,:,jk) > 0.0_wp .OR. & 726 & tsn(:,:,jk,jp_tem) + tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * wgtiau(it) > fzptnz(:,:,jk) ) 727 tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt 728 END WHERE 729 ELSE 730 tsa(:,:,jk,jp_tem) = tsa(:,:,jk,jp_tem) + t_bkginc(:,:,jk) * zincwgt 731 ENDIF 732 IF (ln_salfix) THEN 733 ! Do not apply negative increments if the salinity will fall below a specified 734 ! minimum value salfixmin 735 WHERE(s_bkginc(:,:,jk) > 0.0_wp .OR. & 736 & tsn(:,:,jk,jp_sal) + tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * wgtiau(it) > salfixmin ) 737 tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 738 END WHERE 739 ELSE 740 tsa(:,:,jk,jp_sal) = tsa(:,:,jk,jp_sal) + s_bkginc(:,:,jk) * zincwgt 741 ENDIF 688 742 END DO 689 690 ! Salinity fix691 IF (ln_salfix) THEN692 DO jk = 1, jpkm1693 DO jj = 1, jpj694 DO ji= 1, jpi695 tsa(ji,jj,jk,jp_sal) = MAX( tsa(ji,jj,jk,jp_sal), salfixmin )696 END DO697 END DO698 END DO699 ENDIF700 743 701 744 ENDIF … … 718 761 719 762 ! Initialize the now fields with the background + increment 720 tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:) 721 tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:) 722 723 ! Optional salinity fix 763 IF (ln_temnofreeze) THEN 764 ! Do not apply negative increments if the temperature will fall below freezing 765 WHERE(t_bkginc(:,:,:) > 0.0_wp .OR. & 766 & tsn(:,:,:,jp_tem) + t_bkginc(:,:,:) > fzptnz(:,:,:) ) 767 tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:) 768 END WHERE 769 ELSE 770 tsn(:,:,:,jp_tem) = t_bkg(:,:,:) + t_bkginc(:,:,:) 771 ENDIF 724 772 IF (ln_salfix) THEN 725 DO jk = 1, jpkm1 726 DO jj = 1, jpj 727 DO ji= 1, jpi 728 tsn(ji,jj,jk,jp_sal) = MAX( tsn(ji,jj,jk,jp_sal), salfixmin ) 729 END DO 730 END DO 731 END DO 773 ! Do not apply negative increments if the salinity will fall below a specified 774 ! minimum value salfixmin 775 WHERE(s_bkginc(:,:,:) > 0.0_wp .OR. & 776 & tsn(:,:,:,jp_sal) + s_bkginc(:,:,:) > salfixmin ) 777 tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:) 778 END WHERE 779 ELSE 780 tsn(:,:,:,jp_sal) = s_bkg(:,:,:) + s_bkginc(:,:,:) 732 781 ENDIF 733 782 734 tsb(:,:,:,:) = tsn(:,:,:,:) 783 tsb(:,:,:,:) = tsn(:,:,:,:) ! Update before fields 735 784 736 785 CALL eos( tsb, rhd, rhop ) ! Before potential and in situ densities 737 786 738 787 IF( ln_zps .AND. .NOT. lk_c1d ) & 739 & CALL zps_hde( nit000, jpts, tsb, 740 & gtsu, gtsv, rhd, 788 & CALL zps_hde( nit000, jpts, tsb, & ! Partial steps: before horizontal derivative 789 & gtsu, gtsv, rhd, & ! of T, S, rd at the bottom ocean level 741 790 & gru , grv ) 791 792 #if defined key_zdfkpp 793 CALL eos( tsn, rhd ) ! Compute rhd 794 #endif 742 795 743 796 DEALLOCATE( t_bkginc ) … … 748 801 ! 749 802 ENDIF 803 ! Perhaps the following call should be in step 804 IF ( ln_seaiceinc ) CALL seaice_asm_inc ( kt ) ! apply sea ice concentration increment 750 805 ! 751 806 END SUBROUTINE tra_asm_inc … … 817 872 vb(:,:,:) = vn(:,:,:) 818 873 819 CALL div_cur( kt ) ! Compute divergence and curl for now fields820 821 rotb (:,:,:) = rotn (:,:,:) ! Update before fields822 hdivb(:,:,:) = hdivn(:,:,:)823 824 874 DEALLOCATE( u_bkg ) 825 875 DEALLOCATE( v_bkg ) … … 846 896 ! 847 897 INTEGER :: it 898 INTEGER :: jk 848 899 REAL(wp) :: zincwgt ! IAU weight for current time step 849 900 !!---------------------------------------------------------------------- … … 891 942 sshn(:,:) = ssh_bkg(:,:) + ssh_bkginc(:,:) 892 943 893 sshb(:,:) = sshn(:,:) ! Update before fields 944 ! Update before fields 945 sshb(:,:) = sshn(:,:) 946 947 IF( lk_vvl ) THEN 948 DO jk = 1, jpk 949 fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 950 END DO 951 ENDIF 894 952 895 953 DEALLOCATE( ssh_bkg ) … … 902 960 END SUBROUTINE ssh_asm_inc 903 961 962 SUBROUTINE seaice_asm_inc( kt, kindic ) 963 !!---------------------------------------------------------------------- 964 !! *** ROUTINE seaice_asm_inc *** 965 !! 966 !! ** Purpose : Apply the sea ice assimilation increment. 967 !! 968 !! ** Method : Direct initialization or Incremental Analysis Updating. 969 !! 970 !! ** Action : 971 !! 972 !! History : 973 !! ! 07-2011 (D. Lea) Initial version based on ssh_asm_inc 974 !!---------------------------------------------------------------------- 975 976 IMPLICIT NONE 977 978 !! * Arguments 979 INTEGER, INTENT(IN) :: kt ! Current time step 980 INTEGER, OPTIONAL, INTENT(IN) :: kindic ! flag for disabling the deallocation 981 982 !! * Local declarations 983 INTEGER :: it 984 REAL(wp) :: zincwgt ! IAU weight for current time step 985 986 #if defined key_lim3 || defined key_lim2 987 REAL(wp), DIMENSION(jpi,jpj) :: zofrld, zohicif, zseaicendg, zhicifinc ! LIM 988 REAL(wp) :: zhicifmin=0.5_wp ! ice minimum depth in metres 989 990 #endif 991 992 993 IF ( ln_asmiau ) THEN 994 995 !-------------------------------------------------------------------- 996 ! Incremental Analysis Updating 997 !-------------------------------------------------------------------- 998 999 IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN 1000 1001 it = kt - nit000 + 1 1002 zincwgt = wgtiau(it) ! IAU weight for the current time step 1003 ! note this is not a tendency so should not be divided by rdt (as with the tracer and other increments) 1004 1005 IF(lwp) THEN 1006 WRITE(numout,*) 1007 WRITE(numout,*) 'seaice_asm_inc : sea ice conc IAU at time step = ', & 1008 & kt,' with IAU weight = ', wgtiau(it) 1009 WRITE(numout,*) '~~~~~~~~~~~~' 1010 ENDIF 1011 1012 #if defined key_lim3 || defined key_lim2 1013 1014 zofrld(:,:)=frld(:,:) 1015 zohicif(:,:)=hicif(:,:) 1016 1017 frld = MIN( MAX( frld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 1018 pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 1019 fr_i(:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction 1020 1021 zseaicendg(:,:)=zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied 1022 1023 ! Nudge sea ice depth to bring it up to a required minimum depth 1024 1025 WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin ) 1026 zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt 1027 ELSEWHERE 1028 zhicifinc(:,:) = 0.0_wp 1029 END WHERE 1030 1031 ! nudge ice depth 1032 hicif(:,:)=hicif(:,:) + zhicifinc(:,:) 1033 phicif(:,:)=phicif(:,:) + zhicifinc(:,:) 1034 1035 ! seaice salinity balancing (to add) 1036 1037 #endif 1038 1039 #if defined key_cice 1040 1041 ! Pass ice increment tendency into CICE 1042 ndaice_da(:,:) = seaice_bkginc(:,:) * zincwgt / rdt 1043 1044 #endif 1045 1046 IF ( kt == nitiaufin_r ) THEN 1047 DEALLOCATE( seaice_bkginc ) 1048 ENDIF 1049 1050 ELSE 1051 1052 #if defined key_cice 1053 1054 ! Zero ice increment tendency into CICE 1055 ndaice_da(:,:) = 0.0_wp 1056 1057 #endif 1058 1059 ENDIF 1060 1061 ELSEIF ( ln_asmdin ) THEN 1062 1063 !-------------------------------------------------------------------- 1064 ! Direct Initialization 1065 !-------------------------------------------------------------------- 1066 1067 IF ( kt == nitdin_r ) THEN 1068 1069 neuler = 0 ! Force Euler forward step 1070 1071 #if defined key_lim3 || defined key_lim2 1072 1073 zofrld(:,:)=frld(:,:) 1074 zohicif(:,:)=hicif(:,:) 1075 1076 ! Initialize the now fields the background + increment 1077 1078 frld(:,:) = MIN( MAX( frld(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 1079 pfrld(:,:) = frld(:,:) 1080 fr_i(:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction 1081 1082 zseaicendg(:,:)=zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied 1083 1084 ! Nudge sea ice depth to bring it up to a required minimum depth 1085 1086 WHERE( zseaicendg(:,:) > 0.0_wp .AND. hicif(:,:) < zhicifmin ) 1087 zhicifinc(:,:) = (zhicifmin - hicif(:,:)) * zincwgt 1088 ELSEWHERE 1089 zhicifinc(:,:) = 0.0_wp 1090 END WHERE 1091 1092 ! nudge ice depth 1093 hicif(:,:)=hicif(:,:) + zhicifinc(:,:) 1094 phicif(:,:)=phicif(:,:) 1095 1096 ! seaice salinity balancing (to add) 1097 1098 #endif 1099 1100 #if defined key_cice 1101 1102 ! Pass ice increment tendency into CICE - is this correct? 1103 ndaice_da(:,:) = seaice_bkginc(:,:) / rdt 1104 1105 #endif 1106 IF ( .NOT. PRESENT(kindic) ) THEN 1107 DEALLOCATE( seaice_bkginc ) 1108 END IF 1109 1110 ELSE 1111 1112 #if defined key_cice 1113 1114 ! Zero ice increment tendency into CICE 1115 ndaice_da(:,:) = 0.0_wp 1116 1117 #endif 1118 1119 ENDIF 1120 1121 !#if defined key_lim3 || defined key_lim2 || defined key_cice 1122 ! 1123 ! IF (ln_seaicebal ) THEN 1124 ! !! balancing salinity increments 1125 ! !! simple case from limflx.F90 (doesn't include a mass flux) 1126 ! !! assumption is that as ice concentration is reduced or increased 1127 ! !! the snow and ice depths remain constant 1128 ! !! note that snow is being created where ice concentration is being increased 1129 ! !! - could be more sophisticated and 1130 ! !! not do this (but would need to alter h_snow) 1131 ! 1132 ! usave(:,:,:)=sb(:,:,:) ! use array as a temporary store 1133 ! 1134 ! DO jj = 1, jpj 1135 ! DO ji = 1, jpi 1136 ! ! calculate change in ice and snow mass per unit area 1137 ! ! positive values imply adding salt to the ocean (results from ice formation) 1138 ! ! fwf : ice formation and melting 1139 ! 1140 ! zfons = ( -nfresh_da(ji,jj)*soce + nfsalt_da(ji,jj) )*rdt 1141 ! 1142 ! ! change salinity down to mixed layer depth 1143 ! mld=hmld_kara(ji,jj) 1144 ! 1145 ! ! prevent small mld 1146 ! ! less than 10m can cause salinity instability 1147 ! IF (mld < 10) mld=10 1148 ! 1149 ! ! set to bottom of a level 1150 ! DO jk = jpk-1, 2, -1 1151 ! IF ((mld > gdepw(ji,jj,jk)) .and. (mld < gdepw(ji,jj,jk+1))) THEN 1152 ! mld=gdepw(ji,jj,jk+1) 1153 ! jkmax=jk 1154 ! ENDIF 1155 ! ENDDO 1156 ! 1157 ! ! avoid applying salinity balancing in shallow water or on land 1158 ! ! 1159 ! 1160 ! ! dsal_ocn (psu kg m^-2) / (kg m^-3 * m) 1161 ! 1162 ! dsal_ocn=0.0_wp 1163 ! sal_thresh=5.0_wp ! minimum salinity threshold for salinity balancing 1164 ! 1165 ! if (tmask(ji,jj,1) > 0 .AND. tmask(ji,jj,jkmax) > 0 ) & 1166 ! dsal_ocn = zfons / (rhop(ji,jj,1) * mld) 1167 ! 1168 ! ! put increments in for levels in the mixed layer 1169 ! ! but prevent salinity below a threshold value 1170 ! 1171 ! DO jk = 1, jkmax 1172 ! 1173 ! IF (dsal_ocn > 0.0_wp .or. sb(ji,jj,jk)+dsal_ocn > sal_thresh) THEN 1174 ! sb(ji,jj,jk) = sb(ji,jj,jk) + dsal_ocn 1175 ! sn(ji,jj,jk) = sn(ji,jj,jk) + dsal_ocn 1176 ! ENDIF 1177 ! 1178 ! ENDDO 1179 ! 1180 ! ! ! salt exchanges at the ice/ocean interface 1181 ! ! zpmess = zfons / rdt_ice ! rdt_ice is ice timestep 1182 ! ! 1183 ! !! Adjust fsalt. A +ve fsalt means adding salt to ocean 1184 ! !! fsalt(ji,jj) = fsalt(ji,jj) + zpmess ! adjust fsalt 1185 ! !! 1186 ! !! emps(ji,jj) = emps(ji,jj) + zpmess ! or adjust emps (see icestp1d) 1187 ! !! ! E-P (kg m-2 s-2) 1188 ! ! emp(ji,jj) = emp(ji,jj) + zpmess ! E-P (kg m-2 s-2) 1189 ! ENDDO !ji 1190 ! ENDDO !jj! 1191 ! 1192 ! ENDIF !ln_seaicebal 1193 ! 1194 !#endif 1195 1196 1197 ENDIF 1198 1199 END SUBROUTINE seaice_asm_inc 904 1200 !!====================================================================== 905 1201 END MODULE asminc -
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90
r3294 r3604 2 2 !!====================================================================== 3 3 !! *** MODULE daymod *** 4 !! Ocean : calendar 4 !! Ocean : calendar 5 5 !!===================================================================== 6 6 !! History : OPA ! 1994-09 (M. Pontaud M. Imbard) Original code 7 7 !! ! 1997-03 (O. Marti) 8 !! ! 1997-05 (G. Madec) 8 !! ! 1997-05 (G. Madec) 9 9 !! ! 1997-08 (M. Imbard) 10 10 !! NEMO 1.0 ! 2003-09 (G. Madec) F90 + nyear, nmonth, nday 11 11 !! ! 2004-01 (A.M. Treguier) new calculation based on adatrj 12 12 !! ! 2006-08 (G. Madec) surface module major update 13 !!---------------------------------------------------------------------- 13 !!---------------------------------------------------------------------- 14 14 15 15 !!---------------------------------------------------------------------- 16 16 !! day : calendar 17 !! 17 !! 18 18 !! ------------------------------- 19 19 !! ----------- WARNING ----------- … … 24 24 !! ----------- WARNING ----------- 25 25 !! ------------------------------- 26 !! 26 !! 27 27 !!---------------------------------------------------------------------- 28 28 USE dom_oce ! ocean space and time domain 29 29 USE phycst ! physical constants 30 30 USE in_out_manager ! I/O manager 31 USE iom ! 31 USE iom ! 32 32 USE ioipsl, ONLY : ymds2ju ! for calendar 33 33 USE prtctl ! Print control 34 USE restart ! 34 USE restart ! 35 35 USE trc_oce, ONLY : lk_offline ! offline flag 36 36 USE timing ! Timing … … 41 41 PUBLIC day ! called by step.F90 42 42 PUBLIC day_init ! called by istate.F90 43 44 INTEGER :: nsecd, nsecd05, ndt, ndt05 43 PUBLIC day_mth ! Needed by TAM 44 45 INTEGER, PUBLIC :: nsecd, nsecd05, ndt, ndt05 ! (PUBLIC for TAM) 45 46 46 47 !!---------------------------------------------------------------------- … … 54 55 !!---------------------------------------------------------------------- 55 56 !! *** ROUTINE day_init *** 56 !! 57 !! ** Purpose : Initialization of the calendar values to their values 1 time step before nit000 57 !! 58 !! ** Purpose : Initialization of the calendar values to their values 1 time step before nit000 58 59 !! because day will be called at the beginning of step 59 60 !! … … 81 82 ndt05 = NINT(0.5 * rdttra(1)) 82 83 83 IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 84 IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 84 85 85 86 ! set the calandar from ndastp (read in restart file and namelist) … … 87 88 nyear = ndastp / 10000 88 89 nmonth = ( ndastp - (nyear * 10000) ) / 100 89 nday = ndastp - (nyear * 10000) - ( nmonth * 100 ) 90 nday = ndastp - (nyear * 10000) - ( nmonth * 100 ) 90 91 91 92 CALL ymds2ju( nyear, nmonth, nday, 0.0, fjulday ) ! we assume that we start run at 00:00 … … 95 96 nsec1jan000 = 0 96 97 CALL day_mth 97 98 98 99 IF ( nday == 0 ) THEN ! for ex if ndastp = ndate0 - 1 99 nmonth = nmonth - 1 100 nmonth = nmonth - 1 100 101 nday = nmonth_len(nmonth) 101 102 ENDIF … … 106 107 IF( nleapy == 1 ) CALL day_mth 107 108 ENDIF 108 109 109 110 ! day since january 1st 110 111 nday_year = nday + SUM( nmonth_len(1:nmonth - 1) ) 111 112 112 !compute number of days between last monday and today 113 !compute number of days between last monday and today 113 114 CALL ymds2ju( 1900, 01, 01, 0.0, zjul ) ! compute julian day value of 01.01.1900 (our reference that was a Monday) 114 inbday = NINT(fjulday - zjul) ! compute nb day between 01.01.1900 and current day 115 idweek = MOD(inbday, 7) ! compute nb day between last monday and current day 115 inbday = NINT(fjulday - zjul) ! compute nb day between 01.01.1900 and current day 116 idweek = MOD(inbday, 7) ! compute nb day between last monday and current day 116 117 117 118 ! number of seconds since the beginning of current year/month/week/day at the middle of the time-step … … 135 136 !!---------------------------------------------------------------------- 136 137 !! *** ROUTINE day_init *** 137 !! 138 !! 138 139 !! ** Purpose : calendar values related to the months 139 140 !! … … 147 148 148 149 ! length of the month of the current year (from nleapy, read in namelist) 149 IF ( nleapy < 2 ) THEN 150 IF ( nleapy < 2 ) THEN 150 151 nmonth_len(:) = (/ 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31 /) 151 152 nyear_len(:) = 365 … … 167 168 ! time since Jan 1st 0 1 2 ... 11 12 13 168 169 ! ---------*--|--*--|--*--| ... |--*--|--*--|--*--|-------------------------------------- 169 ! <---> <---> <---> ... <---> <---> <---> 170 ! <---> <---> <---> ... <---> <---> <---> 170 171 ! month number 0 1 2 ... 11 12 13 171 172 ! … … 180 181 nmonth_end(jm) = nmonth_end(jm-1) + nsecd * nmonth_len(jm) 181 182 END DO 182 ! 183 END SUBROUTINE 183 ! 184 END SUBROUTINE 184 185 185 186 … … 187 188 !!---------------------------------------------------------------------- 188 189 !! *** ROUTINE day *** 189 !! 190 !! 190 191 !! ** Purpose : Compute the date with a day iteration IF necessary. 191 192 !! … … 199 200 !! - adatrj : date in days since the beginning of the run 200 201 !! - nsec_year : current time of the year (in second since 00h, jan 1st) 201 !!---------------------------------------------------------------------- 202 !!---------------------------------------------------------------------- 202 203 INTEGER, INTENT(in) :: kt ! ocean time-step indices 203 204 ! … … 210 211 zprec = 0.1 / rday 211 212 ! ! New time-step 212 nsec_year = nsec_year + ndt 213 nsec_month = nsec_month + ndt 213 nsec_year = nsec_year + ndt 214 nsec_month = nsec_month + ndt 214 215 nsec_week = nsec_week + ndt 215 nsec_day = nsec_day + ndt 216 nsec_day = nsec_day + ndt 216 217 adatrj = adatrj + rdttra(1) / rday 217 218 fjulday = fjulday + rdttra(1) / rday 218 219 IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec ) fjulday = REAL(NINT(fjulday),wp) ! avoid truncation error 219 220 IF( ABS(adatrj - REAL(NINT(adatrj ),wp)) < zprec ) adatrj = REAL(NINT(adatrj ),wp) ! avoid truncation error 220 221 221 222 IF( nsec_day > nsecd ) THEN ! New day 222 223 ! … … 251 252 252 253 IF( nsec_week > 7*nsecd ) nsec_week = ndt05 ! New week 253 254 254 255 IF(ln_ctl) THEN 255 256 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear … … 268 269 !!--------------------------------------------------------------------- 269 270 !! *** ROUTINE ts_rst *** 270 !! 271 !! 271 272 !! ** Purpose : Read or write calendar in restart file: 272 !! 273 !! 273 274 !! WRITE(READ) mode: 274 !! kt : number of time step since the begining of the experiment at the 275 !! kt : number of time step since the begining of the experiment at the 275 276 !! end of the current(previous) run 276 !! adatrj(0) : number of elapsed days since the begining of the experiment at the 277 !! adatrj(0) : number of elapsed days since the begining of the experiment at the 277 278 !! end of the current(previous) run (REAL -> keep fractions of day) 278 279 !! ndastp : date at the end of the current(previous) run (coded as yyyymmdd integer) 279 !! 280 !! 280 281 !! According to namelist parameter nrstdt, 281 282 !! nrstdt = 0 no control on the date (nit000 is arbitrary). … … 295 296 REAL(wp) :: zkt, zndastp 296 297 !!---------------------------------------------------------------------- 297 298 298 299 IF( TRIM(cdrw) == 'READ' ) THEN 299 300 … … 312 313 WRITE(numout,*) 313 314 ENDIF 314 ! Control of date 315 IF( nit000 - NINT( zkt ) /= 1 .AND. nrstdt /= 0 ) & 316 & CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart', & 315 ! Control of date 316 IF( nit000 - NINT( zkt ) /= 1 .AND. nrstdt /= 0 ) & 317 & CALL ctl_stop( ' ===>>>> : problem with nit000 for the restart', & 317 318 & ' verify the restart file or rerun with nrstdt = 0 (namelist)' ) 318 319 ! define ndastp and adatrj 319 IF ( nrstdt == 2 ) THEN 320 IF ( nrstdt == 2 ) THEN 320 321 ! read the parameters correspondting to nit000 - 1 (last time step of previous run) 321 322 CALL iom_get( numror, 'ndastp', zndastp ) 322 323 ndastp = NINT( zndastp ) 323 324 CALL iom_get( numror, 'adatrj', adatrj ) 324 ELSE 325 ELSE 325 326 ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 326 327 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 327 adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 328 ! note this is wrong if time step has changed during run 328 adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 329 ! note this is wrong if time step has changed during run 329 330 ENDIF 330 331 ELSE 331 332 ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 332 333 ndastp = ndate0 - 1 ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 333 adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 334 adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 334 335 ENDIF 335 336 IF( ABS(adatrj - REAL(NINT(adatrj),wp)) < 0.1 / rday ) adatrj = REAL(NINT(adatrj),wp) ! avoid truncation error … … 347 348 IF(lwp) WRITE(numout,*) 348 349 IF(lwp) WRITE(numout,*) 'rst_write : write oce restart file kt =', kt 349 IF(lwp) WRITE(numout,*) '~~~~~~~' 350 IF(lwp) WRITE(numout,*) '~~~~~~~' 350 351 ENDIF 351 352 ! calendar control 352 CALL iom_rstput( kt, nitrst, numrow, 'kt' , REAL( kt , wp) ) ! time-step 353 CALL iom_rstput( kt, nitrst, numrow, 'kt' , REAL( kt , wp) ) ! time-step 353 354 CALL iom_rstput( kt, nitrst, numrow, 'ndastp' , REAL( ndastp, wp) ) ! date 354 355 CALL iom_rstput( kt, nitrst, numrow, 'adatrj' , adatrj ) ! number of elapsed days since -
trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r3598 r3604 128 128 INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: nrank_znl ! dimension ndim_rank_znl, number of the procs into the same znl domain 129 129 130 ! North fold condition in mpp_mpi with jpni > 1 131 INTEGER :: ngrp_world ! group ID for the world processors132 INTEGER :: ngrp_opa ! group ID for the opa processors133 INTEGER :: ngrp_north ! group ID for the northern processors (to be fold)134 INTEGER :: ncomm_north ! communicator made by the processors belonging to ngrp_north135 INTEGER :: ndim_rank_north ! number of 'sea' processor in the northern line (can be /= jpni !)136 INTEGER :: njmppmax ! value of njmpp for the processors of the northern line137 INTEGER :: north_root ! number (in the comm_opa) of proc 0 in the northern comm138 INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: nrank_north ! dimension ndim_rank_north130 ! North fold condition in mpp_mpi with jpni > 1 (PUBLIC for TAM) 131 INTEGER, PUBLIC :: ngrp_world ! group ID for the world processors 132 INTEGER, PUBLIC :: ngrp_opa ! group ID for the opa processors 133 INTEGER, PUBLIC :: ngrp_north ! group ID for the northern processors (to be fold) 134 INTEGER, PUBLIC :: ncomm_north ! communicator made by the processors belonging to ngrp_north 135 INTEGER, PUBLIC :: ndim_rank_north ! number of 'sea' processor in the northern line (can be /= jpni !) 136 INTEGER, PUBLIC :: njmppmax ! value of njmpp for the processors of the northern line 137 INTEGER, PUBLIC :: north_root ! number (in the comm_opa) of proc 0 in the northern comm 138 INTEGER, DIMENSION(:), ALLOCATABLE, SAVE, PUBLIC :: nrank_north ! dimension ndim_rank_north 139 139 140 140 ! Type of send : standard, buffered, immediate 141 CHARACTER(len=1) :: cn_mpi_send = 'S' ! type od mpi send/recieve (S=standard, B=bsend, I=isend)142 LOGICAL :: l_isend = .FALSE. ! isend use indicator (T if cn_mpi_send='I')143 INTEGER :: nn_buffer = 0 ! size of the buffer in case of mpi_bsend141 CHARACTER(len=1), PUBLIC :: cn_mpi_send = 'S' ! type od mpi send/recieve (S=standard, B=bsend, I=isend) 142 LOGICAL, PUBLIC :: l_isend = .FALSE. ! isend use indicator (T if cn_mpi_send='I') 143 INTEGER, PUBLIC :: nn_buffer = 0 ! size of the buffer in case of mpi_bsend 144 144 145 145 REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE :: tampon ! buffer in case of bsend -
trunk/NEMOGCM/NEMO/OPA_SRC/lib_fortran.F90
r3421 r3604 8 8 9 9 !!---------------------------------------------------------------------- 10 !! glob_sum : generic interface for global masked summation over 10 !! glob_sum : generic interface for global masked summation over 11 11 !! the interior domain for 1 or 2 2D or 3D arrays 12 !! it works only for T points 12 !! it works only for T points 13 13 !! SIGN : generic interface for SIGN to overwrite f95 behaviour 14 14 !! of intrinsinc sign function … … 29 29 30 30 INTERFACE glob_sum 31 MODULE PROCEDURE glob_sum_2d, glob_sum_3d,glob_sum_2d_a, glob_sum_3d_a 31 MODULE PROCEDURE glob_sum_1d, glob_sum_2d, glob_sum_3d, & 32 & glob_sum_2d_a, glob_sum_3d_a 32 33 END INTERFACE 33 34 34 #if defined key_nosignedzero 35 #if defined key_nosignedzero 35 36 INTERFACE SIGN 36 37 MODULE PROCEDURE SIGN_SCALAR, SIGN_ARRAY_1D, SIGN_ARRAY_2D, SIGN_ARRAY_3D, & 37 & SIGN_ARRAY_1D_A, SIGN_ARRAY_2D_A, SIGN_ARRAY_3D_A, & 38 & SIGN_ARRAY_1D_B, SIGN_ARRAY_2D_B, SIGN_ARRAY_3D_B 38 & SIGN_ARRAY_1D_A, SIGN_ARRAY_2D_A, SIGN_ARRAY_3D_A, & 39 & SIGN_ARRAY_1D_B, SIGN_ARRAY_2D_B, SIGN_ARRAY_3D_B 39 40 END INTERFACE 40 41 #endif … … 42 43 !!---------------------------------------------------------------------- 43 44 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 44 !! $Id$ 45 !! $Id$ 45 46 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 46 47 !!---------------------------------------------------------------------- 47 CONTAINS 48 CONTAINS 48 49 49 50 #if ! defined key_mpp_rep 50 51 FUNCTION glob_sum_2d( ptab ) 51 FUNCTION glob_sum_1d( ptab, kdim ) 52 !!----------------------------------------------------------------------- 53 !! *** FUNCTION glob_sum_1D *** 54 !! 55 !! ** Purpose : perform a masked sum on the inner global domain of a 1D array 56 !!----------------------------------------------------------------------- 57 INTEGER :: kdim 58 REAL(wp), INTENT(in), DIMENSION(kdim) :: ptab ! input 1D array 59 REAL(wp) :: glob_sum_1d ! global sum 60 !!----------------------------------------------------------------------- 61 ! 62 glob_sum_1d = SUM( ptab(:) ) 63 IF( lk_mpp ) CALL mpp_sum( glob_sum_1d ) 64 ! 65 END FUNCTION glob_sum_1d 66 67 FUNCTION glob_sum_2d( ptab ) 52 68 !!----------------------------------------------------------------------- 53 69 !! *** FUNCTION glob_sum_2D *** … … 63 79 ! 64 80 END FUNCTION glob_sum_2d 65 66 67 FUNCTION glob_sum_3d( ptab ) 81 82 83 FUNCTION glob_sum_3d( ptab ) 68 84 !!----------------------------------------------------------------------- 69 85 !! *** FUNCTION glob_sum_3D *** … … 86 102 87 103 88 FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 104 FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 89 105 !!----------------------------------------------------------------------- 90 106 !! *** FUNCTION glob_sum_2D _a *** … … 95 111 REAL(wp) , DIMENSION(2) :: glob_sum_2d_a ! global masked sum 96 112 !!----------------------------------------------------------------------- 97 ! 113 ! 98 114 glob_sum_2d_a(1) = SUM( ptab1(:,:)*tmask_i(:,:) ) 99 115 glob_sum_2d_a(2) = SUM( ptab2(:,:)*tmask_i(:,:) ) … … 101 117 ! 102 118 END FUNCTION glob_sum_2d_a 103 104 105 FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 119 120 121 FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 106 122 !!----------------------------------------------------------------------- 107 123 !! *** FUNCTION glob_sum_3D_a *** … … 124 140 END FUNCTION glob_sum_3d_a 125 141 126 #else 142 #else 127 143 !!---------------------------------------------------------------------- 128 144 !! 'key_mpp_rep' MPP reproducibility 129 145 !!---------------------------------------------------------------------- 130 131 FUNCTION glob_sum_2d( ptab ) 146 147 FUNCTION glob_sum_1d( ptab, kdim ) 148 !!---------------------------------------------------------------------- 149 !! *** FUNCTION glob_sum_1d *** 150 !! 151 !! ** Purpose : perform a sum in calling DDPDD routine 152 !!---------------------------------------------------------------------- 153 INTEGER , INTENT(in) :: kdim 154 REAL(wp), INTENT(in), DIMENSION(kdim) :: ptab 155 REAL(wp) :: glob_sum_1d ! global sum 156 !! 157 COMPLEX(wp):: ctmp 158 REAL(wp) :: ztmp 159 INTEGER :: ji ! dummy loop indices 160 !!----------------------------------------------------------------------- 161 ! 162 ztmp = 0.e0 163 ctmp = CMPLX( 0.e0, 0.e0, wp ) 164 DO ji = 1, kdim 165 ztmp = ptab(ji) 166 CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 167 END DO 168 IF( lk_mpp ) CALL mpp_sum( ctmp ) ! sum over the global domain 169 glob_sum_1d = REAL(ctmp,wp) 170 ! 171 END FUNCTION glob_sum_1d 172 173 FUNCTION glob_sum_2d( ptab ) 132 174 !!---------------------------------------------------------------------- 133 175 !! *** FUNCTION glob_sum_2d *** … … 154 196 glob_sum_2d = REAL(ctmp,wp) 155 197 ! 156 END FUNCTION glob_sum_2d 157 158 159 FUNCTION glob_sum_3d( ptab ) 198 END FUNCTION glob_sum_2d 199 200 201 FUNCTION glob_sum_3d( ptab ) 160 202 !!---------------------------------------------------------------------- 161 203 !! *** FUNCTION glob_sum_3d *** … … 179 221 CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 180 222 END DO 181 END DO 223 END DO 182 224 END DO 183 225 IF( lk_mpp ) CALL mpp_sum( ctmp ) ! sum over the global domain 184 226 glob_sum_3d = REAL(ctmp,wp) 185 227 ! 186 END FUNCTION glob_sum_3d 187 188 189 FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 228 END FUNCTION glob_sum_3d 229 230 231 FUNCTION glob_sum_2d_a( ptab1, ptab2 ) 190 232 !!---------------------------------------------------------------------- 191 233 !! *** FUNCTION glob_sum_2d_a *** … … 214 256 glob_sum_2d_a = REAL(ctmp,wp) 215 257 ! 216 END FUNCTION glob_sum_2d_a 217 218 219 FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 258 END FUNCTION glob_sum_2d_a 259 260 261 FUNCTION glob_sum_3d_a( ptab1, ptab2 ) 220 262 !!---------------------------------------------------------------------- 221 263 !! *** FUNCTION glob_sum_3d_a *** … … 241 283 CALL DDPDD( CMPLX( ztmp, 0.e0, wp ), ctmp ) 242 284 END DO 243 END DO 285 END DO 244 286 END DO 245 287 IF( lk_mpp ) CALL mpp_sum( ctmp ) ! sum over the global domain 246 288 glob_sum_3d_a = REAL(ctmp,wp) 247 289 ! 248 END FUNCTION glob_sum_3d_a 290 END FUNCTION glob_sum_3d_a 249 291 250 292 #endif … … 253 295 !!---------------------------------------------------------------------- 254 296 !! *** ROUTINE DDPDD *** 255 !! 297 !! 256 298 !! ** Purpose : Add a scalar element to a sum 257 !! 258 !! 259 !! ** Method : The code uses the compensated summation with doublet 299 !! 300 !! 301 !! ** Method : The code uses the compensated summation with doublet 260 302 !! (sum,error) emulated useing complex numbers. ydda is the 261 !! scalar to add to the summ yddb 262 !! 263 !! ** Action : This does only work for MPI. 303 !! scalar to add to the summ yddb 304 !! 305 !! ** Action : This does only work for MPI. 264 306 !! 265 307 !! References : Using Acurate Arithmetics to Improve Numerical 266 308 !! Reproducibility and Sability in Parallel Applications 267 !! Yun HE and Chris H. Q. DING, Journal of Supercomputing 18, 259-277, 2001 309 !! Yun HE and Chris H. Q. DING, Journal of Supercomputing 18, 259-277, 2001 268 310 !!---------------------------------------------------------------------- 269 311 COMPLEX(wp), INTENT(in ) :: ydda … … 288 330 !! 'key_nosignedzero' F90 SIGN 289 331 !!---------------------------------------------------------------------- 290 332 291 333 FUNCTION SIGN_SCALAR( pa, pb ) 292 334 !!----------------------------------------------------------------------- … … 304 346 305 347 306 FUNCTION SIGN_ARRAY_1D( pa, pb ) 348 FUNCTION SIGN_ARRAY_1D( pa, pb ) 307 349 !!----------------------------------------------------------------------- 308 350 !! *** FUNCTION SIGN_ARRAY_1D *** … … 319 361 320 362 321 FUNCTION SIGN_ARRAY_2D(pa,pb) 363 FUNCTION SIGN_ARRAY_2D(pa,pb) 322 364 !!----------------------------------------------------------------------- 323 365 !! *** FUNCTION SIGN_ARRAY_2D *** … … 333 375 END FUNCTION SIGN_ARRAY_2D 334 376 335 FUNCTION SIGN_ARRAY_3D(pa,pb) 377 FUNCTION SIGN_ARRAY_3D(pa,pb) 336 378 !!----------------------------------------------------------------------- 337 379 !! *** FUNCTION SIGN_ARRAY_3D *** … … 348 390 349 391 350 FUNCTION SIGN_ARRAY_1D_A(pa,pb) 392 FUNCTION SIGN_ARRAY_1D_A(pa,pb) 351 393 !!----------------------------------------------------------------------- 352 394 !! *** FUNCTION SIGN_ARRAY_1D_A *** … … 363 405 364 406 365 FUNCTION SIGN_ARRAY_2D_A(pa,pb) 407 FUNCTION SIGN_ARRAY_2D_A(pa,pb) 366 408 !!----------------------------------------------------------------------- 367 409 !! *** FUNCTION SIGN_ARRAY_2D_A *** … … 378 420 379 421 380 FUNCTION SIGN_ARRAY_3D_A(pa,pb) 422 FUNCTION SIGN_ARRAY_3D_A(pa,pb) 381 423 !!----------------------------------------------------------------------- 382 424 !! *** FUNCTION SIGN_ARRAY_3D_A *** … … 393 435 394 436 395 FUNCTION SIGN_ARRAY_1D_B(pa,pb) 437 FUNCTION SIGN_ARRAY_1D_B(pa,pb) 396 438 !!----------------------------------------------------------------------- 397 439 !! *** FUNCTION SIGN_ARRAY_1D_B *** … … 408 450 409 451 410 FUNCTION SIGN_ARRAY_2D_B(pa,pb) 452 FUNCTION SIGN_ARRAY_2D_B(pa,pb) 411 453 !!----------------------------------------------------------------------- 412 454 !! *** FUNCTION SIGN_ARRAY_2D_B *** … … 423 465 424 466 425 FUNCTION SIGN_ARRAY_3D_B(pa,pb) 467 FUNCTION SIGN_ARRAY_3D_B(pa,pb) 426 468 !!----------------------------------------------------------------------- 427 469 !! *** FUNCTION SIGN_ARRAY_3D_B *** -
trunk/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r3558 r3604 6 6 !! History : OPA ! 1990-10 (C. Levy, G. Madec) Original code 7 7 !! 7.0 ! 1991-11 (M. Imbard, C. Levy, G. Madec) 8 !! 7.1 ! 1993-03 (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 9 !! P. Delecluse, C. Perigaud, G. Caniaux, B. Colot, C. Maes) release 7.1 8 !! 7.1 ! 1993-03 (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 9 !! P. Delecluse, C. Perigaud, G. Caniaux, B. Colot, C. Maes) release 7.1 10 10 !! - ! 1992-06 (L.Terray) coupling implementation 11 !! - ! 1993-11 (M.A. Filiberti) IGLOO sea-ice 12 !! 8.0 ! 1996-03 (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 11 !! - ! 1993-11 (M.A. Filiberti) IGLOO sea-ice 12 !! 8.0 ! 1996-03 (M. Imbard, C. Levy, G. Madec, O. Marti, M. Guyon, A. Lazar, 13 13 !! P. Delecluse, L.Terray, M.A. Filiberti, J. Vialar, A.M. Treguier, M. Levy) release 8.0 14 14 !! 8.1 ! 1997-06 (M. Imbard, G. Madec) 15 !! 8.2 ! 1999-11 (M. Imbard, H. Goosse) LIM sea-ice model 16 !! ! 1999-12 (V. Thierry, A-M. Treguier, M. Imbard, M-A. Foujols) OPEN-MP 15 !! 8.2 ! 1999-11 (M. Imbard, H. Goosse) LIM sea-ice model 16 !! ! 1999-12 (V. Thierry, A-M. Treguier, M. Imbard, M-A. Foujols) OPEN-MP 17 17 !! ! 2000-07 (J-M Molines, M. Imbard) Open Boundary Conditions (CLIPPER) 18 18 !! NEMO 1.0 ! 2002-08 (G. Madec) F90: Free form and modules … … 25 25 !! - ! 2007-07 (J. Chanut, A. Sellar) Unstructured open boundaries (BDY) 26 26 !! 3.2 ! 2009-08 (S. Masson) open/write in the listing file in mpp 27 !! 3.3 ! 2010-05 (K. Mogensen, A. Weaver, M. Martin, D. Lea) Assimilation interface 27 !! 3.3 ! 2010-05 (K. Mogensen, A. Weaver, M. Martin, D. Lea) Assimilation interface 28 28 !! - ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 29 29 !! 3.3.1! 2011-01 (A. R. Porter, STFC Daresbury) dynamical allocation … … 34 34 !! nemo_gcm : solve ocean dynamics, tracer, biogeochemistry and/or sea-ice 35 35 !! nemo_init : initialization of the NEMO system 36 !! nemo_ctl : initialisation of the contol print 36 !! nemo_ctl : initialisation of the contol print 37 37 !! nemo_closefile : close remaining open files 38 38 !! nemo_alloc : dynamical allocation … … 56 56 USE phycst ! physical constant (par_cst routine) 57 57 USE trdmod ! momentum/tracers trends (trd_mod_init routine) 58 USE asm trj! writing out state trajectory58 USE asmbkg ! writing out state trajectory 59 59 USE diaptr ! poleward transports (dia_ptr_init routine) 60 60 USE diadct ! sections transports (dia_dct_init routine) … … 76 76 USE mod_ioclient 77 77 #endif 78 USE tamtrj ! Output trajectory, needed for TAM 78 79 79 80 IMPLICIT NONE … … 82 83 PUBLIC nemo_gcm ! called by model.F90 83 84 PUBLIC nemo_init ! needed by AGRIF 85 PUBLIC nemo_alloc ! needed by TAM 84 86 85 87 CHARACTER(lc) :: cform_aaa="( /, 'AAAAAAAA', / ) " ! flag for output listing … … 96 98 !! *** ROUTINE nemo_gcm *** 97 99 !! 98 !! ** Purpose : NEMO solves the primitive equations on an orthogonal 100 !! ** Purpose : NEMO solves the primitive equations on an orthogonal 99 101 !! curvilinear mesh on the sphere. 100 102 !! … … 140 142 IF( lk_asminc ) THEN 141 143 IF( ln_bkgwri ) CALL asm_bkg_wri( nit000 - 1 ) ! Output background fields 142 IF( ln_trjwri ) CALL asm_trj_wri( nit000 - 1 ) ! Output trajectory fields143 144 IF( ln_asmdin ) THEN ! Direct initialization 144 145 IF( ln_trainc ) CALL tra_asm_inc( nit000 - 1 ) ! Tracers 145 IF( ln_dyninc ) THEN 146 CALL dyn_asm_inc( nit000 - 1 ) ! Dynamics 147 IF ( ln_asmdin ) CALL ssh_wzv ( nit000 - 1 ) ! update vertical velocity 148 ENDIF 146 IF( ln_dyninc ) CALL dyn_asm_inc( nit000 - 1 ) ! Dynamics 149 147 IF( ln_sshinc ) CALL ssh_asm_inc( nit000 - 1 ) ! SSH 150 148 ENDIF 151 149 ENDIF 152 150 153 151 DO WHILE ( istp <= nitend .AND. nstop == 0 ) 154 152 #if defined key_agrif … … 163 161 164 162 IF( lk_diaobs ) CALL dia_obs_wri 165 163 166 164 ! !------------------------! 167 165 ! !== finalize the run ==! … … 171 169 IF( nstop /= 0 .AND. lwp ) THEN ! error print 172 170 WRITE(numout,cform_err) 173 WRITE(numout,*) nstop, ' error have been found' 171 WRITE(numout,*) nstop, ' error have been found' 174 172 ENDIF 175 173 ! … … 240 238 lwp = (narea == 1) .OR. ln_ctl ! control of all listing output print 241 239 242 ! If dimensions of processor grid weren't specified in the namelist file 240 ! If dimensions of processor grid weren't specified in the namelist file 243 241 ! then we calculate them here now that we have our communicator size 244 242 IF( (jpni < 1) .OR. (jpnj < 1) )THEN … … 258 256 jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci ! first dim. 259 257 #if defined key_nemocice_decomp 260 jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. 258 jpj = ( jpjglo+1-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. 261 259 #else 262 260 jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ! second dim. … … 280 278 WRITE(numout,*) 281 279 WRITE(numout,*) 282 DO ji = 1, SIZE(cltxt) 280 DO ji = 1, SIZE(cltxt) 283 281 IF( TRIM(cltxt(ji)) /= '' ) WRITE(numout,*) cltxt(ji) ! control print of mynode 284 282 END DO … … 287 285 ENDIF 288 286 289 ! Now we know the dimensions of the grid and numout has been set we can 287 ! Now we know the dimensions of the grid and numout has been set we can 290 288 ! allocate arrays 291 289 CALL nemo_alloc() … … 314 312 IF( ln_ctl ) CALL prt_ctl_init ! Print control 315 313 316 IF( lk_obc ) CALL obc_init ! Open boundaries 314 IF( lk_obc ) CALL obc_init ! Open boundaries 317 315 IF( lk_bdy ) CALL bdy_init ! Open boundaries initialisation 318 316 IF( lk_bdy ) CALL bdy_dta_init ! Open boundaries initialisation of external data arrays … … 326 324 327 325 ! ! Ocean physics 328 CALL sbc_init ! Forcings : surface module 326 CALL sbc_init ! Forcings : surface module 329 327 ! ! Vertical physics 330 328 CALL zdf_init ! namelist read … … 335 333 IF( lk_zdfkpp ) CALL zdf_kpp_init ! KPP closure scheme 336 334 IF( lk_zdftmx ) CALL zdf_tmx_init ! tidal vertical mixing 337 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) & 335 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) & 338 336 & CALL zdf_ddm_init ! double diffusive mixing 339 337 ! ! Lateral physics … … 358 356 CALL dyn_zdf_init ! vertical diffusion 359 357 CALL dyn_spg_init ! surface pressure gradient 360 358 361 359 ! ! Misc. options 362 360 IF( nn_cla == 1 ) CALL cla_init ! Cross Land Advection 363 361 364 362 #if defined key_top 365 363 ! ! Passive tracers … … 377 375 CALL dia_obs_init ! Initialize observational data 378 376 CALL dia_obs( nit000 - 1 ) ! Observation operator for restart 379 ENDIF 377 ENDIF 380 378 ! ! Assimilation increments 381 379 IF( lk_asminc ) CALL asm_inc_init ! Initialize assimilation increments 382 380 IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 381 CALL tam_trj_init ! Trajectory handling 383 382 ! 384 383 END SUBROUTINE nemo_init … … 389 388 !! *** ROUTINE nemo_ctl *** 390 389 !! 391 !! ** Purpose : control print setting 390 !! ** Purpose : control print setting 392 391 !! 393 392 !! ** Method : - print namctl information and check some consistencies … … 436 435 ! ! indices used for the SUM control 437 436 IF( nictls+nictle+njctls+njctle == 0 ) THEN ! print control done over the default area 438 lsp_area = .FALSE. 437 lsp_area = .FALSE. 439 438 ELSE ! print control done over a specific area 440 439 lsp_area = .TRUE. … … 458 457 ENDIF 459 458 ! 460 IF( nbench == 1 ) THEN ! Benchmark 459 IF( nbench == 1 ) THEN ! Benchmark 461 460 SELECT CASE ( cp_cfg ) 462 461 CASE ( 'gyre' ) ; CALL ctl_warn( ' The Benchmark is activated ' ) … … 521 520 !!---------------------------------------------------------------------- 522 521 ! 523 ierr = oce_alloc () ! ocean 522 ierr = oce_alloc () ! ocean 524 523 ierr = ierr + dia_wri_alloc () 525 524 ierr = ierr + dom_oce_alloc () ! ocean domain … … 541 540 !! *** ROUTINE nemo_partition *** 542 541 !! 543 !! ** Purpose : 542 !! ** Purpose : 544 543 !! 545 544 !! ** Method : … … 589 588 !! 590 589 !! ** Purpose : return the prime factors of n. 591 !! knfax factors are returned in array kfax which is of 590 !! knfax factors are returned in array kfax which is of 592 591 !! maximum dimension kmaxfax. 593 592 !! ** Method : … … 657 656 !!===================================================================== 658 657 !!---------------------------------------------------------------------- 659 !! 658 !! 660 659 !! ** Purpose : Initialization of the northern neighbours lists. 661 660 !!---------------------------------------------------------------------- 662 !! 1.0 ! 2011-10 (A. C. Coward, NOCS & J. Donners, PRACE) 661 !! 1.0 ! 2011-10 (A. C. Coward, NOCS & J. Donners, PRACE) 663 662 !!---------------------------------------------------------------------- 664 663 … … 742 741 jtyp = 5 743 742 lrankset = .FALSE. 744 znnbrs = narea 743 znnbrs = narea 745 744 CALL lbc_lnk( znnbrs, 'J', 1. ) ! first ice U-V point 746 745 … … 755 754 ENDIF 756 755 757 znnbrs = narea 756 znnbrs = narea 758 757 CALL lbc_lnk( znnbrs, 'K', 1. ) ! second ice U-V point 759 758 … … 778 777 END DO 779 778 ! 780 ! For northern row areas, set l_north_nogather so that all subsequent exchanges 779 ! For northern row areas, set l_north_nogather so that all subsequent exchanges 781 780 ! can use peer to peer communications at the north fold 782 781 ! -
trunk/NEMOGCM/NEMO/OPA_SRC/step.F90
r3294 r3604 29 29 !! stp : OPA system time-stepping 30 30 !!---------------------------------------------------------------------- 31 USE step_oce ! time stepping definition modules 31 USE step_oce ! time stepping definition modules 32 32 #if defined key_top 33 33 USE trcstp ! passive tracer time-stepping (trc_stp routine) … … 61 61 !!---------------------------------------------------------------------- 62 62 !! *** ROUTINE stp *** 63 !! 63 !! 64 64 !! ** Purpose : - Time stepping of OPA (momentum and active tracer eqs.) 65 65 !! - Time stepping of LIM (dynamic and thermodynamic eqs.) 66 66 !! - Tme stepping of TRC (passive tracer eqs.) 67 !! 68 !! ** Method : -1- Update forcings and data 69 !! -2- Update ocean physics 70 !! -3- Compute the t and s trends 71 !! -4- Update t and s 67 !! 68 !! ** Method : -1- Update forcings and data 69 !! -2- Update ocean physics 70 !! -3- Compute the t and s trends 71 !! -4- Update t and s 72 72 !! -5- Compute the momentum trends 73 73 !! -6- Update the horizontal velocity … … 85 85 # if defined key_iomput 86 86 IF( Agrif_Nbstepint() == 0 ) CALL iom_swap 87 # endif 88 #endif 87 # endif 88 #endif 89 89 indic = 0 ! reset to no error condition 90 90 IF( kstp /= nit000 ) CALL day( kstp ) ! Calendar (day was already called at nit000 in day_init) … … 111 111 CALL bn2( tsn, rn2 ) ! now Brunt-Vaisala frequency 112 112 ! 113 ! VERTICAL PHYSICS 113 ! VERTICAL PHYSICS 114 114 CALL zdf_bfr( kstp ) ! bottom friction 115 115 116 116 ! ! Vertical eddy viscosity and diffusivity coefficients 117 117 IF( lk_zdfric ) CALL zdf_ric( kstp ) ! Richardson number dependent Kz … … 133 133 IF( lk_zdfddm .AND. .NOT. lk_zdfkpp ) & 134 134 & CALL zdf_ddm( kstp ) ! double diffusive mixing 135 135 136 136 CALL zdf_mxl( kstp ) ! mixed layer depth 137 137 … … 140 140 IF( lrst_oce .AND. lk_zdfgls ) CALL gls_rst( kstp, 'WRITE' ) 141 141 ! 142 ! LATERAL PHYSICS 142 ! LATERAL PHYSICS 143 143 ! 144 144 IF( lk_ldfslp ) THEN ! slope of lateral mixing … … 179 179 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 180 180 tsa(:,:,:,:) = 0.e0 ! set tracer trends to zero 181 ! Saving non-linear trajectory at restart state 182 ! May not be exact for sbc and zdf parameters 183 IF( ( ln_trjhand ) .AND. ( kstp == nit000 ) ) CALL tam_trj_wri( kstp - 1 ) 181 184 182 185 IF( ln_asmiau .AND. & … … 201 204 IF( ln_zps ) CALL zps_hde( kstp, jpts, tsa, gtsu, gtsv, & ! zps: time filtered hor. derivative 202 205 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 203 206 204 207 ELSE ! centered hpg (eos then time stepping) 205 208 CALL eos ( tsn, rhd, rhop ) ! now in situ density for hpg computation … … 208 211 IF( ln_zdfnpc ) CALL tra_npc( kstp ) ! update after fields by non-penetrative convection 209 212 CALL tra_nxt( kstp ) ! tracer fields at next time step 210 ENDIF 213 ENDIF 211 214 212 215 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 218 221 IF( ln_asmiau .AND. & 219 222 & ln_dyninc ) CALL dyn_asm_inc( kstp ) ! apply dynamics assimilation increment 223 IF( ln_bkgwri ) CALL asm_bkg_wri( kstp ) ! output background fields 220 224 IF( ln_neptsimp ) CALL dyn_nept_cor( kstp ) ! subtract Neptune velocities (simplified) 221 225 CALL dyn_adv( kstp ) ! advection (vector or flux form) … … 227 231 #endif 228 232 CALL dyn_hpg( kstp ) ! horizontal gradient of Hydrostatic pressure 229 CALL dyn_bfr( kstp ) ! bottom friction 233 CALL dyn_bfr( kstp ) ! bottom friction 230 234 CALL dyn_zdf( kstp ) ! vertical diffusion 231 235 CALL dyn_spg( kstp, indic ) ! surface pressure gradient … … 252 256 ! Trends (ua, va, tsa used as workspace) 253 257 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 254 IF( nstop == 0 ) THEN 255 IF( lk_trddyn ) CALL trd_dwr( kstp ) ! trends: dynamics 258 IF( nstop == 0 ) THEN 259 IF( lk_trddyn ) CALL trd_dwr( kstp ) ! trends: dynamics 256 260 IF( lk_trdtra ) CALL trd_twr( kstp ) ! trends: active tracers 257 IF( lk_trdmld ) CALL trd_mld( kstp ) ! trends: Mixed-layer 261 IF( lk_trdmld ) CALL trd_mld( kstp ) ! trends: Mixed-layer 258 262 IF( lk_trdvor ) CALL trd_vor( kstp ) ! trends: vorticity budget 259 263 ENDIF 264 265 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 266 ! Trajectory for TAM 267 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 268 269 IF( ln_trjhand ) CALL tam_trj_wri( kstp ) ! Output trajectory fields 260 270 261 271 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -
trunk/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r3294 r3604 7 7 !!---------------------------------------------------------------------- 8 8 USE oce ! ocean dynamics and tracers variables 9 USE dom_oce ! ocean space and time domain variables 9 USE dom_oce ! ocean space and time domain variables 10 10 USE zdf_oce ! ocean vertical physics variables 11 11 USE ldftra_oce ! ocean tracer - trends … … 79 79 USE trdmld_rst ! restart for mixed-layer trends 80 80 USE trdmod_oce ! ocean momentum/tracers trends 81 USE trdmod ! momentum/tracers trends 81 USE trdmod ! momentum/tracers trends 82 82 USE trdvor ! vorticity budget (trd_vor routine) 83 83 USE diaptr ! poleward transports (dia_ptr routine) … … 93 93 USE asminc ! assimilation increments (tra_asm_inc routine) 94 94 ! (dyn_asm_inc routine) 95 95 USE asmbkg 96 96 USE stpctl ! time stepping control (stp_ctl routine) 97 97 USE restart ! ocean restart (rst_wri routine) … … 100 100 USE diaobs ! Observation operator 101 101 102 USE timing ! Timing 102 USE timing ! Timing 103 USE tamtrj ! Needed by TAM 103 104 104 105 #if defined key_agrif
Note: See TracChangeset
for help on using the changeset viewer.