- Timestamp:
- 2019-10-29T18:14:49+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL/EXPREF/context_nemo.xml
r9930 r11831 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL/EXPREF/namelist_cfg
r10075 r11831 275 275 !! namdiu Cool skin and warm layer models (default: OFF) 276 276 !! namdiu Cool skin and warm layer models (default: OFF) 277 !! namflo float parameters ( "key_float")278 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")279 !! nam dct transports through some sections ("key_diadct")277 !! namflo float parameters (default: OFF) 278 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 279 !! nam_diadct transports through some sections (default: OFF) 280 280 !! nam_diatmb Top Middle Bottom Output (default: OFF) 281 281 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL/MY_SRC/diawri.F90
r10425 r11831 531 531 !! define all the NETCDF files and fields 532 532 !! At each time step call histdef to compute the mean if ncessary 533 !! Each n write time step, output the instantaneous or mean fields533 !! Each nn_write time step, output the instantaneous or mean fields 534 534 !!---------------------------------------------------------------------- 535 535 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 547 547 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d ! 3D workspace 548 548 !!---------------------------------------------------------------------- 549 !550 IF( ln_timing ) CALL timing_start('dia_wri')551 549 ! 552 550 IF( ninist == 1 ) THEN !== Output the initial state and forcings ==! … … 555 553 ENDIF 556 554 ! 555 IF( nn_write == -1 ) RETURN ! we will never do any output 556 ! 557 IF( ln_timing ) CALL timing_start('dia_wri') 558 ! 557 559 ! 0. Initialisation 558 560 ! ----------------- … … 564 566 clop = "x" ! no use of the mask value (require less cpu time and otherwise the model crashes) 565 567 #if defined key_diainstant 566 zsto = n write * rdt568 zsto = nn_write * rdt 567 569 clop = "inst("//TRIM(clop)//")" 568 570 #else … … 570 572 clop = "ave("//TRIM(clop)//")" 571 573 #endif 572 zout = n write * rdt574 zout = nn_write * rdt 573 575 zmax = ( nitend - nit000 + 1 ) * rdt 574 576 … … 601 603 ! WRITE root name in date.file for use by postpro 602 604 IF(lwp) THEN 603 CALL dia_nam( clhstnam, n write,' ' )605 CALL dia_nam( clhstnam, nn_write,' ' ) 604 606 CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 605 607 WRITE(inum,*) clhstnam … … 609 611 ! Define the T grid FILE ( nid_T ) 610 612 611 CALL dia_nam( clhstnam, n write, 'grid_T' )613 CALL dia_nam( clhstnam, nn_write, 'grid_T' ) 612 614 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam ! filename 613 615 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit … … 645 647 ! Define the U grid FILE ( nid_U ) 646 648 647 CALL dia_nam( clhstnam, n write, 'grid_U' )649 CALL dia_nam( clhstnam, nn_write, 'grid_U' ) 648 650 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam ! filename 649 651 CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu, & ! Horizontal grid: glamu and gphiu … … 658 660 ! Define the V grid FILE ( nid_V ) 659 661 660 CALL dia_nam( clhstnam, n write, 'grid_V' ) ! filename662 CALL dia_nam( clhstnam, nn_write, 'grid_V' ) ! filename 661 663 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam 662 664 CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv, & ! Horizontal grid: glamv and gphiv … … 671 673 ! Define the W grid FILE ( nid_W ) 672 674 673 CALL dia_nam( clhstnam, n write, 'grid_W' ) ! filename675 CALL dia_nam( clhstnam, nn_write, 'grid_W' ) ! filename 674 676 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam 675 677 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit … … 762 764 ENDIF 763 765 764 IF( .NOT. ln_cpl) THEN766 IF( ln_ssr ) THEN 765 767 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 766 768 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 770 772 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 771 773 ENDIF 772 773 IF( ln_cpl .AND. nn_ice <= 1 ) THEN 774 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 775 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 776 CALL histdef( nid_T, "sowafldp", "Surface Water Flux: Damping" , "Kg/m2/s", & ! erp 777 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 778 CALL histdef( nid_T, "sosafldp", "Surface salt flux: Damping" , "Kg/m2/s", & ! erp * sn 779 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 780 ENDIF 781 774 782 775 clmx ="l_max(only(x))" ! max index on a period 783 776 ! CALL histdef( nid_T, "sobowlin", "Bowl Index" , "W-point", & ! bowl INDEX … … 855 848 ! donne le nombre d'elements, et ndex la liste des indices a sortir 856 849 857 IF( lwp .AND. MOD( itmod, n write ) == 0 ) THEN850 IF( lwp .AND. MOD( itmod, nn_write ) == 0 ) THEN 858 851 WRITE(numout,*) 'dia_wri : write model outputs in NetCDF files at ', kt, 'time-step' 859 852 WRITE(numout,*) '~~~~~~ ' … … 919 912 ENDIF 920 913 921 IF( .NOT. ln_cpl) THEN914 IF( ln_ssr ) THEN 922 915 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 923 916 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 924 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 925 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 926 ENDIF 927 IF( ln_cpl .AND. nn_ice <= 1 ) THEN 928 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 929 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 930 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 917 zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 931 918 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 932 919 ENDIF -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL/MY_SRC/domvvl.F90
r10425 r11831 994 994 REWIND( numnam_ref ) ! Namelist nam_vvl in reference namelist : 995 995 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 996 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' , lwp)996 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' ) 997 997 REWIND( numnam_cfg ) ! Namelist nam_vvl in configuration namelist : Parameters of the run 998 998 READ ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 999 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' , lwp)999 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' ) 1000 1000 IF(lwm) WRITE ( numond, nam_vvl ) 1001 1001 ! -
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/tests/CANAL/MY_SRC/usrdef_nam.F90
r10074 r11831 58 58 CONTAINS 59 59 60 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )60 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 61 61 !!---------------------------------------------------------------------- 62 62 !! *** ROUTINE dom_nam *** … … 70 70 !! ** input : - namusr_def namelist found in namelist_cfg 71 71 !!---------------------------------------------------------------------- 72 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information73 72 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 74 73 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 76 75 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 77 76 ! 78 INTEGER :: ios , ii! Local integer79 REAL(wp):: zh ! Local scalars77 INTEGER :: ios ! Local integer 78 REAL(wp):: zh ! Local scalars 80 79 !! 81 80 NAMELIST/namusr_def/ rn_domszx, rn_domszy, rn_domszz, rn_dx, rn_dy, rn_dz, rn_0xratio, rn_0yratio & … … 85 84 !!---------------------------------------------------------------------- 86 85 ! 87 ii = 188 !89 86 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 90 87 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 91 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', .TRUE. ) 88 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', cdtxt ) 89 ! 90 IF(lwm) WRITE( numond, namusr_def ) 92 91 ! 93 92 #if defined key_agrif … … 103 102 #endif 104 103 ! 105 WRITE( ldnam(:), namusr_def )104 IF(lwm) WRITE( numond, namusr_def ) 106 105 ! 107 106 cd_cfg = 'EW_CANAL' ! name & resolution (not used) … … 120 119 ! 121 120 zh = (kpk-1)*rn_dz 122 ! ! control print123 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1124 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1125 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1126 WRITE(ldtxt(ii),*) ' Namelist namusr_def : EW_CANAL test case' ; ii = ii + 1127 WRITE(ldtxt(ii),*) ' horizontal domain size-x rn_domszx = ', rn_domszx, ' km' ; ii = ii + 1128 WRITE(ldtxt(ii),*) ' horizontal domain size-y rn_domszy = ', rn_domszy, ' km' ; ii = ii + 1129 WRITE(ldtxt(ii),*) ' vertical domain size-z rn_domszz = ', rn_domszz, ' m' ; ii = ii + 1130 WRITE(ldtxt(ii),*) ' horizontal x-resolution rn_dx = ', rn_dx, ' km' ; ii = ii + 1131 WRITE(ldtxt(ii),*) ' horizontal y-resolution rn_dy = ', rn_dy, ' km' ; ii = ii + 1132 WRITE(ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' m' ; ii = ii + 1133 WRITE(ldtxt(ii),*) ' x-domain ratio of the 0 rn_0xratio = ', rn_0xratio ; ii = ii + 1134 WRITE(ldtxt(ii),*) ' y-domain ratio of the 0 rn_0yratio = ', rn_0yratio ; ii = ii + 1135 WRITE(ldtxt(ii),*) ' H [m] : ', zh ; ii = ii + 1136 WRITE(ldtxt(ii),*) ' F computation nn_fcase = ', nn_fcase ; ii = ii + 1137 WRITE(ldtxt(ii),*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 ; ii = ii + 1138 WRITE(ldtxt(ii),*) ' 10m wind speed rn_u10 = ', rn_u10, ' m/s' ; ii = ii + 1139 WRITE(ldtxt(ii),*) ' wind latitudinal extension rn_windszy = ', rn_windszy, ' km' ; ii = ii + 1140 WRITE(ldtxt(ii),*) ' wind longitudinal extension rn_windszx = ', rn_windszx, ' km' ; ii = ii + 1141 WRITE(ldtxt(ii),*) ' Uoce multiplicative factor rn_uofac = ', rn_uofac ; ii = ii + 1142 WRITE(ldtxt(ii),*) ' initial Canal max current rn_vtxmax = ', rn_vtxmax, ' m/s' ; ii = ii + 1143 WRITE(ldtxt(ii),*) ' initial zonal current rn_uzonal = ', rn_uzonal, ' m/s' ; ii = ii + 1144 WRITE(ldtxt(ii),*) ' Jet latitudinal extension rn_ujetszy = ', rn_ujetszy, ' km' ; ii = ii + 1145 WRITE(ldtxt(ii),*) ' Jet longitudinal extension rn_ujetszx = ', rn_ujetszx, ' km' ; ii = ii + 1146 WRITE(ldtxt(ii),*) ' bottom definition (0:flat) nn_botcase = ', nn_botcase ; ii = ii + 1147 WRITE(ldtxt(ii),*) ' initial condition case nn_initcase= ', nn_initcase ; ii = ii + 1148 WRITE(ldtxt(ii),*) ' (0:rest, 1:zonal current, 10:shear)' ; ii = ii + 1149 WRITE(ldtxt(ii),*) ' add random noise on initial ssh ln_sshnoise= ', ln_sshnoise ; ii = ii + 1150 WRITE(ldtxt(ii),*) ' Gaussian lambda parameter rn_lambda = ', rn_lambda ; ii = ii + 1151 !152 121 ! ! Set the lateral boundary condition of the global domain 153 122 kperio = 1 ! EW_CANAL configuration : closed basin 154 ! 155 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 156 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 157 WRITE(ldtxt(ii),*) ' EW_CANAL : closed basin jperio = ', kperio ; ii = ii + 1 123 ! ! control print 124 IF(lwp) THEN 125 WRITE(numout,*) ' ' 126 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 127 WRITE(numout,*) '~~~~~~~~~~~ ' 128 WRITE(numout,*) ' Namelist namusr_def : EW_CANAL test case' 129 WRITE(numout,*) ' horizontal domain size-x rn_domszx = ', rn_domszx, ' km' 130 WRITE(numout,*) ' horizontal domain size-y rn_domszy = ', rn_domszy, ' km' 131 WRITE(numout,*) ' vertical domain size-z rn_domszz = ', rn_domszz, ' m' 132 WRITE(numout,*) ' horizontal x-resolution rn_dx = ', rn_dx, ' km' 133 WRITE(numout,*) ' horizontal y-resolution rn_dy = ', rn_dy, ' km' 134 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' m' 135 WRITE(numout,*) ' x-domain ratio of the 0 rn_0xratio = ', rn_0xratio 136 WRITE(numout,*) ' y-domain ratio of the 0 rn_0yratio = ', rn_0yratio 137 WRITE(numout,*) ' H [m] : ', zh 138 WRITE(numout,*) ' F computation nn_fcase = ', nn_fcase 139 WRITE(numout,*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 140 WRITE(numout,*) ' 10m wind speed rn_u10 = ', rn_u10, ' m/s' 141 WRITE(numout,*) ' wind latitudinal extension rn_windszy = ', rn_windszy, ' km' 142 WRITE(numout,*) ' wind longitudinal extension rn_windszx = ', rn_windszx, ' km' 143 WRITE(numout,*) ' Uoce multiplicative factor rn_uofac = ', rn_uofac 144 WRITE(numout,*) ' initial Canal max current rn_vtxmax = ', rn_vtxmax, ' m/s' 145 WRITE(numout,*) ' initial zonal current rn_uzonal = ', rn_uzonal, ' m/s' 146 WRITE(numout,*) ' Jet latitudinal extension rn_ujetszy = ', rn_ujetszy, ' km' 147 WRITE(numout,*) ' Jet longitudinal extension rn_ujetszx = ', rn_ujetszx, ' km' 148 WRITE(numout,*) ' bottom definition (0:flat) nn_botcase = ', nn_botcase 149 WRITE(numout,*) ' initial condition case nn_initcase= ', nn_initcase 150 WRITE(numout,*) ' (0:rest, 1:zonal current, 10:shear)' 151 WRITE(numout,*) ' add random noise on initial ssh ln_sshnoise= ', ln_sshnoise 152 WRITE(numout,*) ' Gaussian lambda parameter rn_lambda = ', rn_lambda 153 WRITE(numout,*) ' ' 154 WRITE(numout,*) ' Lateral boundary condition of the global domain' 155 WRITE(numout,*) ' EW_CANAL : closed basin jperio = ', kperio 156 ENDIF 158 157 ! 159 158 END SUBROUTINE usr_def_nam
Note: See TracChangeset
for help on using the changeset viewer.