Changeset 1970
- Timestamp:
- 2010-06-25T16:58:03+02:00 (14 years ago)
- Location:
- branches/DEV_r1784_mid_year_merge_2010
- Files:
-
- 41 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1784_mid_year_merge_2010/CONFIG/ORCA2_LIM/IGCM00/COMP/opa9.driver
r1953 r1970 49 49 (( DaysSinceJC = $( IGCM_date_DaysSinceJC ${DateBegin} ) + 1 )) 50 50 51 # Definition from opa9.card of List_jobsbc used to do to interannual and climatological runs51 # Definition from opa9.card of List_jobsbc and List_runsbc used to do to interannual and climatological runs 52 52 IGCM_card_DefineArrayFromOption ${SUBMIT_DIR}/COMP/opa9.card Interannual List_jobsbc 53 53 set -A ListFormulationJobsbc -- \${opa9_Interannual_Listjobsc${opa9_Interannual_List_jobsbc}[*]} … … 71 71 typeset file 72 72 73 (( final_year =${InitYear} + ${PeriodLengthInYears} - 1 )) 73 (( PeriodCumulPeriod = ${CumulPeriod} - 1 )) 74 (( PeriodInitYear =${InitYear} + ${PeriodCumulPeriod} * ${PeriodLengthInYears} )) 75 (( PeriodFinalYear =${InitYear} + ${PeriodLengthInYears}*${CumulPeriod} - 1 )) 76 74 77 NbFileInter=${#opa9_Interannual_List_jobsbc[*]} 75 76 78 (( NbFileInter_tot=${#opa9_Interannual_List_jobsbc[*]} * ${PeriodLengthInYears} )) 77 78 79 (( i = 0 )) 79 80 80 while [ ${year} -le ${ final_year} ] ; do #copy in ONCE of ALL necessary files for all PeriodLength81 while [ ${year} -le ${PeriodFinalYear} ] ; do #copy in ONCE of ALL necessary files for all PeriodLength 81 82 82 83 while [ $i -lt ${NbFileInter} ] ; do 83 84 84 85 eval file=${opa9_Interannual_List_jobsbc[$i]} 85 # download (year-1) if it is first year and first month of run 86 if [ X${year} = X${InitYear} ] ; then 87 if [ X${Period} = X1 ] ; then 86 if [ X${year} = X${PeriodInitYear} ] ; then 88 87 if [ ${month} -eq 01 ] ; then 89 # if year-1 does not exist create a dummy file (NEMO will use same year)88 # if year-1 does not exist we copy year in (year-1) 90 89 eval jobsbc_file_ym1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year - 1 )).nc 91 90 if [ ! -f ${jobsbc_file_ym1} ] ; then … … 97 96 fi 98 97 99 98 IGCM_sys_Get ${jobsbc_file_ym1} ${runsbc_file_ym1} 100 99 fi 101 fi102 100 fi 103 101 … … 111 109 112 110 # download (year+1) if it is last year of run 113 if [ X${year} = X${ final_year} ] ; then111 if [ X${year} = X${PeriodFinalYear} ] ; then 114 112 115 113 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc … … 118 116 if [ ! -f ${runsbc_file_yp1} ] ; then 119 117 120 # if year+1 does not exist create a dummy file (NEMO will use same year)118 # if year+1 does not exist we copy year in (year+1) 121 119 if [ ! -f ${jobsbc_file_yp1} ] ; then 122 eval jobsbc_file_y m1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc123 eval runsbc_file_y m1=${file}_noy.nc120 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_${year}.nc 121 eval runsbc_file_yp1=${file}_noy.nc 124 122 else 125 eval jobsbc_file_y m1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc126 eval runsbc_file_y m1=${file}_y$(( year + 1 )).nc123 eval jobsbc_file_yp1=${R_BC}/OCE/${config_UserChoices_TagName}/${opa9_UserChoices_OPA_version}/${file}_$(( year + 1 )).nc 124 eval runsbc_file_yp1=${file}_y$(( year + 1 )).nc 127 125 fi 128 126 IGCM_sys_Get ${jobsbc_file_yp1} ${runsbc_file_yp1} … … 138 136 (( i = 0 )) 139 137 done 138 140 139 # End interannual 141 140 elif [ X${opa9_UserChoices_Interannual_Run} = Xn ] ; then -
branches/DEV_r1784_mid_year_merge_2010/CONFIG/ORCA2_LIM_PISCES/EXP00/iodef.xml
r1772 r1970 245 245 <field id="PFeN" description="Primary production of nano iron" unit="mol-Fe/m3/s" axis_ref="deptht" /> 246 246 <field id="PFeD" description="Primary production of diatoms iron" unit="mol-Fe/m3/s" axis_ref="deptht" /> 247 <field id="Pcal" description="Calcite production" unit="mol-C/m3/s" axis_ref="deptht" /> 248 <field id="Dcal" description="Calcite dissolution" unit="mol-C/m3/s" axis_ref="deptht" /> 249 <field id="Graz" description="Grazing by microzoo" unit="mol-C/m3/s" axis_ref="deptht" /> 250 <field id="Graz2" description="Grazing by mesozoo" unit="mol-C/m3/s" axis_ref="deptht" /> 251 <field id="Nfix" description="Nitrogen fixation" unit="mol-N/m2/s" axis_ref="deptht" /> 252 <field id="ExpPOC" description="POC export" unit="mol-C/m2/s" axis_ref="deptht" /> 253 <field id="ExpGOC" description="GOC export" unit="mol-C/m2/s" axis_ref="deptht" /> 254 <field id="ExpFe1" description="Nano iron export" unit="mol-Fe/m2/s" axis_ref="deptht" /> 255 <field id="ExpFe2" description="Diatoms iron export" unit="mol-Fe/m2/s" axis_ref="deptht" /> 256 <field id="ExpSi" description="Silicate export" unit="mol-Si/m2/s" axis_ref="deptht" /> 257 <field id="Expcal" description="Calcite export" unit="mol-C/m2/s" axis_ref="deptht" /> 258 <field id="Cflx" description="DIC flux" unit="mol-C/m2/s" /> 247 <field id="PCAL" description="Calcite production" unit="mol-C/m3/s" axis_ref="deptht" /> 248 <field id="DCAL" description="Calcite dissolution" unit="mol-C/m3/s" axis_ref="deptht" /> 249 <field id="GRAZ" description="Grazing by zooplankton" unit="mol-C/m3/s" axis_ref="deptht" /> 250 <field id="Nfix" description="Nitrogen fixation at surface" unit="mol-N/m2/s" /> 251 <field id="EPC100" description="Export of carbon particles at 100 m" unit="mol-C/m2/s" /> 252 <field id="EPFE100" description="Export of biogenic iron at 100 m" unit="mol-Fe/m2/s" /> 253 <field id="EPSI100" description="Export of Silicate at 100 m" unit="mol-Si/m2/s" /> 254 <field id="EPCAL100" description="Export of Calcite at 100 m" unit="mol-C/m2/s" /> 255 <field id="Cflx" description="DIC flux" unit="mol-C/m2/s" /> 259 256 <field id="Oflx" description="Oxygen flux" unit="mol-C/m2/s" /> 260 257 <field id="Kg" description="Gas transfer" unit="mol-C/m2/s/uatm" /> … … 480 477 <field ref="PFeN" /> 481 478 <field ref="PFeD" /> 482 <field ref="Pcal" /> 483 <field ref="Dcal" /> 484 <field ref="Graz" /> 485 <field ref="Graz2" /> 479 <field ref="PCAL" /> 480 <field ref="DCAL" /> 481 <field ref="GRAZ" /> 482 <field ref="EPC100" /> 483 <field ref="EPFE100" /> 484 <field ref="EPSI100" /> 485 <field ref="EPCAL100" /> 486 486 <field ref="Cflx" /> 487 <field ref="ExpPOC" />488 <field ref="ExpGOC" />489 <field ref="ExpFe1" />490 <field ref="ExpFe2" />491 <field ref="ExpSi" />492 <field ref="Expcal" />493 487 <field ref="Oflx" /> 494 488 <field ref="Kg" /> -
branches/DEV_r1784_mid_year_merge_2010/CONFIG/ORCA2_OFF_PISCES/EXP00/iodef.xml
r1772 r1970 58 58 <field id="PFeN" description="Primary production of nano iron" unit="mol-Fe/m3/s" axis_ref="deptht" /> 59 59 <field id="PFeD" description="Primary production of diatoms iron" unit="mol-Fe/m3/s" axis_ref="deptht" /> 60 <field id="Pcal" description="Calcite production" unit="mol-C/m3/s" axis_ref="deptht" /> 61 <field id="Dcal" description="Calcite dissolution" unit="mol-C/m3/s" axis_ref="deptht" /> 62 <field id="Graz" description="Grazing by microzoo" unit="mol-C/m3/s" axis_ref="deptht" /> 63 <field id="Graz2" description="Grazing by mesozoo" unit="mol-C/m3/s" axis_ref="deptht" /> 64 <field id="Nfix" description="Nitrogen fixation" unit="mol-N/m2/s" axis_ref="deptht" /> 65 <field id="ExpPOC" description="POC export" unit="mol-C/m2/s" axis_ref="deptht" /> 66 <field id="ExpGOC" description="GOC export" unit="mol-C/m2/s" axis_ref="deptht" /> 67 <field id="ExpFe1" description="Nano iron export" unit="mol-Fe/m2/s" axis_ref="deptht" /> 68 <field id="ExpFe2" description="Diatoms iron export" unit="mol-Fe/m2/s" axis_ref="deptht" /> 69 <field id="ExpSi" description="Silicate export" unit="mol-Si/m2/s" axis_ref="deptht" /> 70 <field id="Expcal" description="Calcite export" unit="mol-C/m2/s" axis_ref="deptht" /> 60 <field id="PCAL" description="Calcite production" unit="mol-C/m3/s" axis_ref="deptht" /> 61 <field id="DCAL" description="Calcite dissolution" unit="mol-C/m3/s" axis_ref="deptht" /> 62 <field id="GRAZ" description="Grazing by zooplankton" unit="mol-C/m3/s" axis_ref="deptht" /> 63 <field id="Nfix" description="Nitrogen fixation at surface" unit="mol-N/m2/s" /> 64 <field id="EPC100" description="Export of carbon particles at 100 m" unit="mol-C/m2/s" /> 65 <field id="EPFE100" description="Export of biogenic iron at 100 m" unit="mol-Fe/m2/s" /> 66 <field id="EPSI100" description="Export of Silicate at 100 m" unit="mol-Si/m2/s" /> 67 <field id="EPCAL100" description="Export of Calcite at 100 m" unit="mol-C/m2/s" /> 71 68 <field id="Cflx" description="DIC flux" unit="mol-C/m2/s" /> 72 69 <field id="Oflx" description="Oxygen flux" unit="mol-C/m2/s" /> … … 177 174 <field ref="PFeN" /> 178 175 <field ref="PFeD" /> 179 <field ref="Pcal" /> 180 <field ref="Dcal" /> 181 <field ref="Graz" /> 182 <field ref="Graz2" /> 176 <field ref="PCAL" /> 177 <field ref="DCAL" /> 178 <field ref="GRAZ" /> 179 <field ref="EPC100" /> 180 <field ref="EPFE100" /> 181 <field ref="EPSI100" /> 182 <field ref="EPCAL100" /> 183 183 <field ref="Cflx" /> 184 <field ref="ExpPOC" />185 <field ref="ExpGOC" />186 <field ref="ExpFe1" />187 <field ref="ExpFe2" />188 <field ref="ExpSi" />189 <field ref="Expcal" />190 184 <field ref="Oflx" /> 191 185 <field ref="Kg" /> -
branches/DEV_r1784_mid_year_merge_2010/CONFIG/POMME/EXP00/namelist
r1730 r1970 120 120 ! =2 combination of 0 and 1 cases ("key_lim3" only) 121 121 ln_dm2dc = .false. ! daily mean to diurnal cycle short wave (qsr) 122 ln_rnf = . true. ! runoffs (T => fill namsbc_rnf)122 ln_rnf = .false. ! runoffs (T => fill namsbc_rnf) 123 123 ln_ssr = .true. ! Sea Surface Restoring on T and/or S (T => fill namsbc_ssr) 124 124 nn_fwb = 0 ! FreshWater Budget: =0 unchecked … … 170 170 ! ! file name ! frequency (hours) ! variable ! time interpol. ! clim ! 'yearly'/ ! weights ! rotation ! 171 171 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 172 sn_wndi = 'u10_1988' , 24 , 'u10' , .true. , . false. , 'yearly' , ''173 sn_wndj = 'v10_1988' , 24 , 'v10' , .true. , . false. , 'yearly' , ''174 sn_qsr = 'radsw_1988' , 24 , 'radsw' , .true. , . false. , 'yearly' , ''175 sn_qlw = 'radlw_1988' , 24 , 'radlw' , .true. , . false. , 'yearly' , ''176 sn_tair = 't2_1988.nc' , 24 , 't2' , .true. , . false. , 'yearly' , ''177 sn_humi = 'q2_1988' , 24 , 'q2' , .true. , . false. , 'yearly' , ''178 sn_prec = 'precip_1988.nc' , -1 , 'precip' , .true. , . false. , 'yearly' , ''179 sn_ tdif = 'taudif_core' , 24 , 'taudif' , .true. , .true. , 'yearly' ,''172 sn_wndi = 'u10_1988' , 24 , 'u10' , .true. , .true. , 'yearly' , '' 173 sn_wndj = 'v10_1988' , 24 , 'v10' , .true. , .true. , 'yearly' , '' 174 sn_qsr = 'radsw_1988' , 24 , 'radsw' , .true. , .true. , 'yearly' , '' 175 sn_qlw = 'radlw_1988' , 24 , 'radlw' , .true. , .true. , 'yearly' , '' 176 sn_tair = 't2_1988.nc' , 24 , 't2' , .true. , .true. , 'yearly' , '' 177 sn_humi = 'q2_1988' , 24 , 'q2' , .true. , .true. , 'yearly' , '' 178 sn_prec = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 179 sn_snow = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 180 180 ! 181 181 cn_dir = './' ! root directory for the location of the bulk files … … 223 223 224 224 cn_dir = './' ! root directory for the location of the runoff files 225 ln_traqsr = . true. ! Light penetration (T) or not (F)226 ln_qsr_rgb = . true. ! RGB (Red-Green-Blue) light penetration225 ln_traqsr = .false. ! Light penetration (T) or not (F) 226 ln_qsr_rgb = .false. ! RGB (Red-Green-Blue) light penetration 227 227 ln_qsr_2bd = .false. ! 2 bands light penetration 228 228 ln_qsr_bio = .false. ! bio-model light penetration … … 366 366 &nambfr ! bottom friction 367 367 !----------------------------------------------------------------------- 368 nn_bfr = 3! type of bottom friction : = 0 : no slip, = 2 : nonlinear friction368 nn_bfr = 2 ! type of bottom friction : = 0 : no slip, = 2 : nonlinear friction 369 369 ! = 3 : free slip, = 1 : linear friction 370 370 rn_bfri1 = 4.e-4 ! bottom drag coefficient (linear case) -
branches/DEV_r1784_mid_year_merge_2010/CONFIG/POMME/scripts/BB_make
r1953 r1970 153 153 key_oasis4 \ 154 154 key_obc \ 155 key_off_tra \ 155 156 key_orca_lev10 \ 156 157 key_orca_r025 \ … … 178 179 key_vvl \ 179 180 key_zco \ 181 key_zco \ 180 182 key_zdfcst \ 181 183 key_zdfddm \ … … 189 191 $(MODEL_LIB)(lib_cray.o)\ 190 192 $(MODEL_LIB)(lib_print.o)\ 193 $(MODEL_LIB)(agrif_oce.o)\ 191 194 $(MODEL_LIB)(agrif_opa_interp.o)\ 192 195 $(MODEL_LIB)(agrif_opa_sponge.o)\ 193 196 $(MODEL_LIB)(agrif_opa_update.o)\ 197 $(MODEL_LIB)(agrif_top_interp.o)\ 198 $(MODEL_LIB)(agrif_top_sponge.o)\ 199 $(MODEL_LIB)(agrif_top_update.o)\ 200 $(MODEL_LIB)(agrif_user.o)\ 194 201 $(MODEL_LIB)(albedo.o)\ 195 202 $(MODEL_LIB)(bdy_oce.o)\ … … 561 568 @if [ -f $(PREF)$*.L ] ; then mv $(PREF)$*.L $(TMP) ; fi 562 569 570 $(MODEL_LIB)(agrif_oce.o) : \ 571 $(MODEL_LIB)(par_kind.o) \ 572 $(MODEL_LIB)(par_oce.o) \ 573 par_kind.F90 \ 574 par_oce.F90 \ 575 $(MODEL_LIB)(dom_oce.o) \ 576 $(MODEL_LIB)(par_oce.o) \ 577 dom_oce.F90 \ 578 par_oce.F90 \ 579 KEY_CPP \ 580 agrif_oce.F90 563 581 $(MODEL_LIB)(agrif_opa_interp.o) : \ 582 $(MODEL_LIB)(dom_oce.o) \ 583 $(MODEL_LIB)(in_out_manager.o) \ 584 $(MODEL_LIB)(lib_print.o) \ 585 $(MODEL_LIB)(par_kind.o) \ 586 $(MODEL_LIB)(par_oce.o) \ 587 dom_oce.F90 \ 588 in_out_manager.F90 \ 589 lib_print.f90 \ 590 par_kind.F90 \ 591 par_oce.F90 \ 592 $(MODEL_LIB)(agrif_oce.o) \ 593 $(MODEL_LIB)(dom_oce.o) \ 594 $(MODEL_LIB)(in_out_manager.o) \ 595 $(MODEL_LIB)(oce.o) \ 596 $(MODEL_LIB)(par_oce.o) \ 597 $(MODEL_LIB)(phycst.o) \ 598 $(MODEL_LIB)(sol_oce.o) \ 599 agrif_oce.F90 \ 600 dom_oce.F90 \ 601 in_out_manager.F90 \ 602 oce.F90 \ 603 par_oce.F90 \ 604 phycst.F90 \ 605 sol_oce.F90 \ 606 domzgr_substitute.h90 \ 607 vectopt_loop_substitute.h90 \ 608 $(AGRIF_LIB) \ 609 KEY_CPP \ 564 610 agrif_opa_interp.F90 565 611 $(MODEL_LIB)(agrif_opa_sponge.o) : \ 612 $(MODEL_LIB)(dom_oce.o) \ 613 $(MODEL_LIB)(lib_print.o) \ 614 $(MODEL_LIB)(par_kind.o) \ 615 $(MODEL_LIB)(par_oce.o) \ 616 dom_oce.F90 \ 617 lib_print.f90 \ 618 par_kind.F90 \ 619 par_oce.F90 \ 620 $(MODEL_LIB)(agrif_oce.o) \ 621 $(MODEL_LIB)(dom_oce.o) \ 622 $(MODEL_LIB)(in_out_manager.o) \ 623 $(MODEL_LIB)(oce.o) \ 624 $(MODEL_LIB)(par_oce.o) \ 625 agrif_oce.F90 \ 626 dom_oce.F90 \ 627 in_out_manager.F90 \ 628 oce.F90 \ 629 par_oce.F90 \ 630 domzgr_substitute.h90 \ 631 $(AGRIF_LIB) \ 632 KEY_CPP \ 566 633 agrif_opa_sponge.F90 567 634 $(MODEL_LIB)(agrif_opa_update.o) : \ 635 $(MODEL_LIB)(bdy_oce.o) \ 636 $(MODEL_LIB)(cla_div.o) \ 637 $(MODEL_LIB)(diaar5.o) \ 638 $(MODEL_LIB)(divcur.o) \ 639 $(MODEL_LIB)(dom_oce.o) \ 640 $(MODEL_LIB)(domvvl.o) \ 641 $(MODEL_LIB)(in_out_manager.o) \ 642 $(MODEL_LIB)(iom.o) \ 643 $(MODEL_LIB)(lbclnk.o) \ 644 $(MODEL_LIB)(lib_mpp.o) \ 645 $(MODEL_LIB)(obc_oce.o) \ 646 $(MODEL_LIB)(obc_par.o) \ 647 $(MODEL_LIB)(oce.o) \ 648 $(MODEL_LIB)(par_kind.o) \ 649 $(MODEL_LIB)(par_oce.o) \ 650 $(MODEL_LIB)(phycst.o) \ 651 $(MODEL_LIB)(prtctl.o) \ 652 $(MODEL_LIB)(restart.o) \ 653 $(MODEL_LIB)(sbc_oce.o) \ 654 bdy_oce.F90 \ 655 cla_div.F90 \ 656 diaar5.F90 \ 657 divcur.F90 \ 658 dom_oce.F90 \ 659 domvvl.F90 \ 660 in_out_manager.F90 \ 661 iom.F90 \ 662 lbclnk.F90 \ 663 lib_mpp.F90 \ 664 obc_oce.F90 \ 665 obc_par.F90 \ 666 oce.F90 \ 667 par_kind.F90 \ 668 par_oce.F90 \ 669 phycst.F90 \ 670 prtctl.F90 \ 671 restart.F90 \ 672 sbc_oce.F90 \ 673 $(MODEL_LIB)(agrif_oce.o) \ 674 $(MODEL_LIB)(cla_div.o) \ 675 $(MODEL_LIB)(divcur.o) \ 676 $(MODEL_LIB)(dom_oce.o) \ 677 $(MODEL_LIB)(oce.o) \ 678 $(MODEL_LIB)(par_oce.o) \ 679 $(MODEL_LIB)(sshwzv.o) \ 680 agrif_oce.F90 \ 681 cla_div.F90 \ 682 divcur.F90 \ 683 dom_oce.F90 \ 684 oce.F90 \ 685 par_oce.F90 \ 686 sshwzv.F90 \ 687 domzgr_substitute.h90 \ 688 $(AGRIF_LIB) \ 689 KEY_CPP \ 568 690 agrif_opa_update.F90 691 $(MODEL_LIB)(agrif_top_interp.o) : \ 692 $(MODEL_LIB)(dom_oce.o) \ 693 $(MODEL_LIB)(par_kind.o) \ 694 $(MODEL_LIB)(par_oce.o) \ 695 dom_oce.F90 \ 696 par_kind.F90 \ 697 par_oce.F90 \ 698 $(MODEL_LIB)(agrif_oce.o) \ 699 $(MODEL_LIB)(dom_oce.o) \ 700 $(MODEL_LIB)(oce.o) \ 701 $(MODEL_LIB)(par_oce.o) \ 702 $(MODEL_LIB)(sol_oce.o) \ 703 agrif_oce.F90 \ 704 dom_oce.F90 \ 705 oce.F90 \ 706 par_oce.F90 \ 707 sol_oce.F90 \ 708 domzgr_substitute.h90 \ 709 vectopt_loop_substitute.h90 \ 710 $(AGRIF_LIB) \ 711 KEY_CPP \ 712 agrif_top_interp.F90 713 $(MODEL_LIB)(agrif_top_sponge.o) : \ 714 $(MODEL_LIB)(dom_oce.o) \ 715 $(MODEL_LIB)(lib_print.o) \ 716 $(MODEL_LIB)(par_kind.o) \ 717 $(MODEL_LIB)(par_oce.o) \ 718 dom_oce.F90 \ 719 lib_print.f90 \ 720 par_kind.F90 \ 721 par_oce.F90 \ 722 $(MODEL_LIB)(agrif_oce.o) \ 723 $(MODEL_LIB)(dom_oce.o) \ 724 $(MODEL_LIB)(in_out_manager.o) \ 725 $(MODEL_LIB)(oce.o) \ 726 $(MODEL_LIB)(par_oce.o) \ 727 agrif_oce.F90 \ 728 dom_oce.F90 \ 729 in_out_manager.F90 \ 730 oce.F90 \ 731 par_oce.F90 \ 732 domzgr_substitute.h90 \ 733 $(AGRIF_LIB) \ 734 KEY_CPP \ 735 agrif_top_sponge.F90 736 $(MODEL_LIB)(agrif_top_update.o) : \ 737 $(MODEL_LIB)(dom_oce.o) \ 738 $(MODEL_LIB)(par_kind.o) \ 739 $(MODEL_LIB)(par_oce.o) \ 740 dom_oce.F90 \ 741 par_kind.F90 \ 742 par_oce.F90 \ 743 $(MODEL_LIB)(agrif_oce.o) \ 744 $(MODEL_LIB)(dom_oce.o) \ 745 $(MODEL_LIB)(oce.o) \ 746 $(MODEL_LIB)(par_oce.o) \ 747 agrif_oce.F90 \ 748 dom_oce.F90 \ 749 oce.F90 \ 750 par_oce.F90 \ 751 domzgr_substitute.h90 \ 752 $(AGRIF_LIB) \ 753 KEY_CPP \ 754 agrif_top_update.F90 755 $(MODEL_LIB)(agrif_user.o) : \ 756 $(MODEL_LIB)(agrif_oce.o) \ 757 $(MODEL_LIB)(bdy_par.o) \ 758 $(MODEL_LIB)(bdyini.o) \ 759 $(MODEL_LIB)(c1d.o) \ 760 $(MODEL_LIB)(cla_div.o) \ 761 $(MODEL_LIB)(cpl_oasis3.o) \ 762 $(MODEL_LIB)(cpl_oasis4.o) \ 763 $(MODEL_LIB)(diaptr.o) \ 764 $(MODEL_LIB)(divcur.o) \ 765 $(MODEL_LIB)(dom_oce.o) \ 766 $(MODEL_LIB)(domain.o) \ 767 $(MODEL_LIB)(domcfg.o) \ 768 $(MODEL_LIB)(dtasal.o) \ 769 $(MODEL_LIB)(dtatem.o) \ 770 $(MODEL_LIB)(dyncor_c1d.o) \ 771 $(MODEL_LIB)(dynhpg.o) \ 772 $(MODEL_LIB)(dynspg_oce.o) \ 773 $(MODEL_LIB)(eosbn2.o) \ 774 $(MODEL_LIB)(in_out_manager.o) \ 775 $(MODEL_LIB)(iom.o) \ 776 $(MODEL_LIB)(istate.o) \ 777 $(MODEL_LIB)(ldfdyn.o) \ 778 $(MODEL_LIB)(ldftra.o) \ 779 $(MODEL_LIB)(lib_mpp.o) \ 780 $(MODEL_LIB)(lib_print.o) \ 781 $(MODEL_LIB)(mppini.o) \ 782 $(MODEL_LIB)(obc_par.o) \ 783 $(MODEL_LIB)(obcini.o) \ 784 $(MODEL_LIB)(oce.o) \ 785 $(MODEL_LIB)(par_kind.o) \ 786 $(MODEL_LIB)(par_oce.o) \ 787 $(MODEL_LIB)(phycst.o) \ 788 $(MODEL_LIB)(prtctl.o) \ 789 $(MODEL_LIB)(sbc_oce.o) \ 790 $(MODEL_LIB)(sbcmod.o) \ 791 $(MODEL_LIB)(sol_oce.o) \ 792 $(MODEL_LIB)(sshwzv.o) \ 793 $(MODEL_LIB)(step.o) \ 794 $(MODEL_LIB)(step_c1d.o) \ 795 $(MODEL_LIB)(trdmod.o) \ 796 $(MODEL_LIB)(trdmod_oce.o) \ 797 $(MODEL_LIB)(zdf_oce.o) \ 798 $(MODEL_LIB)(zdfini.o) \ 799 $(MODEL_LIB)(zdfmxl.o) \ 800 agrif_oce.F90 \ 801 bdy_par.F90 \ 802 bdyini.F90 \ 803 c1d.F90 \ 804 cla_div.F90 \ 805 cpl_oasis3.F90 \ 806 cpl_oasis4.F90 \ 807 diaptr.F90 \ 808 divcur.F90 \ 809 dom_oce.F90 \ 810 domain.F90 \ 811 domcfg.F90 \ 812 dtasal.F90 \ 813 dtatem.F90 \ 814 dyncor_c1d.F90 \ 815 dynhpg.F90 \ 816 dynspg_oce.F90 \ 817 eosbn2.F90 \ 818 in_out_manager.F90 \ 819 iom.F90 \ 820 istate.F90 \ 821 ldfdyn.F90 \ 822 ldftra.F90 \ 823 lib_mpp.F90 \ 824 lib_print.f90 \ 825 mppini.F90 \ 826 obc_par.F90 \ 827 obcini.F90 \ 828 oce.F90 \ 829 par_kind.F90 \ 830 par_oce.F90 \ 831 phycst.F90 \ 832 prtctl.F90 \ 833 sbc_oce.F90 \ 834 sbcmod.F90 \ 835 sol_oce.F90 \ 836 sshwzv.F90 \ 837 step.F90 \ 838 step_c1d.F90 \ 839 trdmod.F90 \ 840 trdmod_oce.F90 \ 841 zdf_oce.F90 \ 842 zdfini.F90 \ 843 zdfmxl.F90 \ 844 $(MODEL_LIB)(agrif_oce.o) \ 845 $(MODEL_LIB)(agrif_opa_interp.o) \ 846 $(MODEL_LIB)(agrif_opa_sponge.o) \ 847 $(MODEL_LIB)(agrif_opa_update.o) \ 848 $(MODEL_LIB)(agrif_top_interp.o) \ 849 $(MODEL_LIB)(agrif_top_sponge.o) \ 850 $(MODEL_LIB)(agrif_top_update.o) \ 851 $(MODEL_LIB)(dom_oce.o) \ 852 $(MODEL_LIB)(in_out_manager.o) \ 853 $(MODEL_LIB)(obc_par.o) \ 854 $(MODEL_LIB)(oce.o) \ 855 $(MODEL_LIB)(opa.o) \ 856 $(MODEL_LIB)(par_oce.o) \ 857 $(MODEL_LIB)(sol_oce.o) \ 858 $(MODEL_LIB)(tradmp.o) \ 859 agrif_oce.F90 \ 860 agrif_opa_interp.F90 \ 861 agrif_opa_sponge.F90 \ 862 agrif_opa_update.F90 \ 863 agrif_top_interp.F90 \ 864 agrif_top_sponge.F90 \ 865 agrif_top_update.F90 \ 866 dom_oce.F90 \ 867 in_out_manager.F90 \ 868 obc_par.F90 \ 869 oce.F90 \ 870 opa.F90 \ 871 par_oce.F90 \ 872 sol_oce.F90 \ 873 tradmp.F90 \ 874 $(AGRIF_LIB) \ 875 KEY_CPP \ 876 agrif_user.F90 569 877 $(MODEL_LIB)(albedo.o) : \ 570 878 $(MODEL_LIB)(in_out_manager.o) \ … … 1195 1503 diaar5.F90 1196 1504 $(MODEL_LIB)(diadimg.o) : \ 1197 $(MODEL_LIB)(lib_print.o) \ 1198 $(MODEL_LIB)(par_kind.o) \ 1199 $(MODEL_LIB)(par_oce.o) \ 1200 lib_print.f90 \ 1201 par_kind.F90 \ 1202 par_oce.F90 \ 1203 $(MODEL_LIB)(dom_oce.o) \ 1204 $(MODEL_LIB)(in_out_manager.o) \ 1205 $(MODEL_LIB)(oce.o) \ 1505 $(MODEL_LIB)(dom_oce.o) \ 1506 $(MODEL_LIB)(in_out_manager.o) \ 1507 $(MODEL_LIB)(iom.o) \ 1508 $(MODEL_LIB)(lib_print.o) \ 1509 $(MODEL_LIB)(par_kind.o) \ 1510 $(MODEL_LIB)(par_oce.o) \ 1511 $(MODEL_LIB)(phycst.o) \ 1512 $(MODEL_LIB)(prtctl.o) \ 1513 $(MODEL_LIB)(restart.o) \ 1514 dom_oce.F90 \ 1515 in_out_manager.F90 \ 1516 iom.F90 \ 1517 lib_print.f90 \ 1518 par_kind.F90 \ 1519 par_oce.F90 \ 1520 phycst.F90 \ 1521 prtctl.F90 \ 1522 restart.F90 \ 1523 $(MODEL_LIB)(daymod.o) \ 1524 $(MODEL_LIB)(dom_oce.o) \ 1525 $(MODEL_LIB)(in_out_manager.o) \ 1526 $(MODEL_LIB)(oce.o) \ 1527 daymod.F90 \ 1206 1528 dom_oce.F90 \ 1207 1529 in_out_manager.F90 \ … … 1358 1680 phycst.F90 \ 1359 1681 $(IOIPSL_LIB) \ 1360 KEY_CPP \1361 1682 dianam.F90 1362 1683 $(MODEL_LIB)(diaptr.o) : \ … … 1419 1740 diaptr.F90 1420 1741 $(MODEL_LIB)(diawri.o) : \ 1742 $(MODEL_LIB)(daymod.o) \ 1421 1743 $(MODEL_LIB)(dianam.o) \ 1422 1744 $(MODEL_LIB)(dom_ice_2.o) \ … … 1446 1768 $(MODEL_LIB)(sbcrnf.o) \ 1447 1769 $(MODEL_LIB)(zdf_oce.o) \ 1770 daymod.F90 \ 1448 1771 dianam.F90 \ 1449 1772 dom_ice_2.F90 \ … … 2845 3168 dynldf_lap.F90 2846 3169 $(MODEL_LIB)(dynnxt.o) : \ 3170 $(MODEL_LIB)(agrif_oce.o) \ 2847 3171 $(MODEL_LIB)(bdy_oce.o) \ 2848 3172 $(MODEL_LIB)(bdy_par.o) \ 2849 3173 $(MODEL_LIB)(bdytides.o) \ 3174 $(MODEL_LIB)(cla_div.o) \ 3175 $(MODEL_LIB)(divcur.o) \ 2850 3176 $(MODEL_LIB)(dom_oce.o) \ 2851 3177 $(MODEL_LIB)(dynadv_cen2.o) \ … … 2867 3193 $(MODEL_LIB)(phycst.o) \ 2868 3194 $(MODEL_LIB)(sbc_oce.o) \ 3195 $(MODEL_LIB)(sol_oce.o) \ 3196 $(MODEL_LIB)(sshwzv.o) \ 3197 agrif_oce.F90 \ 2869 3198 bdy_oce.F90 \ 2870 3199 bdy_par.F90 \ 2871 3200 bdytides.F90 \ 3201 cla_div.F90 \ 3202 divcur.F90 \ 2872 3203 dom_oce.F90 \ 2873 3204 dynadv_cen2.F90 \ … … 2889 3220 phycst.F90 \ 2890 3221 sbc_oce.F90 \ 3222 sol_oce.F90 \ 3223 sshwzv.F90 \ 2891 3224 $(MODEL_LIB)(agrif_opa_interp.o) \ 2892 3225 $(MODEL_LIB)(agrif_opa_update.o) \ … … 3161 3494 dynspg_exp.F90 3162 3495 $(MODEL_LIB)(dynspg_flt.o) : \ 3496 $(MODEL_LIB)(agrif_oce.o) \ 3163 3497 $(MODEL_LIB)(bdy_oce.o) \ 3164 3498 $(MODEL_LIB)(bdy_par.o) \ … … 3202 3536 $(MODEL_LIB)(zdfmxl.o) \ 3203 3537 $(MODEL_LIB)(zpshde.o) \ 3538 agrif_oce.F90 \ 3204 3539 bdy_oce.F90 \ 3205 3540 bdy_par.F90 \ … … 4594 4929 in_out_manager.F90 \ 4595 4930 lbcnfd.F90 \ 4596 $(AGRIF_LIB) \4597 4931 KEY_CPP \ 4598 4932 lib_mpp.F90 … … 7569 7903 sshwzv.F90 7570 7904 $(MODEL_LIB)(step.o) : \ 7905 $(MODEL_LIB)(agrif_oce.o) \ 7571 7906 $(MODEL_LIB)(agrif_opa_interp.o) \ 7572 7907 $(MODEL_LIB)(agrif_opa_update.o) \ … … 7690 8025 $(MODEL_LIB)(zdftke_old.o) \ 7691 8026 $(MODEL_LIB)(zpshde.o) \ 8027 agrif_oce.F90 \ 7692 8028 agrif_opa_interp.F90 \ 7693 8029 agrif_opa_update.F90 \ … … 7996 8332 $(MODEL_LIB)(lib_print.o) \ 7997 8333 $(MODEL_LIB)(limwri_2.o) \ 8334 $(MODEL_LIB)(obc_oce.o) \ 7998 8335 $(MODEL_LIB)(obctra.o) \ 7999 8336 $(MODEL_LIB)(oce.o) \ … … 8067 8404 lib_print.f90 \ 8068 8405 limwri_2.F90 \ 8406 obc_oce.F90 \ 8069 8407 obctra.F90 \ 8070 8408 oce.F90 \ … … 9611 9949 tranpc.F90 9612 9950 $(MODEL_LIB)(tranxt.o) : \ 9951 $(MODEL_LIB)(agrif_oce.o) \ 9613 9952 $(MODEL_LIB)(bdy_oce.o) \ 9953 $(MODEL_LIB)(cla_div.o) \ 9954 $(MODEL_LIB)(divcur.o) \ 9614 9955 $(MODEL_LIB)(dom_oce.o) \ 9615 9956 $(MODEL_LIB)(in_out_manager.o) \ … … 9620 9961 $(MODEL_LIB)(lib_print.o) \ 9621 9962 $(MODEL_LIB)(obc_oce.o) \ 9622 $(MODEL_LIB)(oce.o) \ 9623 $(MODEL_LIB)(par_kind.o) \ 9624 $(MODEL_LIB)(par_oce.o) \ 9625 $(MODEL_LIB)(phycst.o) \ 9626 $(MODEL_LIB)(prtctl.o) \ 9627 $(MODEL_LIB)(sbc_oce.o) \ 9963 $(MODEL_LIB)(obc_par.o) \ 9964 $(MODEL_LIB)(oce.o) \ 9965 $(MODEL_LIB)(par_kind.o) \ 9966 $(MODEL_LIB)(par_oce.o) \ 9967 $(MODEL_LIB)(phycst.o) \ 9968 $(MODEL_LIB)(prtctl.o) \ 9969 $(MODEL_LIB)(sbc_oce.o) \ 9970 $(MODEL_LIB)(sol_oce.o) \ 9971 $(MODEL_LIB)(sshwzv.o) \ 9628 9972 $(MODEL_LIB)(trdicp.o) \ 9629 9973 $(MODEL_LIB)(trdicp_oce.o) \ … … 9635 9979 $(MODEL_LIB)(trdvor_oce.o) \ 9636 9980 $(MODEL_LIB)(zdf_oce.o) \ 9981 agrif_oce.F90 \ 9637 9982 bdy_oce.F90 \ 9983 cla_div.F90 \ 9984 divcur.F90 \ 9638 9985 dom_oce.F90 \ 9639 9986 in_out_manager.F90 \ … … 9644 9991 lib_print.f90 \ 9645 9992 obc_oce.F90 \ 9646 oce.F90 \ 9647 par_kind.F90 \ 9648 par_oce.F90 \ 9649 phycst.F90 \ 9650 prtctl.F90 \ 9651 sbc_oce.F90 \ 9993 obc_par.F90 \ 9994 oce.F90 \ 9995 par_kind.F90 \ 9996 par_oce.F90 \ 9997 phycst.F90 \ 9998 prtctl.F90 \ 9999 sbc_oce.F90 \ 10000 sol_oce.F90 \ 10001 sshwzv.F90 \ 9652 10002 trdicp.F90 \ 9653 10003 trdicp_oce.F90 \ … … 9668 10018 $(MODEL_LIB)(in_out_manager.o) \ 9669 10019 $(MODEL_LIB)(lbclnk.o) \ 10020 $(MODEL_LIB)(obc_oce.o) \ 9670 10021 $(MODEL_LIB)(obctra.o) \ 9671 10022 $(MODEL_LIB)(oce.o) \ … … 9684 10035 in_out_manager.F90 \ 9685 10036 lbclnk.F90 \ 10037 obc_oce.F90 \ 9686 10038 obctra.F90 \ 9687 10039 oce.F90 \ … … 10172 10524 $(MODEL_LIB)(trdmld.o) : \ 10173 10525 $(MODEL_LIB)(c1d.o) \ 10526 $(MODEL_LIB)(daymod.o) \ 10174 10527 $(MODEL_LIB)(dom_oce.o) \ 10175 10528 $(MODEL_LIB)(eosbn2.o) \ … … 10197 10550 $(MODEL_LIB)(zpshde.o) \ 10198 10551 c1d.F90 \ 10552 daymod.F90 \ 10199 10553 dom_oce.F90 \ 10200 10554 eosbn2.F90 \ -
branches/DEV_r1784_mid_year_merge_2010/NEMO/NST_SRC/agrif_user.F90
r1605 r1970 73 73 USE tradmp 74 74 #endif 75 #if defined key_obc || defined key_esopa 76 USE obc_par 77 #endif 75 78 USE sol_oce 76 79 USE in_out_manager … … 105 108 ! no tracer damping on fine grids 106 109 lk_tradmp = .FALSE. 110 #endif 111 #if defined key_obc || defined key_esopa 112 ! no open boundary on fine grids 113 lk_obc = .FALSE. 107 114 #endif 108 115 ! 1. Declaration of the type of variable which have to be interpolated -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OFF_SRC/trc_oce.F90
r1445 r1970 39 39 !!---------------------------------------------------------------------- 40 40 !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009) 41 !! $Id: trc_oce.F90 1 423 2009-05-06 16:22:01Z ctlod $41 !! $Id: trc_oce.F90 1834 2010-04-14 11:54:19Z cetlod $ 42 42 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 43 43 !!---------------------------------------------------------------------- … … 126 126 zrgb(1,51) = 3.162 ; zrgb(2,51) = 0.22703 ; zrgb(3,51) = 0.16599 ; zrgb(4,51) = 0.46601 127 127 zrgb(1,52) = 3.548 ; zrgb(2,52) = 0.24433 ; zrgb(3,52) = 0.17334 ; zrgb(4,52) = 0.47313 128 zrgb(1,53) = 3.981 ; zrgb(2,53) = 0.26301 ; zrgb(3,53) = 0.18126 ; zrgb(4,5 4) = 0.48080129 zrgb(1,54) = 4.467 ; zrgb(2,54) = 0.28320 ; zrgb(3,54) = 0.18981 ; zrgb(4,5 5) = 0.48909130 zrgb(1,55) = 5.012 ; zrgb(2,55) = 0.30502 ; zrgb(3,55) = 0.19903 ; zrgb(4,5 6) = 0.49803131 zrgb(1,56) = 5.623 ; zrgb(2,56) = 0.32858 ; zrgb(3,56) = 0.20898 ; zrgb(4,5 7) = 0.50768132 zrgb(1,57) = 6.310 ; zrgb(2,57) = 0.35404 ; zrgb(3,57) = 0.21971 ; zrgb(4,5 8) = 0.51810133 zrgb(1,58) = 7.079 ; zrgb(2,58) = 0.38154 ; zrgb(3,58) = 0.23129 ; zrgb(4,5 9) = 0.52934134 zrgb(1,59) = 7.943 ; zrgb(2,59) = 0.41125 ; zrgb(3,59) = 0.24378 ; zrgb(4,5 0) = 0.54147128 zrgb(1,53) = 3.981 ; zrgb(2,53) = 0.26301 ; zrgb(3,53) = 0.18126 ; zrgb(4,53) = 0.48080 129 zrgb(1,54) = 4.467 ; zrgb(2,54) = 0.28320 ; zrgb(3,54) = 0.18981 ; zrgb(4,54) = 0.48909 130 zrgb(1,55) = 5.012 ; zrgb(2,55) = 0.30502 ; zrgb(3,55) = 0.19903 ; zrgb(4,55) = 0.49803 131 zrgb(1,56) = 5.623 ; zrgb(2,56) = 0.32858 ; zrgb(3,56) = 0.20898 ; zrgb(4,56) = 0.50768 132 zrgb(1,57) = 6.310 ; zrgb(2,57) = 0.35404 ; zrgb(3,57) = 0.21971 ; zrgb(4,57) = 0.51810 133 zrgb(1,58) = 7.079 ; zrgb(2,58) = 0.38154 ; zrgb(3,58) = 0.23129 ; zrgb(4,58) = 0.52934 134 zrgb(1,59) = 7.943 ; zrgb(2,59) = 0.41125 ; zrgb(3,59) = 0.24378 ; zrgb(4,59) = 0.54147 135 135 zrgb(1,60) = 8.912 ; zrgb(2,60) = 0.44336 ; zrgb(3,60) = 0.25725 ; zrgb(4,60) = 0.55457 136 136 zrgb(1,61) = 10.000 ; zrgb(2,61) = 0.47804 ; zrgb(3,61) = 0.27178 ; zrgb(4,61) = 0.56870 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DIA/diaptr.F90
r1775 r1970 362 362 #endif 363 363 364 ! Transports 365 ! T times V on T points (include bolus velocities) 366 #if defined key_diaeiv 367 DO jj = 2, jpj 368 DO ji = 1, jpi 369 vt(ji,jj,:) = tn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) + u_eiv(ji,jj,:) + u_eiv(ji,jj-1,:) )*0.5 370 vs(ji,jj,:) = sn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) + v_eiv(ji,jj,:) + v_eiv(ji,jj-1,:) )*0.5 371 END DO 372 END DO 373 #else 374 DO jj = 2, jpj 375 DO ji = 1, jpi 376 vt(ji,jj,:) = tn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) )*0.5 377 vs(ji,jj,:) = sn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) )*0.5 378 END DO 379 END DO 380 #endif 381 CALL lbc_lnk( vs, 'V', -1. ) ; CALL lbc_lnk( vt, 'V', -1. ) 382 383 ht_glo(:) = SUM( ptr_vjk( vt(:,:,:)), 2 ) 384 st_glo(:) = SUM( ptr_vjk( vs(:,:,:)), 2 ) 385 386 IF ( ln_subbas ) THEN 387 ht_atl(:) = SUM( ptr_vjk( vt (:,:,:), abasin(:,:)*sbasin(:,:)), 2 ) 388 ht_pac(:) = SUM( ptr_vjk( vt (:,:,:), pbasin(:,:)*sbasin(:,:)), 2 ) 389 ht_ind(:) = SUM( ptr_vjk( vt (:,:,:), ibasin(:,:)*sbasin(:,:)), 2 ) 390 ht_ipc(:) = SUM( ptr_vjk( vt (:,:,:), dbasin(:,:)*sbasin(:,:)), 2 ) 391 st_atl(:) = SUM( ptr_vjk( vs (:,:,:), abasin(:,:)*sbasin(:,:)), 2 ) 392 st_pac(:) = SUM( ptr_vjk( vs (:,:,:), pbasin(:,:)*sbasin(:,:)), 2 ) 393 st_ind(:) = SUM( ptr_vjk( vs (:,:,:), ibasin(:,:)*sbasin(:,:)), 2 ) 394 st_ipc(:) = SUM( ptr_vjk( vs (:,:,:), dbasin(:,:)*sbasin(:,:)), 2 ) 395 ENDIF 396 397 ! poleward tracer transports: 398 ! overturning components: 399 IF ( ln_ptrcomp ) THEN 400 pht_ove_glo(:) = SUM( v_msf_glo(:,:) * tn_jk_glo(:,:), 2 ) ! SUM over jk 401 pst_ove_glo(:) = SUM( v_msf_glo(:,:) * sn_jk_glo(:,:), 2 ) 402 IF ( ln_subbas ) THEN 403 pht_ove_atl(:) = SUM( v_msf_atl(:,:) * tn_jk_atl(:,:), 2 ) ! SUM over jk 404 pst_ove_atl(:) = SUM( v_msf_atl(:,:) * sn_jk_atl(:,:), 2 ) 405 pht_ove_pac(:) = SUM( v_msf_pac(:,:) * tn_jk_pac(:,:), 2 ) ! SUM over jk 406 pst_ove_pac(:) = SUM( v_msf_pac(:,:) * sn_jk_pac(:,:), 2 ) 407 pht_ove_ind(:) = SUM( v_msf_ind(:,:) * tn_jk_ind(:,:), 2 ) ! SUM over jk 408 pst_ove_ind(:) = SUM( v_msf_ind(:,:) * sn_jk_ind(:,:), 2 ) 409 pht_ove_ipc(:) = SUM( v_msf_ipc(:,:) * tn_jk_ipc(:,:), 2 ) ! SUM over jk 410 pst_ove_ipc(:) = SUM( v_msf_ipc(:,:) * sn_jk_ipc(:,:), 2 ) 411 END IF 412 END IF 413 414 ! Bolus component 415 #if defined key_diaeiv 416 pht_eiv_glo(:) = SUM( v_msf_eiv_glo(:,:) * tn_jk_glo(:,:), 2 ) ! SUM over jk 417 pst_eiv_glo(:) = SUM( v_msf_eiv_glo(:,:) * sn_jk_glo(:,:), 2 ) ! SUM over jk 418 IF ( ln_subbas ) THEN 419 pht_eiv_atl(:) = SUM( v_msf_eiv_glo(:,:) * tn_jk_atl(:,:), 2 ) ! SUM over jk 420 pst_eiv_atl(:) = SUM( v_msf_eiv_glo(:,:) * sn_jk_atl(:,:), 2 ) ! SUM over jk 421 pht_eiv_pac(:) = SUM( v_msf_eiv_pac(:,:) * tn_jk_pac(:,:), 2 ) ! SUM over jk 422 pst_eiv_pac(:) = SUM( v_msf_eiv_pac(:,:) * sn_jk_pac(:,:), 2 ) ! SUM over jk 423 pht_eiv_ind(:) = SUM( v_msf_eiv_ind(:,:) * tn_jk_ind(:,:), 2 ) ! SUM over jk 424 pst_eiv_ind(:) = SUM( v_msf_eiv_ind(:,:) * sn_jk_ind(:,:), 2 ) ! SUM over jk 425 pht_eiv_ipc(:) = SUM( v_msf_eiv_ipc(:,:) * tn_jk_ipc(:,:), 2 ) ! SUM over jk 426 pst_eiv_ipc(:) = SUM( v_msf_eiv_ipc(:,:) * sn_jk_ipc(:,:), 2 ) ! SUM over jk 427 ENDIF 428 #endif 429 430 ! conversion in PW and G g 431 zpwatt = zpwatt * rau0 * rcp 432 pht_adv(:) = pht_adv(:) * zpwatt 433 pht_ldf(:) = pht_ldf(:) * zpwatt 434 pst_adv(:) = pst_adv(:) * zggram 435 pst_ldf(:) = pst_ldf(:) * zggram 436 IF ( ln_ptrcomp ) THEN 437 pht_ove_glo(:) = pht_ove_glo(:) * zpwatt 438 pst_ove_glo(:) = pst_ove_glo(:) * zggram 439 END IF 440 #if defined key_diaeiv 441 pht_eiv_glo(:) = pht_eiv_glo(:) * zpwatt 442 pst_eiv_glo(:) = pst_eiv_glo(:) * zggram 443 #endif 444 IF( ln_subbas ) THEN 445 ht_atl(:) = ht_atl(:) * zpwatt 446 ht_pac(:) = ht_pac(:) * zpwatt 447 ht_ind(:) = ht_ind(:) * zpwatt 448 ht_ipc(:) = ht_ipc(:) * zpwatt 449 st_atl(:) = st_atl(:) * zggram 450 st_pac(:) = st_pac(:) * zggram 451 st_ind(:) = st_ind(:) * zggram 452 st_ipc(:) = st_ipc(:) * zggram 453 ENDIF 454 364 455 ! "Meridional" Stream-Function 365 456 DO jk = 2,jpk … … 394 485 v_msf_ind(:,:) = v_msf_ind(:,:) * zsverdrup 395 486 v_msf_ipc(:,:) = v_msf_ipc(:,:) * zsverdrup 396 ENDIF397 398 ! Transports399 ! T times V on T points (include bolus velocities)400 #if defined key_diaeiv401 DO jj = 2, jpj402 DO ji = 1, jpi403 vt(ji,jj,:) = tn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) + u_eiv(ji,jj,:) + u_eiv(ji,jj-1,:) )*0.5404 vs(ji,jj,:) = sn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) + v_eiv(ji,jj,:) + v_eiv(ji,jj-1,:) )*0.5405 END DO406 END DO407 #else408 DO jj = 2, jpj409 DO ji = 1, jpi410 vt(ji,jj,:) = tn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) )*0.5411 vs(ji,jj,:) = sn(ji,jj,:) * ( vn(ji,jj,:) + vn(ji,jj-1,:) )*0.5412 END DO413 END DO414 #endif415 CALL lbc_lnk( vs, 'V', -1. ) ; CALL lbc_lnk( vt, 'V', -1. )416 417 ht_glo(:) = SUM( ptr_vjk( vt(:,:,:)), 2 )418 st_glo(:) = SUM( ptr_vjk( vs(:,:,:)), 2 )419 420 IF ( ln_subbas ) THEN421 ht_atl(:) = SUM( ptr_vjk( vt (:,:,:), abasin(:,:)*sbasin(:,:)), 2 )422 ht_pac(:) = SUM( ptr_vjk( vt (:,:,:), pbasin(:,:)*sbasin(:,:)), 2 )423 ht_ind(:) = SUM( ptr_vjk( vt (:,:,:), ibasin(:,:)*sbasin(:,:)), 2 )424 ht_ipc(:) = SUM( ptr_vjk( vt (:,:,:), dbasin(:,:)*sbasin(:,:)), 2 )425 st_atl(:) = SUM( ptr_vjk( vs (:,:,:), abasin(:,:)*sbasin(:,:)), 2 )426 st_pac(:) = SUM( ptr_vjk( vs (:,:,:), pbasin(:,:)*sbasin(:,:)), 2 )427 st_ind(:) = SUM( ptr_vjk( vs (:,:,:), ibasin(:,:)*sbasin(:,:)), 2 )428 st_ipc(:) = SUM( ptr_vjk( vs (:,:,:), dbasin(:,:)*sbasin(:,:)), 2 )429 ENDIF430 431 ! poleward tracer transports:432 ! overturning components:433 IF ( ln_ptrcomp ) THEN434 pht_ove_glo(:) = SUM( v_msf_glo(:,:) * tn_jk_glo(:,:), 2 ) ! SUM over jk435 pst_ove_glo(:) = SUM( v_msf_glo(:,:) * sn_jk_glo(:,:), 2 )436 IF ( ln_subbas ) THEN437 pht_ove_atl(:) = SUM( v_msf_atl(:,:) * tn_jk_atl(:,:), 2 ) ! SUM over jk438 pst_ove_atl(:) = SUM( v_msf_atl(:,:) * sn_jk_atl(:,:), 2 )439 pht_ove_pac(:) = SUM( v_msf_pac(:,:) * tn_jk_pac(:,:), 2 ) ! SUM over jk440 pst_ove_pac(:) = SUM( v_msf_pac(:,:) * sn_jk_pac(:,:), 2 )441 pht_ove_ind(:) = SUM( v_msf_ind(:,:) * tn_jk_ind(:,:), 2 ) ! SUM over jk442 pst_ove_ind(:) = SUM( v_msf_ind(:,:) * sn_jk_ind(:,:), 2 )443 pht_ove_ipc(:) = SUM( v_msf_ipc(:,:) * tn_jk_ipc(:,:), 2 ) ! SUM over jk444 pst_ove_ipc(:) = SUM( v_msf_ipc(:,:) * sn_jk_ipc(:,:), 2 )445 END IF446 END IF447 448 ! Bolus component449 #if defined key_diaeiv450 pht_eiv_glo(:) = SUM( v_msf_eiv_glo(:,:) * tn_jk_glo(:,:), 2 ) ! SUM over jk451 pst_eiv_glo(:) = SUM( v_msf_eiv_glo(:,:) * sn_jk_glo(:,:), 2 ) ! SUM over jk452 IF ( ln_subbas ) THEN453 pht_eiv_atl(:) = SUM( v_msf_eiv_glo(:,:) * tn_jk_atl(:,:), 2 ) ! SUM over jk454 pst_eiv_atl(:) = SUM( v_msf_eiv_glo(:,:) * sn_jk_atl(:,:), 2 ) ! SUM over jk455 pht_eiv_pac(:) = SUM( v_msf_eiv_pac(:,:) * tn_jk_pac(:,:), 2 ) ! SUM over jk456 pst_eiv_pac(:) = SUM( v_msf_eiv_pac(:,:) * sn_jk_pac(:,:), 2 ) ! SUM over jk457 pht_eiv_ind(:) = SUM( v_msf_eiv_ind(:,:) * tn_jk_ind(:,:), 2 ) ! SUM over jk458 pst_eiv_ind(:) = SUM( v_msf_eiv_ind(:,:) * sn_jk_ind(:,:), 2 ) ! SUM over jk459 pht_eiv_ipc(:) = SUM( v_msf_eiv_ipc(:,:) * tn_jk_ipc(:,:), 2 ) ! SUM over jk460 pst_eiv_ipc(:) = SUM( v_msf_eiv_ipc(:,:) * sn_jk_ipc(:,:), 2 ) ! SUM over jk461 ENDIF462 #endif463 464 ! conversion in PW and G g465 zpwatt = zpwatt * rau0 * rcp466 pht_adv(:) = pht_adv(:) * zpwatt467 pht_ldf(:) = pht_ldf(:) * zpwatt468 pst_adv(:) = pst_adv(:) * zggram469 pst_ldf(:) = pst_ldf(:) * zggram470 IF ( ln_ptrcomp ) THEN471 pht_ove_glo(:) = pht_ove_glo(:) * zpwatt472 pst_ove_glo(:) = pst_ove_glo(:) * zggram473 END IF474 #if defined key_diaeiv475 pht_eiv_glo(:) = pht_eiv_glo(:) * zpwatt476 pst_eiv_glo(:) = pst_eiv_glo(:) * zggram477 #endif478 IF( ln_subbas ) THEN479 ht_atl(:) = ht_atl(:) * zpwatt480 ht_pac(:) = ht_pac(:) * zpwatt481 ht_ind(:) = ht_ind(:) * zpwatt482 ht_ipc(:) = ht_ipc(:) * zpwatt483 st_atl(:) = st_atl(:) * zggram484 st_pac(:) = st_pac(:) * zggram485 st_ind(:) = st_ind(:) * zggram486 st_ipc(:) = st_ipc(:) * zggram487 487 ENDIF 488 488 ENDIF -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DOM/dom_oce.F90
r1953 r1970 219 219 #else 220 220 LOGICAL, PUBLIC, PARAMETER :: lk_agrif = .FALSE. !: agrif flag 221 222 CONTAINS223 LOGICAL FUNCTION Agrif_Root()224 Agrif_Root = .TRUE.225 END FUNCTION Agrif_Root226 227 CHARACTER(len=3) FUNCTION Agrif_CFixed()228 Agrif_CFixed = '0'229 END FUNCTION Agrif_CFixed230 221 #endif 231 222 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DOM/phycst.F90
r1739 r1970 4 4 !! Definition of of both ocean and ice parameters used in the code 5 5 !!===================================================================== 6 !! History : ! 90-10 (C. Levy - G. Madec) Original code 7 !! ! 91-11 (G. Madec) 8 !! ! 91-12 (M. Imbard) 9 !! 8.5 ! 02-08 (G. Madec, C. Ethe) F90, add ice constants 10 !! 9.0 ! 06-08 (G. Madec) style 6 !! History : OPA ! 1990-10 (C. Levy, G. Madec) Original code 7 !! ! 1991-11 (G. Madec, M. Imbard) 8 !! NEMO 1.0 ! 2002-08 (G. Madec, C. Ethe) F90, add ice constants 9 !! - ! 2006-08 (G. Madec) style 11 10 !!---------------------------------------------------------------------- 12 11 … … 59 58 rcdic = 2.034396_wp , & !: thermal conductivity of fresh ice 60 59 cpic = 2067.0 , & 61 ! add the following lines62 60 lsub = 2.834e+6 , & !: pure ice latent heat of sublimation (J.kg-1) 63 61 lfus = 0.334e+6 , & !: latent heat of fusion of fresh ice (J.kg-1) … … 69 67 rcpsn = 6.9069e+5_wp, & !: density times specific heat for snow 70 68 rcpic = 1.8837e+6_wp, & !: volumetric latent heat fusion of sea ice 71 xlsn = 110.121e+6_wp , & !: volumetric latent heat fusion of snow 72 xlic = 300.33e+6_wp , & !: volumetric latent heat fusion of ice 69 lfus = 0.3337e+6 , & !: latent heat of fusion of fresh ice (J.kg-1) 70 xlsn = 110.121e+6_wp , & !: = lfus * rhosn, volumetric latent heat fusion of snow 71 xlic = 300.33e+6_wp , & !: = lfus * rhosn, volumetric latent heat fusion of ice 73 72 xsn = 2.8e+6 , & !: latent heat of sublimation of snow 74 73 rhoic = 900._wp , & !: volumic mass of sea ice (kg/m3) … … 83 82 stefan = 5.67e-8_wp !: Stefan-Boltzmann constant 84 83 !!---------------------------------------------------------------------- 85 !! OPA 9.0 , LOCEAN-IPSL (2005)84 !! NEMO/OPA 3.2 , LOCEAN-IPSL (2010) 86 85 !! $Id$ 87 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt86 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 88 87 !!---------------------------------------------------------------------- 89 88 … … 160 159 IF(lwp) WRITE(numout,*) ' 1. / ( rau0 * rcp ) = ro0cpr = ', ro0cpr 161 160 161 #if defined key_lim3 162 xlsn = lfus * rhosn ! volumetric latent heat fusion of snow [J/m3] 163 #else 164 lfus = xlsn / rhosn ! latent heat of fusion of fresh ice 165 #endif 166 162 167 IF(lwp) THEN 163 168 WRITE(numout,*) -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DYN/dynnxt.F90
r1740 r1970 146 146 # if defined key_obc 147 147 ! !* OBC open boundaries 148 CALL obc_dyn( kt )148 IF( lk_obc ) CALL obc_dyn( kt ) 149 149 ! 150 150 IF ( lk_dynspg_exp .OR. lk_dynspg_ts ) THEN -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/DYN/dynspg_flt.F90
r1953 r1970 186 186 187 187 #if defined key_obc 188 CALL obc_dyn( kt )! Update velocities on each open boundary with the radiation algorithm189 CALL obc_vol( kt )! Correction of the barotropic componant velocity to control the volume of the system188 IF( lk_obc ) CALL obc_dyn( kt ) ! Update velocities on each open boundary with the radiation algorithm 189 IF( lk_obc ) CALL obc_vol( kt ) ! Correction of the barotropic componant velocity to control the volume of the system 190 190 #endif 191 191 #if defined key_bdy … … 315 315 #if defined key_obc 316 316 ! caution : grad D = 0 along open boundaries 317 spgu(ji,jj) = z2dt * ztdgu * obcumask(ji,jj) 318 spgv(ji,jj) = z2dt * ztdgv * obcvmask(ji,jj) 317 IF( Agrif_Root() ) THEN 318 spgu(ji,jj) = z2dt * ztdgu * obcumask(ji,jj) 319 spgv(ji,jj) = z2dt * ztdgv * obcvmask(ji,jj) 320 ELSE 321 spgu(ji,jj) = z2dt * ztdgu 322 spgv(ji,jj) = z2dt * ztdgv 323 ENDIF 319 324 #elif defined key_bdy 320 325 ! caution : grad D = 0 along open boundaries … … 330 335 END DO 331 336 332 #if defined key_agrif 337 #if defined key_agrif 333 338 IF( .NOT. Agrif_Root() ) THEN 334 339 ! caution : grad D (fine) = grad D (coarse) at coarse/fine interface … … 338 343 IF( nbondj == 1 .OR. nbondj == 2 ) spgv(:,nlcj-2) = z2dtg * z2dt * laplacv(:,nlcj-2) * vmask(:,nlcj-2,1) 339 344 ENDIF 340 #endif 341 345 #endif 342 346 ! Add the trends multiplied by z2dt to the after velocity 343 347 ! ------------------------------------------------------- -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/OBC/obc_par.F90
r1647 r1970 25 25 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 26 26 !!---------------------------------------------------------------------- 27 LOGICAL, PUBLIC, PARAMETER :: lk_obc = .TRUE. !: Ocean Boundary Condition flag 27 #if ! defined key_agrif 28 LOGICAL, PUBLIC, PARAMETER :: lk_obc = .TRUE. !: Ocean Boundary Condition flag 29 #else 30 LOGICAL, PUBLIC :: lk_obc = .TRUE. !: Ocean Boundary Condition flag 31 #endif 28 32 29 33 # if defined key_eel_r5 … … 43 47 !! open boundary parameter 44 48 !!--------------------------------------------------------------------- 45 INTEGER , PARAMETER:: & !: time dimension of the BCS fields on input49 INTEGER :: & !: time dimension of the BCS fields on input 46 50 jptobc = 2 47 51 !! * EAST open boundary 48 LOGICAL , PARAMETER:: & !:52 LOGICAL :: & !: 49 53 lp_obc_east = .FALSE. !: to active or not the East open boundary 50 INTEGER , PARAMETER :: & !:54 INTEGER :: & 51 55 jpieob = jpiglo-2, & !: i-localization of the East open boundary (must be ocean U-point) 52 56 jpjed = 2, & !: j-starting indice of the East open boundary (must be land T-point) … … 56 60 57 61 !! * WEST open boundary 58 LOGICAL , PARAMETER:: & !:62 LOGICAL :: & !: 59 63 lp_obc_west = .FALSE. !: to active or not the West open boundary 60 INTEGER , PARAMETER:: & !:64 INTEGER :: & !: 61 65 jpiwob = 2, & !: i-localization of the West open boundary (must be ocean U-point) 62 66 jpjwd = 2, & !: j-starting indice of the West open boundary (must be land T-point) … … 66 70 67 71 !! * NORTH open boundary 68 LOGICAL , PARAMETER:: & !:72 LOGICAL :: & !: 69 73 lp_obc_north = .FALSE. !: to active or not the North open boundary 70 INTEGER , PARAMETER:: & !:74 INTEGER :: & !: 71 75 jpjnob = jpjglo-2, & !: j-localization of the North open boundary (must be ocean V-point) 72 76 jpind = 2, & !: i-starting indice of the North open boundary (must be land T-point) … … 76 80 77 81 !! * SOUTH open boundary 78 LOGICAL , PARAMETER:: & !:82 LOGICAL :: & !: 79 83 lp_obc_south = .FALSE. !: to active or not the South open boundary 80 INTEGER , PARAMETER:: & !:84 INTEGER :: & !: 81 85 jpjsob = 2, & !: j-localization of the South open boundary (must be ocean V-point) 82 86 jpisd = 2, & !: i-starting indice of the South open boundary (must be land T-point) -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/OBC/obc_par_EEL_R5.h90
r1152 r1970 15 15 LOGICAL, PARAMETER :: & !: 16 16 lp_obc_east = .TRUE. !: to active or not the East open boundary 17 INTEGER, PARAMETER :: & !: 17 18 INTEGER & 19 #if !defined key_agrif 20 , PARAMETER & 21 #endif 22 :: & 18 23 jpieob = jpiglo-2, & !: i-localization of the East open boundary (must be ocean U-point) 19 24 jpjed = 2, & !: j-starting indice of the East open boundary (must be land T-point) … … 25 30 LOGICAL, PARAMETER :: & !: 26 31 lp_obc_west = .TRUE. !: to active or not the West open boundary 27 INTEGER, PARAMETER :: & 32 33 INTEGER & 34 #if !defined key_agrif 35 , PARAMETER & 36 #endif 37 :: & 28 38 jpiwob = 2, & !: i-localization of the West open boundary (must be ocean U-point) 29 39 jpjwd = 2, & !: j-starting indice of the West open boundary (must be land T-point) … … 35 45 LOGICAL, PARAMETER :: & !: 36 46 lp_obc_north = .FALSE. !: to active or not the North open boundary 37 INTEGER, PARAMETER :: & !: 47 48 INTEGER & 49 #if !defined key_agrif 50 , PARAMETER & 51 #endif 52 :: & 38 53 jpjnob = jpjglo-2, & !: j-localization of the North open boundary (must be ocean V-point) 39 54 jpind = 2, & !: i-starting indice of the North open boundary (must be land T-point) … … 45 60 LOGICAL, PARAMETER :: & !: 46 61 lp_obc_south = .FALSE. !: to active or not the South open boundary 47 INTEGER, PARAMETER :: & !: 62 63 INTEGER & 64 #if !defined key_agrif 65 , PARAMETER & 66 #endif 67 :: & 48 68 jpjsob = 2, & !: j-localization of the South open boundary (must be ocean V-point) 49 69 jpisd = 2, & !: i-starting indice of the South open boundary (must be land T-point) -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/OBC/obc_par_POMME_R025.h90
r1648 r1970 4 4 !! open boundary parameter : POMME configuration 5 5 !!--------------------------------------------------------------------- 6 INTEGER, PARAMETER :: & !: time dimension of the BCS fields on input7 jptobc = 146 INTEGER, PARAMETER :: jptobc = 14 7 !: time dimension of the BCS fields on input 8 8 9 9 !! * EAST open boundary 10 10 LOGICAL, PARAMETER :: & !: 11 11 lp_obc_east = .TRUE. !: 12 INTEGER, PARAMETER :: & !:13 12 13 INTEGER & 14 #if !defined key_agrif 15 , PARAMETER & 16 #endif 17 :: & 14 18 ! * default values * 15 19 !jpieob = jpiglo-2, & !: i-localization of the East open boundary (must be ocean U-point) 16 20 !jpjed = 2, & !: j-starting indice of the East open boundary (must be land T-point) 17 21 !jpjef = jpjglo-1, & !: j-ending indice of the East open boundary (must be land T-point) 18 19 22 jpieob = jpiglo-2, & !: i-localization of the East open boundary (must be ocean U-point) 20 23 jpjed = 1, & !: j-starting indice of the East open boundary (must be land T-point) 21 24 jpjef = jpjglo, & !: j-ending indice of the East open boundary (must be land T-point) 22 23 25 jpjedp1 = jpjed+1, & !: first ocean point " " 24 26 jpjefm1 = jpjef-1 !: last ocean point " " … … 27 29 LOGICAL, PARAMETER :: & !: 28 30 lp_obc_west = .TRUE. !: to active or not the West open boundary 29 INTEGER, PARAMETER :: & !:30 31 32 INTEGER & 33 #if !defined key_agrif 34 , PARAMETER & 35 #endif 36 :: & 31 37 ! * default values * 32 38 !jpiwob = 2, & !: i-localization of the West open boundary (must be ocean U-point) 33 39 !jpjwd = 2, & !: j-starting indice of the West open boundary (must be land T-point) 34 40 !jpjwf = jpjglo-1, & !: j-ending indice of the West open boundary (must be land T-point) 35 36 41 jpiwob = 2, & !: i-localization of the West open boundary (must be ocean U-point) 37 42 jpjwd = 1, & !: j-starting indice of the West open boundary (must be land T-point) 38 43 jpjwf = jpjglo, & !: j-ending indice of the West open boundary (must be land T-point) 39 40 44 jpjwdp1 = jpjwd+1, & !: first ocean point " " 41 45 jpjwfm1 = jpjwf-1 !: last ocean point " " … … 44 48 LOGICAL, PARAMETER :: & !: 45 49 lp_obc_north = .TRUE. !: 46 INTEGER, PARAMETER :: & !:47 50 51 INTEGER & 52 #if !defined key_agrif 53 , PARAMETER & 54 #endif 55 :: & 48 56 ! * default values * 49 57 !jpjnob = jpjglo-2, & !: j-localization of the North open boundary (must be ocean V-point) 50 58 !jpind = 2, & !: i-starting indice of the North open boundary (must be land T-point) 51 59 !jpinf = jpiglo-1, & !: i-ending indice of the North open boundary (must be land T-point) 52 53 60 jpjnob = jpjglo-2, & !: j-localization of the North open boundary (must be ocean V-point) 54 61 jpind = 1, & !: i-starting indice of the North open boundary (must be land T-point) 55 62 jpinf = jpiglo, & !: i-ending indice of the North open boundary (must be land T-point) 56 57 63 jpindp1 = jpind+1, & !: first ocean point " " 58 64 jpinfm1 = jpinf-1 !: last ocean point " " … … 61 67 LOGICAL, PARAMETER :: & !: 62 68 lp_obc_south = .TRUE. !: INDICE to active or not the South open boundary 63 INTEGER, PARAMETER :: & !:64 69 70 INTEGER & 71 #if !defined key_agrif 72 , PARAMETER & 73 #endif 74 :: & 65 75 ! * default values * 66 76 !jpjsob = 2, & !: j-localization of the South open boundary (must be ocean V-point) 67 77 !jpisd = 2, & !: i-starting indice of the South open boundary (must be land T-point) 68 78 !jpisf = jpiglo-1, & !: i-ending indice of the South open boundary (must be land T-point) 69 70 79 jpjsob = 2, & !: j-localization of the South open boundary (must be ocean V-point) 71 80 jpisd = 1, & !: i-starting indice of the South open boundary (must be land T-point) 72 81 jpisf = jpiglo, & !: i-ending indice of the South open boundary (must be land T-point) 73 74 82 jpisdp1 = jpisd+1, & !: first ocean point " " 75 83 jpisfm1 = jpisf-1 !: last ocean point " " -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/OBC/obcdta.F90
r1732 r1970 469 469 ENDIF 470 470 ELSE 471 #if defined key_agrif 472 IF ( ASSOCIATED(ztcobc) ) DEALLOCATE ( ztcobc ) 473 #else 471 474 IF ( ALLOCATED(ztcobc) ) DEALLOCATE ( ztcobc ) 475 #endif 472 476 ALLOCATE (ztcobc(itobc)) 473 477 DO ji=1,1 ! use a dummy loop to read ztcobc only once -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/SBC/fldread.F90
r1953 r1970 186 186 & nday + 1 - nmonth_len(nmonth) * COUNT((/llnxtmth/)), llstop ) 187 187 188 IF( sd(jf)%num == 0 .AND. .NOT. llstop ) THEN ! next year file does not exist188 IF( sd(jf)%num <= 0 .AND. .NOT. llstop ) THEN ! next year file does not exist 189 189 CALL ctl_warn('next year/month/day file: '//TRIM(sd(jf)%clname)// & 190 190 & ' not present -> back to current year/month/day') -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/SBC/geo2ocean.F90
r1613 r1970 311 311 312 312 ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 313 CALL lbc_lnk( gcost, 'T', 1. ) ; CALL lbc_lnk( gsint, 'T', -1. )314 CALL lbc_lnk( gcosu, 'U', 1. ) ; CALL lbc_lnk( gsinu, 'U', -1. )315 CALL lbc_lnk( gcosv, 'V', 1. ) ; CALL lbc_lnk( gsinv, 'V', -1. )316 CALL lbc_lnk( gcosf, 'F', 1. ) ; CALL lbc_lnk( gsinf, 'F', -1. )313 CALL lbc_lnk( gcost, 'T', -1. ) ; CALL lbc_lnk( gsint, 'T', -1. ) 314 CALL lbc_lnk( gcosu, 'U', -1. ) ; CALL lbc_lnk( gsinu, 'U', -1. ) 315 CALL lbc_lnk( gcosv, 'V', -1. ) ; CALL lbc_lnk( gsinv, 'V', -1. ) 316 CALL lbc_lnk( gcosf, 'F', -1. ) ; CALL lbc_lnk( gsinf, 'F', -1. ) 317 317 318 318 END SUBROUTINE angle -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/SBC/sbccpl.F90
r1766 r1970 23 23 USE sbc_oce ! Surface boundary condition: ocean fields 24 24 USE sbc_ice ! Surface boundary condition: ice fields 25 USE phycst ! physical constants 25 26 #if defined key_lim3 26 27 USE par_ice ! ice parameters … … 45 46 USE lib_mpp ! distribued memory computing library 46 47 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 47 USE phycst, ONLY : xlsn, rhosn, xlic, rhoic48 48 #if defined key_cpl_carbon_cycle 49 49 USE p4zflx, ONLY : oce_co2 … … 274 274 srcv(jpr_itz2)%clname = 'O_ITauz2' ! 3rd - - - - 275 275 ! 276 srcv(jpr_otx1:jpr_itz2)%nsgn = -1 ! Vectors: change of sign at north fold 276 ! Vectors: change of sign at north fold ONLY if on the local grid 277 IF( TRIM( cn_rcv_tau(3) ) == 'local grid' ) srcv(jpr_otx1:jpr_itz2)%nsgn = -1. 277 278 278 279 ! ! Set grid and action … … 714 715 IF( srcv(jpr_qnsoce)%laction ) qns(:,:) = frcv(:,:,jpr_qnsoce) 715 716 IF( srcv(jpr_qnsmix)%laction ) qns(:,:) = frcv(:,:,jpr_qnsmix) 716 ! energy for melting solid precipitation over free ocean 717 zcoef = xlsn / rhosn 718 qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * zcoef 717 qns(:,:) = qns(:,:) - frcv(:,:,jpr_snow) * lfus ! add the latent heat of solid precip. melting 718 719 719 ! ! solar flux over the ocean (qsr) 720 720 IF( srcv(jpr_qsroce)%laction ) qsr(:,:) = frcv(:,:,jpr_qsroce) … … 1117 1117 & + pist(:,:,1) * zicefr(:,:,1) ) ) 1118 1118 END SELECT 1119 ! ! snow melting heat flux .... 1120 ! energy for melting solid precipitation over ice-free ocean 1121 zcoef = xlsn / rhosn 1122 ztmp(:,:) = p_frld(:,:,1) * zsnow(:,:) * zcoef 1123 pqns_tot(:,:) = pqns_tot(:,:) - ztmp(:,:) 1119 ztmp(:,:) = p_frld(:,:,1) * zsnow(:,:) * lfus ! add the latent heat of solid precip. melting 1120 pqns_tot(:,:) = pqns_tot(:,:) - ztmp(:,:) ! over free ocean 1124 1121 IF( lk_diaar5 ) CALL iom_put( 'hflx_snow_cea', ztmp + zsnow(:,:) * zcptn(:,:) ) ! heat flux from snow (cell average) 1125 1122 !!gm … … 1130 1127 !! 1131 1128 !! similar job should be done for snow and precipitation temperature 1132 ! ! Iceberg melting heat flux .... 1133 ! energy for iceberg melting 1134 IF( srcv(jpr_cal)%laction ) THEN 1135 zcoef = xlic / rhoic 1136 ztmp(:,:) = frcv(:,:,jpr_cal) * zcoef 1129 ! 1130 IF( srcv(jpr_cal)%laction ) THEN ! Iceberg melting 1131 ztmp(:,:) = frcv(:,:,jpr_cal) * lfus ! add the latent heat of iceberg melting 1137 1132 pqns_tot(:,:) = pqns_tot(:,:) - ztmp(:,:) 1138 1133 IF( lk_diaar5 ) CALL iom_put( 'hflx_cal_cea', ztmp + frcv(:,:,jpr_cal) * zcptn(:,:) ) ! heat flux from calving -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/SBC/sbcfwb.F90
r1715 r1970 65 65 INTEGER :: inum ! temporary logical unit 66 66 INTEGER :: ikty, iyear ! 67 REAL(wp) :: z_emp, z_emp_nsrf ! temporary scalars67 REAL(wp) :: z_emp, z_emp_nsrf, zsum_emp, zsum_erp ! temporary scalars 68 68 REAL(wp) :: zsurf_neg, zsurf_pos, zsurf_tospread 69 69 REAL(wp), DIMENSION(jpi,jpj) :: ztmsk_neg, ztmsk_pos, ztmsk_tospread … … 165 165 ! 166 166 IF( lk_mpp ) CALL mpp_sum( z_emp ) 167 IF( lk_mpp ) CALL mpp_sum( zsurf_neg ) 168 IF( lk_mpp ) CALL mpp_sum( zsurf_pos ) 167 169 168 170 IF( z_emp < 0.e0 ) THEN … … 177 179 178 180 ! emp global mean over <0 or >0 erp area 179 z_emp_nsrf = SUM( e1e2_i(:,:) * z_emp ) / ( zsurf_tospread + rsmall ) 181 zsum_emp = SUM( e1e2_i(:,:) * z_emp ) 182 IF( lk_mpp ) CALL mpp_sum( zsum_emp ) 183 z_emp_nsrf = zsum_emp / ( zsurf_tospread + rsmall ) 180 184 ! weight to respect erp field 2D structure 181 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( SUM( ztmsk_tospread(:,:) * erp(:,:) * e1e2_i(:,:) ) + rsmall ) 185 zsum_erp = SUM( ztmsk_tospread(:,:) * erp(:,:) * e1e2_i(:,:) ) 186 IF( lk_mpp ) CALL mpp_sum( zsum_erp ) 187 z_wgt(:,:) = ztmsk_tospread(:,:) * erp(:,:) / ( zsum_erp + rsmall ) 188 182 189 ! final correction term to apply 183 190 zerp_cor(:,:) = -1. * z_emp_nsrf * zsurf_tospread * z_wgt(:,:) -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/SOL/solmat.F90
r1953 r1970 99 99 100 100 # elif defined key_dynspg_flt && defined key_obc 101 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries103 DO ji = 2, jpim1104 zcoef = z2dt * z2dt * grav * bmask(ji,jj)105 ! ! south coefficient106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1))108 ELSE109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)110 END IF111 gcp(ji,jj,1) = zcoefs112 !113 ! ! west coefficient114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1))116 ELSE117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)118 END IF119 gcp(ji,jj,2) = zcoefw120 !121 ! ! east coefficient122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1))124 ELSE125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)126 END IF127 gcp(ji,jj,3) = zcoefe128 !129 ! ! north coefficient130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1))132 ELSE101 IF( Agrif_Root() ) THEN 102 DO jj = 2, jpjm1 ! matrix of free surface elliptic system with open boundaries 103 DO ji = 2, jpim1 104 zcoef = z2dt * z2dt * grav * bmask(ji,jj) 105 ! ! south coefficient 106 IF( lp_obc_south .AND. ( jj == njs0p1 ) ) THEN 107 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vsmsk(ji,1)) 108 ELSE 109 zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 110 END IF 111 gcp(ji,jj,1) = zcoefs 112 ! 113 ! ! west coefficient 114 IF( lp_obc_west .AND. ( ji == niw0p1 ) ) THEN 115 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-uwmsk(jj,1)) 116 ELSE 117 zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 118 END IF 119 gcp(ji,jj,2) = zcoefw 120 ! 121 ! ! east coefficient 122 IF( lp_obc_east .AND. ( ji == nie0 ) ) THEN 123 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-uemsk(jj,1)) 124 ELSE 125 zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 126 END IF 127 gcp(ji,jj,3) = zcoefe 128 ! 129 ! ! north coefficient 130 IF( lp_obc_north .AND. ( jj == njn0 ) ) THEN 131 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vnmsk(ji,1)) 132 ELSE 133 133 zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 134 END IF 135 gcp(ji,jj,4) = zcoefn 136 ! 137 ! ! diagonal coefficient 138 gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 139 & - zcoefs -zcoefw -zcoefe -zcoefn 140 END DO 140 141 END DO 141 END DO142 ENDIF 142 143 #endif 143 144 144 IF( .NOT. Agrif_Root() ) THEN ! Fine grid boundaries 145 #if defined key_agrif 146 IF( .NOT.AGRIF_ROOT() ) THEN 145 147 ! 146 148 IF( nbondi == -1 .OR. nbondi == 2 ) bmask(2 ,: ) = 0.e0 … … 191 193 ! 192 194 ENDIF 195 #endif 193 196 194 197 ! 2. Boundary conditions -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r1528 r1970 179 179 END DO 180 180 181 ! "zonal" mean advective heat and salt transport 182 IF( ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN 183 pht_adv(:) = ptr_vj( ztv(:,:,:) ) 184 pst_adv(:) = ptr_vj( zsv(:,:,:) ) 185 ENDIF 181 186 182 187 ! Save the intermediate i / j / k advective trends for diagnostics … … 366 371 ! "zonal" mean advective heat and salt transport 367 372 IF( ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN 368 pht_adv(:) = ptr_vj( ztv(:,:,:) ) 369 pst_adv(:) = ptr_vj( zsv(:,:,:) ) 373 pht_adv(:) = ptr_vj( ztv(:,:,:) ) + pht_adv(:) 374 pst_adv(:) = ptr_vj( zsv(:,:,:) ) + pst_adv(:) 370 375 ENDIF 371 376 ! -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/TRA/tranxt.F90
r1601 r1970 38 38 USE agrif_opa_update 39 39 USE agrif_opa_interp 40 USE obc_oce 40 41 41 42 IMPLICIT NONE … … 101 102 ! 102 103 #if defined key_obc 103 CALL obc_tra( kt )! OBC open boundaries104 IF( lk_obc ) CALL obc_tra( kt ) ! OBC open boundaries 104 105 #endif 105 106 #if defined key_bdy -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/lib_mpp.F90
r1953 r1970 2049 2049 ijpj = 4 2050 2050 ijpjm1 = 3 2051 ztab(:,:,:) = 0.e0 2051 2052 ! 2052 2053 DO jj = nlcj - ijpj +1, nlcj ! put in znorthloc the last 4 jlines of pt3d … … 2114 2115 ijpj = 4 2115 2116 ijpjm1 = 3 2117 ztab(:,:) = 0.e0 2116 2118 ! 2117 2119 DO jj = nlcj-ijpj+1, nlcj ! put in znorthloc the last 4 jlines of pt2d … … 2179 2181 ! 2180 2182 ijpj=4 2183 ztab(:,:) = 0.e0 2181 2184 2182 2185 ij=0 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/par_POMME_R025.h90
r1648 r1970 22 22 jp_cfg = 025 , & !: resolution of the configuration (degrees) 23 23 ! Original data size 24 25 24 ! ORCA025 global grid size 26 25 jpiglo_ORCA025 = 1442, & 27 26 jpjglo_ORCA025 = 1021, & ! not used currently 28 29 27 ! POMME "global" domain localisation in the ORCA025 global grid 30 28 jpi_iw = 1059, & … … 32 30 jpj_js = 661, & 33 31 jpj_jn = 700, & 34 35 32 jpidta = ( jpi_ie - jpi_iw + 1 ), & !: =30 first horizontal dimension > or = to jpi 36 33 jpjdta = ( jpj_jn - jpj_js + 1 ), & !: =40 second > or = to jpj 37 34 jpkdta = 46 , & !: number of levels > or = to jpk 38 39 35 ! total domain matrix size 40 36 jpiglo = jpidta, & !: first dimension of global domain --> i -
branches/DEV_r1784_mid_year_merge_2010/NEMO/OPA_SRC/trc_oce.F90
r1581 r1970 126 126 zrgb(1,51) = 3.162 ; zrgb(2,51) = 0.22703 ; zrgb(3,51) = 0.16599 ; zrgb(4,51) = 0.46601 127 127 zrgb(1,52) = 3.548 ; zrgb(2,52) = 0.24433 ; zrgb(3,52) = 0.17334 ; zrgb(4,52) = 0.47313 128 zrgb(1,53) = 3.981 ; zrgb(2,53) = 0.26301 ; zrgb(3,53) = 0.18126 ; zrgb(4,5 4) = 0.48080129 zrgb(1,54) = 4.467 ; zrgb(2,54) = 0.28320 ; zrgb(3,54) = 0.18981 ; zrgb(4,5 5) = 0.48909130 zrgb(1,55) = 5.012 ; zrgb(2,55) = 0.30502 ; zrgb(3,55) = 0.19903 ; zrgb(4,5 6) = 0.49803131 zrgb(1,56) = 5.623 ; zrgb(2,56) = 0.32858 ; zrgb(3,56) = 0.20898 ; zrgb(4,5 7) = 0.50768132 zrgb(1,57) = 6.310 ; zrgb(2,57) = 0.35404 ; zrgb(3,57) = 0.21971 ; zrgb(4,5 8) = 0.51810133 zrgb(1,58) = 7.079 ; zrgb(2,58) = 0.38154 ; zrgb(3,58) = 0.23129 ; zrgb(4,5 9) = 0.52934134 zrgb(1,59) = 7.943 ; zrgb(2,59) = 0.41125 ; zrgb(3,59) = 0.24378 ; zrgb(4,5 0) = 0.54147128 zrgb(1,53) = 3.981 ; zrgb(2,53) = 0.26301 ; zrgb(3,53) = 0.18126 ; zrgb(4,53) = 0.48080 129 zrgb(1,54) = 4.467 ; zrgb(2,54) = 0.28320 ; zrgb(3,54) = 0.18981 ; zrgb(4,54) = 0.48909 130 zrgb(1,55) = 5.012 ; zrgb(2,55) = 0.30502 ; zrgb(3,55) = 0.19903 ; zrgb(4,55) = 0.49803 131 zrgb(1,56) = 5.623 ; zrgb(2,56) = 0.32858 ; zrgb(3,56) = 0.20898 ; zrgb(4,56) = 0.50768 132 zrgb(1,57) = 6.310 ; zrgb(2,57) = 0.35404 ; zrgb(3,57) = 0.21971 ; zrgb(4,57) = 0.51810 133 zrgb(1,58) = 7.079 ; zrgb(2,58) = 0.38154 ; zrgb(3,58) = 0.23129 ; zrgb(4,58) = 0.52934 134 zrgb(1,59) = 7.943 ; zrgb(2,59) = 0.41125 ; zrgb(3,59) = 0.24378 ; zrgb(4,59) = 0.54147 135 135 zrgb(1,60) = 8.912 ; zrgb(2,60) = 0.44336 ; zrgb(3,60) = 0.25725 ; zrgb(4,60) = 0.55457 136 136 zrgb(1,61) = 10.000 ; zrgb(2,61) = 0.47804 ; zrgb(3,61) = 0.27178 ; zrgb(4,61) = 0.56870 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zflx.F90
r1953 r1970 204 204 CALL mpp_sum( t_oce_co2_flx ) ! sum over the global domain 205 205 ENDIF 206 ! Conversion in GtC/yr ; negative for outgoing from ocean 207 t_oce_co2_flx = (-1.) * t_oce_co2_flx * 12. / 1.e15 208 ! 206 209 WRITE(numout,*) ' Atmospheric pCO2 :' 207 210 WRITE(numout,*) '-------------------- : ',kt,' ',t_atm_co2_flx 208 211 WRITE(numout,*) '(ppm)' 209 WRITE(numout,*) 'Total Flux of Carbon :'210 WRITE(numout,*) '-------------------- : ',t_oce_co2_flx * 12. / 1e15211 WRITE(numout,*) '(GtC/ an)'212 WRITE(numout,*) 'Total Flux of Carbon out of the ocean :' 213 WRITE(numout,*) '-------------------- : ',t_oce_co2_flx 214 WRITE(numout,*) '(GtC/yr)' 212 215 t_atm_co2_flx = 0. 213 216 t_oce_co2_flx = 0. 217 # if defined key_iomput 218 CALL iom_put( "tatpco2" , t_atm_co2_flx ) 219 CALL iom_put( "tco2flx" , t_oce_co2_flx ) 220 #endif 214 221 ENDIF 215 222 #endif -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zlys.F90
r1735 r1970 67 67 #if defined key_trc_dia3d && defined key_iomput 68 68 REAL(wp) :: zrfact2 69 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss , zw3d69 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcaldiss 70 70 #endif 71 71 CHARACTER (len=25) :: charout … … 94 94 ! SET DUMMY VARIABLE FOR TOTAL BORATE 95 95 zbot = borat(ji,jj,jk) 96 97 ! SET DUMMY VARIABLE FOR TOTAL BORATE 98 zbot = borat(ji,jj,jk) 96 99 zfact = rhop (ji,jj,jk) / 1000. + rtrn 97 100 … … 171 174 # else 172 175 zrfact2 = 1.e3 * rfact2r 173 zw3d(:,:,:) = hi (:,:,:) * tmask(:,:,:) 174 CALL iom_put( "PH", zw3d ) 175 zw3d(:,:,:) = zco3(:,:,:) * tmask(:,:,:) 176 CALL iom_put( "CO3", zw3d ) 177 zw3d(:,:,:) = aksp(:,:,:) / calcon * tmask(:,:,:) 178 CALL iom_put( "CO3sat", zw3d ) 179 zw3d(:,:,:) = zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:) 180 CALL iom_put( "Dcal", zw3d ) 176 CALL iom_put( "PH" , hi (:,:,:) * tmask(:,:,:) ) 177 CALL iom_put( "CO3" , zco3 (:,:,:) * tmask(:,:,:) ) 178 CALL iom_put( "CO3sat", aksp (:,:,:) / calcon * tmask(:,:,:) ) 179 CALL iom_put( "DCAL" , zcaldiss(:,:,:) * zrfact2 * tmask(:,:,:) ) 181 180 # endif 182 181 # endif … … 232 231 END SUBROUTINE p4z_lys 233 232 #endif 234 235 233 !!====================================================================== 236 234 END MODULE p4zlys -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zmeso.F90
r1953 r1970 76 76 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 77 77 REAL(wp) :: zrfact2 78 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d79 78 #endif 80 79 … … 203 202 END DO 204 203 204 #if defined key_trc_dia3d 205 ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) 206 grazing(:,:,:) = grazing(:,:,:) + ( zgrazd (:,:,:) + zgrazz (:,:,:) + zgrazn(:,:,:) & 207 & + zgrazpoc(:,:,:) + zgrazffe(:,:,:) ) 208 #endif 209 205 210 206 211 DO jk = 1,jpkm1 … … 311 316 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 312 317 zrfact2 = 1.e3 * rfact2r 313 zw3d(:,:,:) = ( zgrazd(:,:,:) + zgrazz(:,:,:) + zgrazn(:,:,:) & 314 & + zgrazpoc(:,:,:) + zgrazffe(:,:,:) ) * zrfact2 * tmask(:,:,:) 315 IF( jnt == nrdttrc ) CALL iom_put( "Graz2" , zw3d ) 316 317 zw3d(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:) 318 IF( jnt == nrdttrc ) CALL iom_put( "Pcal" , zw3d ) 318 ! Total grazing of phyto by zoo 319 grazing(:,:,:) = grazing(:,:,:) * zrfact2 * tmask(:,:,:) 320 ! Calcite production 321 prodcal(:,:,:) = prodcal(:,:,:) * zrfact2 * tmask(:,:,:) 322 IF( jnt == nrdttrc ) then 323 CALL iom_put( "GRAZ" , grazing ) ! Total grazing of phyto by zooplankton 324 CALL iom_put( "PCAL" , prodcal ) ! Calcite production 325 ENDIF 319 326 #endif 320 327 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zmicro.F90
r1953 r1970 70 70 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazmf, zgrazsf, zgrazpf 71 71 CHARACTER (len=25) :: charout 72 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput73 REAL(wp) :: zrfact274 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d75 #endif76 72 77 73 !!--------------------------------------------------------------------- … … 88 84 zgrazpf(:,:,:) = 0. 89 85 86 #if defined key_trc_dia3d 87 grazing(:,:,:) = 0. !: Initialisation of grazing 88 #endif 90 89 91 90 zstep = rfact2 / rday ! Time step duration for biology … … 156 155 END DO 157 156 157 #if defined key_trc_dia3d 158 ! Grazing by microzooplankton 159 grazing(:,:,:) = grazing(:,:,:) + zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:) 160 #endif 158 161 159 162 DO jk = 1,jpkm1 … … 231 234 END DO 232 235 ! 233 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 234 zrfact2 = 1.e3 * rfact2r 235 zw3d(:,:,:) = ( zgrazp(:,:,:) + zgrazm(:,:,:) + zgrazsd(:,:,:) ) * zrfact2 * tmask(:,:,:) 236 IF( jnt == nrdttrc ) CALL iom_put( "Graz" , zw3d ) 237 #endif 238 239 IF(ln_ctl) THEN ! print mean trends (used for debugging) 236 IF(ln_ctl) THEN ! print mean trends (used for debugging) 240 237 WRITE(charout, FMT="('micro')") 241 238 CALL prt_ctl_trc_info(charout) 242 239 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 243 240 ENDIF 244 241 245 242 END SUBROUTINE p4z_micro -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zopt.F90
r1953 r1970 61 61 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zekg, zekr, zekb 62 62 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze1 , ze2 , ze3, ze0 63 #if defined key_trc_diaadd && defined key_iomput64 REAL(wp), DIMENSION(jpi,jpj) :: zw2d65 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d66 #endif67 63 !!--------------------------------------------------------------------- 68 64 … … 238 234 # else 239 235 ! write diagnostics 240 zw2d(:,: ) = heup(:,: ) * tmask(:,:,1)241 zw3d(:,:,:) = etot(:,:,:) * tmask(:,:,:)242 IF( jnt == nrdttrc ) CALL iom_put( "Heup", zw2d )243 IF( jnt == nrdttrc ) CALL iom_put( "PAR" , zw3d )236 IF( jnt == nrdttrc ) then 237 CALL iom_put( "Heup", heup(:,: ) * tmask(:,:,1) ) ! euphotic layer deptht 238 CALL iom_put( "PAR" , etot(:,:,:) * tmask(:,:,:) ) ! Photosynthetically Available Radiation 239 ENDIF 244 240 # endif 245 241 #endif -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zprod.F90
r1953 r1970 81 81 #if defined key_trc_diaadd && defined key_trc_dia3d 82 82 REAL(wp) :: zrfact2 83 #if defined key_iomput84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d85 #endif86 83 #endif 87 84 REAL(wp), DIMENSION(jpi,jpj) :: zmixnano , zmixdiat, zstrn … … 352 349 WRITE(numout,*) 'Total PP :' 353 350 WRITE(numout,*) '-------------------- : ',tpp * 12. / 1.E12 354 WRITE(numout,*) '(GtC/ an)'351 WRITE(numout,*) '(GtC/yr)' 355 352 tpp = 0. 356 353 ENDIF 357 354 358 #if defined key_trc_diaadd && defined key_trc_dia3d 355 #if defined key_trc_diaadd && defined key_trc_dia3d && ! defined key_iomput 356 ! Supplementary diagnostics 359 357 zrfact2 = 1.e3 * rfact2r 360 ! Supplementary diagnostics361 # if ! defined key_iomput362 358 trc3d(:,:,:,jp_pcs0_3d + 4) = zprorca (:,:,:) * zrfact2 * tmask(:,:,:) 363 359 trc3d(:,:,:,jp_pcs0_3d + 5) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) … … 366 362 trc3d(:,:,:,jp_pcs0_3d + 8) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) 367 363 trc3d(:,:,:,jp_pcs0_3d + 9) = zprofed (:,:,:) * zrfact2 * tmask(:,:,:) 368 # if ! defined key_kriest364 # if ! defined key_kriest 369 365 trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:) 366 # endif 370 367 #endif 371 368 372 # else 373 zw3d(:,:,:) = zprorca (:,:,:) * zrfact2 * tmask(:,:,:) 374 IF( jnt == nrdttrc ) CALL iom_put( "PPPHY" , zw3d ) 375 zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) 376 IF( jnt == nrdttrc ) CALL iom_put( "PPPHY2", zw3d ) 377 zw3d(:,:,:) = zpronew (:,:,:) * zrfact2 * tmask(:,:,:) 378 IF( jnt == nrdttrc ) CALL iom_put( "PPNEWN" , zw3d ) 379 zw3d(:,:,:) = zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) 380 IF( jnt == nrdttrc ) CALL iom_put( "PPNEWD", zw3d ) 381 zw3d(:,:,:) = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) 382 IF( jnt == nrdttrc ) CALL iom_put( "PBSi" , zw3d ) 383 zw3d(:,:,:) = zprofed (:,:,:) * zrfact2 * tmask(:,:,:) 384 IF( jnt == nrdttrc ) CALL iom_put( "PFeD" , zw3d ) 385 zw3d(:,:,:) = zprofen (:,:,:) * zrfact2 * tmask(:,:,:) 386 IF( jnt == nrdttrc ) CALL iom_put( "PFeN" , zw3d ) 387 # endif 369 #if defined key_trc_diaadd && defined key_trc_dia3d && defined key_iomput 370 zrfact2 = 1.e3 * rfact2r 371 IF ( jnt == nrdttrc ) then 372 CALL iom_put( "PPPHY" , zprorca (:,:,:) * zrfact2 * tmask(:,:,:) ) ! primary production by nanophyto 373 CALL iom_put( "PPPHY2", zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) ) ! primary production by diatom 374 CALL iom_put( "PPNEWN", zpronew (:,:,:) * zrfact2 * tmask(:,:,:) ) ! new primary production by nanophyto 375 CALL iom_put( "PPNEWD", zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) ) ! new primary production by diatom 376 CALL iom_put( "PBSi" , zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) ) ! biogenic silica production 377 CALL iom_put( "PFeD" , zprofed (:,:,:) * zrfact2 * tmask(:,:,:) ) ! biogenic iron production by diatom 378 CALL iom_put( "PFeN" , zprofen (:,:,:) * zrfact2 * tmask(:,:,:) ) ! biogenic iron production by nanophyto 379 ENDIF 388 380 #endif 389 381 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zsed.F90
r1735 r1970 96 96 REAL(wp) :: zrfact2 97 97 # if defined key_iomput 98 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d99 98 REAL(wp), DIMENSION(jpi,jpj) :: zw2d 100 99 # endif … … 332 331 trc2d(:,:,jp_pcs0_2d + 12) = znitrpot(:,:,1) * 1.e-7 * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 333 332 # else 334 ! write diagnostics 335 zw2d(:,:) = ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) & 336 & * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 333 ! surface downward net flux of iron 334 zw2d(:,:) = ( zirondep(:,:,1) + ironsed(:,:,1) * rfact2 ) * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 337 335 IF( jnt == nrdttrc ) CALL iom_put( "Irondep", zw2d ) 338 zw3d(:,:,:) = znitrpot(:,:,:) * 1.e-7 * zrfact2 * fse3t(:,:,:) * tmask(:,:,:)339 IF( jnt == nrdttrc ) CALL iom_put( "Nfix", zw3d )340 # endif 341 336 ! nitrogen fixation at surface 337 zw2d(:,:) = znitrpot(:,:,1) * 1.e-7 * zrfact2 * fse3t(:,:,1) * tmask(:,:,1) 338 IF( jnt == nrdttrc ) CALL iom_put( "Nfix" , zw2d ) 339 # endif 342 340 # endif 343 341 ! -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/p4zsink.F90
r1953 r1970 99 99 #if defined key_trc_diaadd 100 100 REAL(wp) :: zrfact2 101 INTEGER :: iksed1 102 #if defined key_iomput 103 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d 104 #endif 101 INTEGER :: ik1 105 102 #endif 106 103 REAL(wp), DIMENSION(jpi,jpj,jpk) :: znum3d … … 286 283 #if defined key_trc_diaadd 287 284 zrfact2 = 1.e3 * rfact2r 288 ik sed1 = iksed + 1285 ik1 = iksed + 1 289 286 # if ! defined key_iomput 290 trc2d(:,: ,jp_pcs0_2d + 4) = sinking (:,:,ik sed1) * zrfact2 * tmask(:,:,1)291 trc2d(:,: ,jp_pcs0_2d + 5) = sinking2(:,:,ik sed1) * zrfact2 * tmask(:,:,1)292 trc2d(:,: ,jp_pcs0_2d + 6) = sinkfer (:,:,ik sed1) * zrfact2 * tmask(:,:,1)293 trc2d(:,: ,jp_pcs0_2d + 7) = sinksil (:,:,ik sed1) * zrfact2 * tmask(:,:,1)294 trc2d(:,: ,jp_pcs0_2d + 8) = sinkcal (:,:,ik sed1) * zrfact2 * tmask(:,:,1)287 trc2d(:,: ,jp_pcs0_2d + 4) = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) 288 trc2d(:,: ,jp_pcs0_2d + 5) = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) 289 trc2d(:,: ,jp_pcs0_2d + 6) = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) 290 trc2d(:,: ,jp_pcs0_2d + 7) = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) 291 trc2d(:,: ,jp_pcs0_2d + 8) = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) 295 292 trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 296 293 trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) … … 301 298 trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4 (:,:,:) * tmask(:,:,:) 302 299 #else 303 zw3d(:,:,:) = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 304 IF( jnt == nrdttrc ) CALL iom_put( "PMO" , zw3d ) 305 zw3d(:,:,:) = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 306 IF( jnt == nrdttrc ) CALL iom_put( "PMO2", zw3d ) 307 zw3d(:,:,:) = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:) 308 IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d ) 309 zw3d(:,:,:) = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 310 IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d ) 311 zw3d(:,:,:) = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 312 IF( jnt == nrdttrc ) CALL iom_put( "ExpCaCO3", zw3d ) 313 zw3d(:,:,:) = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 314 IF( jnt == nrdttrc ) CALL iom_put( "POCFlx", zw3d ) 315 zw3d(:,:,:) = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 316 IF( jnt == nrdttrc ) CALL iom_put( "GOCFlx", zw3d ) 317 zw3d(:,:,:) = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 318 IF( jnt == nrdttrc ) CALL iom_put( "SiFlx", zw3d ) 319 zw3d(:,:,:) = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 320 IF( jnt == nrdttrc ) CALL iom_put( "CaCO3Flx", zw3d ) 321 zw3d(:,:,:) = znum3d (:,:,:) * tmask(:,:,:) 322 IF( jnt == nrdttrc ) CALL iom_put( "xnum", zw3d ) 323 zw3d(:,:,:) = wsbio3 (:,:,:) * tmask(:,:,:) 324 IF( jnt == nrdttrc ) CALL iom_put( "W1", zw3d ) 325 zw3d(:,:,:) = wsbio4 (:,:,:) * tmask(:,:,:) 326 IF( jnt == nrdttrc ) CALL iom_put( "W2", zw3d ) 300 IF( jnt == nrdttrc ) then 301 CALL iom_put( "POCFlx" , sinking (:,:,:) * zrfact2 * tmask(:,:,:) ) ! POC export 302 CALL iom_put( "NumFlx" , sinking2 (:,:,:) * zrfact2 * tmask(:,:,:) ) ! Num export 303 CALL iom_put( "SiFlx" , sinksil (:,:,:) * zrfact2 * tmask(:,:,:) ) ! Silica export 304 CALL iom_put( "CaCO3Flx", sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) ) ! Calcite export 305 CALL iom_put( "xnum" , znum3d (:,:,:) * tmask(:,:,:) ) ! Number of particles in aggregats 306 CALL iom_put( "W1" , wsbio3 (:,:,:) * tmask(:,:,:) ) ! sinking speed of POC 307 CALL iom_put( "W2" , wsbio4 (:,:,:) * tmask(:,:,:) ) ! sinking speed of aggregats 308 CALL iom_put( "PMO" , sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! POC export at 100m 309 CALL iom_put( "PMO2" , sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! Num export at 100m 310 CALL iom_put( "ExpFe1" , sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! Export of iron at 100m 311 CALL iom_put( "ExpSi" , sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! export of silica at 100m 312 CALL iom_put( "ExpCaCO3", sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! export of calcite at 100m 313 ENDIF 327 314 # endif 328 315 … … 489 476 #if defined key_trc_dia3d 490 477 REAL(wp) :: zrfact2 491 INTEGER :: iksed1 492 #endif 493 #if defined key_iomput 494 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d 478 INTEGER :: ik1 495 479 #endif 496 480 CHARACTER (len=25) :: charout … … 613 597 #if defined key_trc_diaadd 614 598 zrfact2 = 1.e3 * rfact2r 615 ik sed1= iksed + 1599 ik1 = iksed + 1 616 600 # if ! defined key_iomput 617 trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik sed1) * zrfact2 * tmask(:,:,1)618 trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik sed1) * zrfact2 * tmask(:,:,1)619 trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik sed1) * zrfact2 * tmask(:,:,1)620 trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik sed1) * zrfact2 * tmask(:,:,1)621 trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik sed1) * zrfact2 * tmask(:,:,1)622 trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik sed1) * zrfact2 * tmask(:,:,1)601 trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik1) * zrfact2 * tmask(:,:,1) 602 trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik1) * zrfact2 * tmask(:,:,1) 603 trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik1) * zrfact2 * tmask(:,:,1) 604 trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik1) * zrfact2 * tmask(:,:,1) 605 trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik1) * zrfact2 * tmask(:,:,1) 606 trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik1) * zrfact2 * tmask(:,:,1) 623 607 # else 624 zw3d(:,:,:) = sinking (:,:,:) * zrfact2 * tmask(:,:,:) 625 IF( jnt == nrdttrc ) CALL iom_put( "ExpPOC" , zw3d ) 626 zw3d(:,:,:) = sinking2(:,:,:) * zrfact2 * tmask(:,:,:) 627 IF( jnt == nrdttrc ) CALL iom_put( "ExpGOC", zw3d ) 628 zw3d(:,:,:) = sinkfer (:,:,:) * zrfact2 * tmask(:,:,:) 629 IF( jnt == nrdttrc ) CALL iom_put( "ExpFe1", zw3d ) 630 zw3d(:,:,:) = sinkfer2(:,:,:) * zrfact2 * tmask(:,:,:) 631 IF( jnt == nrdttrc ) CALL iom_put( "ExpFe2", zw3d ) 632 zw3d(:,:,:) = sinksil (:,:,:) * zrfact2 * tmask(:,:,:) 633 IF( jnt == nrdttrc ) CALL iom_put( "ExpSi", zw3d ) 634 zw3d(:,:,:) = sinkcal (:,:,:) * zrfact2 * tmask(:,:,:) 635 IF( jnt == nrdttrc ) CALL iom_put( "Expcal", zw3d ) 636 # endif 608 IF( jnt == nrdttrc ) then 609 CALL iom_put( "EPC100" , ( sinking(:,:,ik1) + sinking2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of carbon at 100m 610 CALL iom_put( "EPFE100" , ( sinkfer(:,:,ik1) + sinkfer2(:,:,ik1) ) * zrfact2 * tmask(:,:,1) ) ! Export of iron at 100m 611 CALL iom_put( "EPCAL100", sinkcal(:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! Export of calcite at 100m 612 CALL iom_put( "EPSI100" , sinksil(:,:,ik1) * zrfact2 * tmask(:,:,1) ) ! Export of biogenic silica at 100m 613 ENDIF 614 #endif 637 615 #endif 638 616 ! -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r1953 r1970 64 64 #if defined key_trc_dia3d 65 65 REAL(wp), DIMENSION(jpi,jpj,jpk) :: prodcal !: Calcite production 66 REAL(wp), DIMENSION(jpi,jpj,jpk) :: grazing !: Total zooplankton grazing 66 67 #endif 67 68 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/PISCES/trcrst_pisces.F90
r1953 r1970 263 263 #if defined key_dtatrc 264 264 ! Restore close seas values to initial data 265 nmonth = 1 266 nday = 1 267 CALL trc_dta( nittrc000) 265 CALL trc_dta( nittrc000 ) 268 266 DO jn = 1, jptra 269 267 IF( lutini(jn) ) THEN -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/par_trc.F90
r1254 r1970 18 18 USE par_lobster ! LOBSTER model 19 19 USE par_pisces ! PISCES model 20 USE par_c14b ! C14 bomb tracer 20 21 USE par_cfc ! CFC 11 and 12 tracers 21 USE par_c14b ! C14 bomb tracer22 22 USE par_my_trc ! user defined passive tracers 23 23 … … 27 27 ! Passive tracers : Total size 28 28 ! --------------- ! total number of passive tracers, of 2d and 3d output and trend arrays 29 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc + jp_ c14b + jp_my_trc30 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_ c14b_2d + jp_my_trc_2d31 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_ c14b_3d + jp_my_trc_3d29 INTEGER, PUBLIC, PARAMETER :: jptra = jp_lobster + jp_pisces + jp_cfc + jp_my_trc 30 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_lobster_2d + jp_pisces_2d + jp_cfc_2d + jp_my_trc_2d 31 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_lobster_3d + jp_pisces_3d + jp_cfc_3d + jp_my_trc_3d 32 32 ! ! total number of sms diagnostic arrays 33 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_ c14b_trd + jp_my_trc_trd33 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_lobster_trd + jp_pisces_trd + jp_cfc_trd + jp_my_trc_trd 34 34 35 35 ! 1D configuration ("key_c1d") … … 40 40 LOGICAL, PUBLIC, PARAMETER :: lk_trc_c1d = .FALSE. !: 1D pass. tracer configuration flag 41 41 # endif 42 43 42 ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 44 #if defined key_trcldf_eiv 45 # if defined key_trcdmp 46 INTEGER, PARAMETER :: jpdiatrc = 11 !: trends: 3*(advection + diffusion + eiv ) + damping + sms 47 # else 48 INTEGER, PARAMETER :: jpdiatrc = 10 !: trends: 3*(advection + diffusion + eiv ) + sms 49 # endif 50 #else 51 # if defined key_trcdmp 52 INTEGER, PARAMETER :: jpdiatrc = 8 !: trends: 3*(advection + diffusion ) + damping + sms 53 # else 54 INTEGER, PARAMETER :: jpdiatrc = 7 !: trends: 3*(advection + diffusion ) + damping + sms 55 # endif 43 # if defined key_trc_diatrd 44 ! Passive tracers : size for TRP trends diagnotics (used if 'key_trc_diatrd' defined) 45 INTEGER, PARAMETER :: jptrc_xad = 1 !: x- horizontal advection 46 INTEGER, PARAMETER :: jptrc_yad = 2 !: y- horizontal advection 47 INTEGER, PARAMETER :: jptrc_zad = 3 !: z- vertical advection 48 INTEGER, PARAMETER :: jptrc_xdf = 4 !: lateral diffusion 49 INTEGER, PARAMETER :: jptrc_ydf = 5 !: lateral diffusion 50 INTEGER, PARAMETER :: jptrc_zdf = 6 !: vertical diffusion (Kz) 51 INTEGER, PARAMETER :: jptrc_sbc = 7 !: surface boundary condition 52 #if ! defined key_trcldf_eiv && ! defined key_trcdmp 53 INTEGER, PARAMETER :: jpdiatrc = 7 !: trends: 3*(advection + diffusion ) + sbc 54 #endif 55 #if defined key_trcldf_eiv && defined key_trcdmp 56 INTEGER, PARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection 57 INTEGER, PARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection 58 INTEGER, PARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection 59 INTEGER, PARAMETER :: jptrc_dmp = 11 !: damping 60 INTEGER, PARAMETER :: jpdiatrc = 11 !: trends: 3*(advection + diffusion + eiv ) + sbc + damping 61 #endif 62 #if defined key_trcldf_eiv && ! defined key_trcdmp 63 INTEGER, PARAMETER :: jptrc_xei = 8 !: x- horiz. EIV advection 64 INTEGER, PARAMETER :: jptrc_yei = 9 !: y- horiz. EIV advection 65 INTEGER, PARAMETER :: jptrc_zei = 10 !: z- vert. EIV advection 66 INTEGER, PARAMETER :: jpdiatrc = 10 !: trends: 3*(advection + diffusion + eiv ) + sbc 67 #endif 68 #if ! defined key_trcldf_eiv && defined key_trcdmp 69 INTEGER, PARAMETER :: jptrc_dmp = 8 !: damping 70 INTEGER, PARAMETER :: jpdiatrc = 8 !: trends: 3*(advection + diffusion ) + sbc + damping 71 #endif 56 72 #endif 57 73 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/trcdia.F90
r1715 r1970 25 25 USE trc 26 26 USE trp_trc 27 USE par_trc 27 28 USE trdmld_trc_oce, ONLY : luttrd 28 29 USE dianam ! build name of file (routine) … … 41 42 INTEGER :: ndimt50 !: number of ocean points in index array 42 43 INTEGER :: ndimt51 !: number of ocean points in index array 43 REAL(wp) :: xjulian !: ???? not DOCTOR !44 REAL(wp) :: zjulian !: ???? not DOCTOR ! 44 45 INTEGER , DIMENSION (jpij*jpk) :: ndext50 !: integer arrays for ocean 3D index 45 46 INTEGER , DIMENSION (jpij) :: ndext51 !: integer arrays for ocean surface index … … 157 158 158 159 ! Compute julian date from starting date of the run 159 CALL ymds2ju( nyear, nmonth, nday, rdt, xjulian )160 xjulian = xjulian - adatrj ! set calendar origin to the beginning of the experiment160 CALL ymds2ju( nyear, nmonth, nday, rdt, zjulian ) 161 zjulian = zjulian - adatrj ! set calendar origin to the beginning of the experiment 161 162 IF(lwp)WRITE(numout,*)' ' 162 163 IF(lwp)WRITE(numout,*)' Date 0 used :', nittrc000 & 163 164 & ,' YEAR ', nyear, ' MONTH ', nmonth, ' DAY ', nday & 164 & ,'Julian day : ', xjulian165 & ,'Julian day : ', zjulian 165 166 166 167 IF(lwp) WRITE(numout,*) ' indexes of zoom = ', iimi, iima, ijmi, ijma, & … … 171 172 IF(lwp) THEN 172 173 CALL dia_nam( clhstnam, nwritetrc,' ' ) 173 CALL ctl _opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )174 CALL ctlopn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', 1, numout, lwp, narea ) 174 175 WRITE(inum,*) clhstnam 175 176 CLOSE(inum) … … 184 185 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 185 186 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 186 & nittrc000-ndttrc, xjulian, zdt, nhorit5, nit5 , domain_id=nidom)187 & nittrc000-ndttrc, zjulian, zdt, nhorit5, nit5 , domain_id=nidom) 187 188 188 189 ! Vertical grid for tracer : gdept … … 258 259 CHARACTER (len=80) :: cltral 259 260 CHARACTER (len=10) :: csuff 260 INTEGER :: jn, jl 261 INTEGER :: jn, jl, ikn 261 262 INTEGER :: iimi, iima, ijmi, ijma, ipk, it, itmod 262 263 REAL(wp) :: zsto, zout, zdt … … 313 314 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 314 315 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 315 & nittrc000-ndttrc, xjulian, zdt, nhorit6(jn), &316 & nittrc000-ndttrc, zjulian, zdt, nhorit6(jn), & 316 317 & nit6(jn) , domain_id=nidom ) 317 318 … … 322 323 323 324 ! Declare all the output fields as NETCDF variables 324 325 ! trends for tracer concentrations326 325 DO jn = 1, jptra 327 326 IF( luttrd(jn) ) THEN 328 327 DO jl = 1, jpdiatrc 329 IF( jl == 1) THEN328 IF( jl == jptrc_xad ) THEN 330 329 ! short and long title for x advection for tracer 331 330 WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 332 WRITE (cltral,'("X advective trend for ",58a)') & 333 & ctrcnl(jn)(1:58) 334 END IF 335 IF( jl == 2 ) THEN 331 WRITE (cltral,'("X advective trend for ",58a)') ctrcnl(jn)(1:58) 332 END IF 333 IF( jl == jptrc_yad ) THEN 336 334 ! short and long title for y advection for tracer 337 335 WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 338 WRITE (cltral,'("Y advective trend for ",58a)') & 339 & ctrcnl(jn)(1:58) 340 END IF 341 IF( jl == 3 ) THEN 336 WRITE (cltral,'("Y advective trend for ",58a)') ctrcnl(jn)(1:58) 337 END IF 338 IF( jl == jptrc_zad ) THEN 342 339 ! short and long title for Z advection for tracer 343 340 WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 344 WRITE (cltral,'("Z advective trend for ",58a)') & 345 & ctrcnl(jn)(1:58) 346 END IF 347 IF( jl == 4 ) THEN 341 WRITE (cltral,'("Z advective trend for ",58a)') ctrcnl(jn)(1:58) 342 END IF 343 IF( jl == jptrc_xdf ) THEN 348 344 ! short and long title for X diffusion for tracer 349 345 WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 350 WRITE (cltral,'("X diffusion trend for ",58a)') & 351 & ctrcnl(jn)(1:58) 352 END IF 353 IF( jl == 5 ) THEN 346 WRITE (cltral,'("X diffusion trend for ",58a)') ctrcnl(jn)(1:58) 347 END IF 348 IF( jl == jptrc_ydf ) THEN 354 349 ! short and long title for Y diffusion for tracer 355 350 WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 356 WRITE (cltral,'("Y diffusion trend for ",58a)') & 357 & ctrcnl(jn)(1:58) 358 END IF 359 IF( jl == 6 ) THEN 351 WRITE (cltral,'("Y diffusion trend for ",58a)') ctrcnl(jn)(1:58) 352 END IF 353 IF( jl == jptrc_zdf ) THEN 360 354 ! short and long title for Z diffusion for tracer 361 355 WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 362 WRITE (cltral,'("Z diffusion trend for ",58a)') & 363 & ctrcnl(jn)(1:58) 356 WRITE (cltral,'("Z diffusion trend for ",58a)') ctrcnl(jn)(1:58) 364 357 END IF 365 358 # if defined key_trcldf_eiv 366 IF( jl == 7) THEN359 IF( jl == jptrc_xei ) THEN 367 360 ! short and long title for x gent velocity for tracer 368 361 WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 369 WRITE (cltral,'("X gent velocity trend for ",53a)') & 370 & ctrcnl(jn)(1:53) 371 END IF 372 IF( jl == 8 ) THEN 362 WRITE (cltral,'("X gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 363 END IF 364 IF( jl == jptrc_yei ) THEN 373 365 ! short and long title for y gent velocity for tracer 374 366 WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 375 WRITE (cltral,'("Y gent velocity trend for ",53a)') & 376 & ctrcnl(jn)(1:53) 377 END IF 378 IF( jl == 9 ) THEN 367 WRITE (cltral,'("Y gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 368 END IF 369 IF( jl == jptrc_zei ) THEN 379 370 ! short and long title for Z gent velocity for tracer 380 371 WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 381 WRITE (cltral,'("Z gent velocity trend for ",53a)') & 382 & ctrcnl(jn)(1:53) 372 WRITE (cltral,'("Z gent velocity trend for ",53a)') ctrcnl(jn)(1:53) 383 373 END IF 384 374 # endif 385 375 # if defined key_trcdmp 386 IF( jl == jp diatrc - 1) THEN376 IF( jl == jptrc_dmp ) THEN 387 377 ! last trends for tracer damping : short and long title 388 378 WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 389 WRITE (cltral,'("Tracer damping trend for ",55a)') & 390 & ctrcnl(jn)(1:55) 391 END IF 392 # endif 393 IF( jl == jpdiatrc ) THEN 379 WRITE (cltral,'("Tracer damping trend for ",55a)') ctrcnl(jn)(1:55) 380 END IF 381 # endif 382 IF( jl == jptrc_sbc ) THEN 394 383 ! last trends for tracer damping : short and long title 395 384 WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 396 WRITE (cltral,'("Surface boundary flux ",58a)') &397 & ctrcnl(jn)(1:58)398 END IF399 385 WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 386 END IF 387 WRITE (cltral,'("Surface boundary flux ",58a)') ctrcnl(jn)(1:55) 388 END IF 400 389 CALL FLUSH( numout ) 401 390 cltrau = ctrcun(jn) ! UNIT for tracer /trends … … 406 395 END IF 407 396 END DO 408 409 397 ! CLOSE netcdf Files 410 398 DO jn = 1, jptra … … 432 420 DO jn = 1, jptra 433 421 IF( luttrd(jn) ) THEN 422 ikn = ikeep(jn) 434 423 DO jl = 1, jpdiatrc 435 ! short titles 436 IF( jl == 1) WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) ! x advection for tracer437 IF( jl == 2) WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) ! z advection for tracer438 IF( jl == 3) WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) ! z advection for tracer439 IF( jl == 4) WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) ! x diffusion for tracer440 IF( jl == 5) WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) ! y diffusion for tracer441 IF( jl == 6) WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) ! z diffusion for tracer424 ! short titles 425 IF( jl == jptrc_xad) WRITE (cltra,'("XAD_",16a)') ctrcnm(jn) 426 IF( jl == jptrc_yad) WRITE (cltra,'("YAD_",16a)') ctrcnm(jn) 427 IF( jl == jptrc_zad) WRITE (cltra,'("ZAD_",16a)') ctrcnm(jn) 428 IF( jl == jptrc_xdf) WRITE (cltra,'("XDF_",16a)') ctrcnm(jn) 429 IF( jl == jptrc_ydf) WRITE (cltra,'("YDF_",16a)') ctrcnm(jn) 430 IF( jl == jptrc_zdf) WRITE (cltra,'("ZDF_",16a)') ctrcnm(jn) 442 431 # if defined key_trcldf_eiv 443 IF( jl == 7) WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) ! x gent velocity for tracer444 IF( jl == 8) WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) ! y gent velocity for tracer445 IF( jl == 9) WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) ! z gent velocity for tracer432 IF( jl == jptrc_xei) WRITE (cltra,'("XGV_",16a)') ctrcnm(jn) 433 IF( jl == jptrc_yei) WRITE (cltra,'("YGV_",16a)') ctrcnm(jn) 434 IF( jl == jptrc_zei) WRITE (cltra,'("ZGV_",16a)') ctrcnm(jn) 446 435 # endif 447 436 # if defined key_trcdmp 448 IF( jl == jp diatrc - 1 ) WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) ! damping449 # endif 450 IF( jl == jp diatrc ) WRITE (cltra,'("SBC_",a)') ctrcnm(jn) ! surface boundary conditions437 IF( jl == jptrc_dmp ) WRITE (cltra,'("TDM_",16a)') ctrcnm(jn) 438 # endif 439 IF( jl == jptrc_sbc ) WRITE (cltra,'("SBC_",16a)') ctrcnm(jn) 451 440 ! 452 CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ik eep(jn),jl),ndimt50, ndext50)441 CALL histwrite(nit6(jn), cltra, it, trtrd(:,:,:,ikn,jl),ndimt50, ndext50) 453 442 END DO 454 443 END IF … … 552 541 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 553 542 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 554 & nittrc000-ndttrc, xjulian, zdt, nhoritd, nitd , domain_id=nidom )543 & nittrc000-ndttrc, zjulian, zdt, nhoritd, nitd , domain_id=nidom ) 555 544 556 545 ! Vertical grid for 2d and 3d arrays … … 700 689 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & 701 690 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 702 & nittrc000-ndttrc, xjulian, zdt, nhoritb, nitb , domain_id=nidom )691 & nittrc000-ndttrc, zjulian, zdt, nhoritb, nitb , domain_id=nidom ) 703 692 ! Vertical grid for biological trends 704 693 CALL histvert(nitb, 'deptht', 'Vertical T levels', 'm', ipk, gdept_0, ndepitb) -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/trcini.F90
r1745 r1970 122 122 trb(:,:,:,:) = trn(:,:,:,:) 123 123 ELSE 124 ! 124 125 CALL trc_rst_read ! restart from a file 125 #if defined key_off_tra 126 CALL day_init ! calendar 127 #endif 126 ! 128 127 ENDIF 129 128 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/trcrst.F90
r1953 r1970 33 33 USE trcrst_c14b ! C14 bomb restart 34 34 USE trcrst_my_trc ! MY_TRC restart 35 35 #if defined key_off_tra 36 USE daymod 37 #endif 36 38 IMPLICIT NONE 37 39 PRIVATE … … 277 279 WRITE(numout,*) 278 280 ENDIF 281 ! 282 CALL day_init ! compute calendar 283 ! 279 284 #endif 280 285 -
branches/DEV_r1784_mid_year_merge_2010/NEMO/TOP_SRC/trcwri.F90
r1656 r1970 1 1 MODULE trcwri 2 !!====================================================================== 2 !!=================================================================================== 3 3 !! *** MODULE trcwri *** 4 !! TOP : Output of passive tracers 5 !!====================================================================== 6 !! 1.0 !7 !! ! 20 09-05 (C. Ethe )4 !! TOP : Output of passive tracers 5 !!==================================================================================== 6 !! History : 1.0 ! 2009-05 (C. Ethe) Original code 7 !! ! 2010-03 (C. Ethe, R. Seferian ) Add the tracer transport trends 8 8 !!---------------------------------------------------------------------- 9 9 #if defined key_top && defined key_iomput … … 11 11 !! 'key_top' && 'key_iomput' TOP models 12 12 !!---------------------------------------------------------------------- 13 !! trc_wri : outputs of concentration fields 13 !! trc_wri_trc : outputs of concentration fields 14 !! trc_wri_trd : outputs of transport trends 14 15 !!---------------------------------------------------------------------- 16 USE dom_oce ! ocean space and time domain variables 17 USE oce_trc 18 USE trp_trc 15 19 USE trc 20 USE trdmld_trc_oce, ONLY : luttrd 16 21 USE iom 17 22 #if defined key_off_tra … … 35 40 CONTAINS 36 41 37 SUBROUTINE trc_wri( kt ) 42 SUBROUTINE trc_wri( kt ) 38 43 !!--------------------------------------------------------------------- 39 44 !! *** ROUTINE trc_wri *** 45 !! 46 !! ** Purpose : output passive tracers fields and dynamical trends 47 !!--------------------------------------------------------------------- 48 INTEGER, INTENT( in ) :: kt 49 !!--------------------------------------------------------------------- 50 51 ! 52 CALL iom_setkt ( kt + ndttrc - 1 ) ! set the passive tracer time step 53 CALL trc_wri_trc( kt ) ! outputs for tracer concentration 54 CALL trc_wri_trd( kt ) ! outputs for dynamical trends 55 CALL iom_setkt ( kt ) ! set the model time step 56 ! 57 END SUBROUTINE trc_wri 58 59 SUBROUTINE trc_wri_trc( kt ) 60 !!--------------------------------------------------------------------- 61 !! *** ROUTINE trc_wri_trc *** 40 62 !! 41 63 !! ** Purpose : output passive tracers fields … … 43 65 INTEGER, INTENT( in ) :: kt ! ocean time-step 44 66 INTEGER :: jn 45 CHARACTER (len=20) :: cltra 67 CHARACTER (len=20) :: cltra, cltras 46 68 #if defined key_off_tra 47 69 CHARACTER (len=40) :: clhstnam 48 70 INTEGER :: inum = 11 ! temporary logical unit 49 71 #endif 50 51 72 !!--------------------------------------------------------------------- 52 73 53 ! Initialisation54 ! --------------55 56 CALL iom_setkt( kt + ndttrc - 1 ) ! set the passive tracer time step57 58 74 #if defined key_off_tra 59 75 IF( kt == nittrc000 ) THEN … … 67 83 ENDIF 68 84 #endif 69 70 71 85 ! write the tracer concentrations in the file 72 86 ! --------------------------------------- … … 76 90 END DO 77 91 ! 78 CALL iom_setkt( kt ) ! set the model time step92 END SUBROUTINE trc_wri_trc 79 93 94 # if defined key_trc_diatrd 95 96 SUBROUTINE trc_wri_trd( kt ) 97 !!---------------------------------------------------------------------- 98 !! *** ROUTINE trc_wri_trd *** 99 !! 100 !! ** Purpose : output of passive tracer : advection-diffusion trends 101 !! 102 !!---------------------------------------------------------------------- 103 INTEGER, INTENT( in ) :: kt ! ocean time-step 104 !! 105 CHARACTER (len=3) :: cltra 106 INTEGER :: jn, jl, ikn 107 !!---------------------------------------------------------------------- 108 109 DO jn = 1, jptra 110 IF( luttrd(jn) ) THEN 111 ikn = ikeep(jn) 112 DO jl = 1, jpdiatrc 113 IF( jl == jptrc_xad ) WRITE (cltra,"(3a)") 'XAD' ! x advection for tracer 114 IF( jl == jptrc_yad ) WRITE (cltra,"(3a)") 'YAD' ! y advection for tracer 115 IF( jl == jptrc_zad ) WRITE (cltra,"(3a)") 'ZAD' ! z advection for tracer 116 IF( jl == jptrc_xdf ) WRITE (cltra,"(3a)") 'XDF' ! x diffusion for tracer 117 IF( jl == jptrc_ydf ) WRITE (cltra,"(3a)") 'YDF' ! y diffusion for tracer 118 IF( jl == jptrc_zdf ) WRITE (cltra,"(3a)") 'ZDF' ! z diffusion for tracer 119 # if defined key_trcldf_eiv 120 IF( jl == jptrc_xei ) WRITE (cltra,"(3a)") 'XGV' ! x gent velocity for tracer 121 IF( jl == jptrc_yei ) WRITE (cltra,"(3a)") 'YGV' ! y gent velocity for tracer 122 IF( jl == jptrc_zei ) WRITE (cltra,"(3a)") 'ZGV' ! z gent velocity for tracer 123 # endif 124 # if defined key_trcdmp 125 IF( jl == jptrc_dmp ) WRITE (cltra,"(3a)") 'DMP' ! damping 126 # endif 127 IF( jl == jptrc_sbc ) WRITE (cltra,"(3a)") 'SBC' ! surface boundary conditions 128 ! write the trends 129 CALL iom_put( cltra, trtrd(:,:,:,ikn,jl) ) 130 END DO 131 END IF 132 END DO 80 133 ! 81 END SUBROUTINE trc_wri 134 END SUBROUTINE trc_wri_trd 82 135 136 # else 137 SUBROUTINE trc_wri_trd( kt ) ! Dummy routine 138 INTEGER, INTENT ( in ) :: kt 139 END SUBROUTINE trc_wri_trd 140 #endif 83 141 #else 84 142 !!---------------------------------------------------------------------- … … 90 148 INTEGER, INTENT(in) :: kt 91 149 END SUBROUTINE trc_wri 92 93 150 #endif 94 151
Note: See TracChangeset
for help on using the changeset viewer.