Changeset 7284
- Timestamp:
- 2016-11-21T13:29:00+01:00 (7 years ago)
- Location:
- branches/UKMO/dev_r5518_pcbias_ipc/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_pcbias_ipc/NEMOGCM/NEMO/OPA_SRC/ASM/bias.F90
r7201 r7284 595 595 596 596 ztscale = 0.1_wp 597 zwgt = 1.0_wp597 zwgt = 0.8_wp 598 598 599 599 IF ( ln_bias_asm ) THEN … … 610 610 611 611 zdecay = (1-ztscale)**(1/real(ztsday)) ! used in ipc 612 zfrac1 = max(0.0_wp, zdecay**real(kt)) ! used in ipc 612 zfrac1 = zdecay**real(kt) ! used in ipc 613 IF ( zfrac1 <= 0.0 ) zfrac1 = 0.0_wp 613 614 614 615 … … 627 628 WRITE(numout,* ) "proportion of historical pcbias applied ",t_asm_mem**(real(kt)/ztsday) 628 629 ENDIF 629 630 631 630 632 DO jk = 1, jpkm1 633 631 634 tbias(:,:,jk) = tbias(:,:,jk) + & 632 635 & ( t_asm_mem**(real(kt)/ztsday) * tbias_asm(:,:,jk) + & … … 646 649 IF (ln_incpc) THEN 647 650 651 652 IF (lwp) THEN 653 WRITE(numout,*) 'tra_bias : bias weights' 654 WRITE(numout,*) '~~~~~~~~~~~~' 655 WRITE(numout,* ) "IPC - proportion of increment applied in pcbias ",ztfrac 656 WRITE(numout,* ) "IPC - proportion of historical pcbias applied ",zfrac1 657 ENDIF 658 648 659 DO jk = 1, jpkm1 649 tbias_i(:,:,jk) = ( t_bkginc(:,:,jk) * zwgt * ztfrac * (1.0 - fbcoef_stscale(:,:)) ) & 650 & - ( tbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 651 sbias_i(:,:,jk) = ( s_bkginc(:,:,jk) * zwgt * ztfrac * (1.0 - fbcoef_stscale(:,:)) ) & 652 & - ( sbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 660 661 tbias_i(:,:,jk) = ( t_bkginc(:,:,jk) * tmask(:,:,jk)* zwgt * ztfrac * (1.0 - fbcoef_stscale(:,:)) ) & 662 & + ( tbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 663 sbias_i(:,:,jk) = ( s_bkginc(:,:,jk) * tmask(:,:,jk)* zwgt * ztfrac * (1.0 - fbcoef_stscale(:,:)) ) & 664 & + ( sbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 665 653 666 ENDDO 654 667 668 ENDIF 669 670 IF ( .not.ln_bsyncro ) THEN 671 655 672 IF ( kt == nn_bias_itwrt ) THEN 656 DO jk = 1, jpk 657 tbias_asm_stscale_out(:,:,jk) = ( t_bkginc(:,:,jk) * zwgt * ztfrac ) + ( tbias_asm_stscale(:,:,jk) * zfrac1 ) 658 sbias_asm_stscale_out(:,:,jk) = ( s_bkginc(:,:,jk) * zwgt * ztfrac ) + ( sbias_asm_stscale(:,:,jk) * zfrac1 ) 659 ENDDO 660 ENDIF 661 ENDIF 662 663 IF ( .not.ln_bsyncro ) THEN 664 IF ( kt == nn_bias_itwrt ) THEN 673 665 674 DO jk = 1, jpkm1 666 675 tbias_asm_out(:,:,jk) = t_asm_mem**(real(kt)/ztsday) * tbias_asm(:,:,jk) + & … … 669 678 & ztfrac * t_asm_upd * s_bkginc(:,:,jk) * tmask(:,:,jk) 670 679 END DO 680 681 IF ( ln_incpc) THEN 682 DO jk = 1, jpkm1 683 tbias_asm_stscale_out(:,:,jk) = ( t_bkginc(:,:,jk) * tmask(:,:,jk) * zwgt * ztfrac ) + ( tbias_asm_stscale(:,:,jk) * zfrac1 ) 684 sbias_asm_stscale_out(:,:,jk) = ( s_bkginc(:,:,jk) * tmask(:,:,jk) * zwgt * ztfrac ) + ( sbias_asm_stscale(:,:,jk) * zfrac1 ) 685 ENDDO 686 ENDIF 687 671 688 ENDIF 689 672 690 ENDIF 673 691 … … 681 699 END DO 682 700 701 IF (ln_incpc) THEN 702 DO jk = 1, jpkm1 703 tbias_asm_stscale(:,:,jk) = ( t_bkginc(:,:,jk) * tmask(:,:,jk) * zwgt * ztfrac ) + ( tbias_asm_stscale(:,:,jk) * zfrac1 ) 704 sbias_asm_stscale(:,:,jk) = ( s_bkginc(:,:,jk) * tmask(:,:,jk) * zwgt * ztfrac ) + ( sbias_asm_stscale(:,:,jk) * zfrac1 ) 705 ENDDO 706 ENDIF 683 707 684 708 ENDIF … … 704 728 IF (ln_incpc) THEN 705 729 706 zfrac = max(0.0_wp, zdecay**real(kt-nitiaufin) ) 707 730 zfrac = zdecay**real(kt-nitiaufin) 731 IF ( zfrac <= 0.0 ) zfrac = 0.0_wp 732 733 708 734 DO jk = 1, jpkm1 709 tbias_i(:,:,jk) = ( t_bkginc(:,:,jk) * zwgt * zfrac * (1.0 - fbcoef_stscale(:,:)) ) & 710 & - ( tbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 711 sbias_i(:,:,jk) = ( s_bkginc(:,:,jk) * zwgt * zfrac * (1.0 - fbcoef_stscale(:,:)) ) & 712 & - ( sbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 735 tbias_i(:,:,jk) = ( tbias_asm_stscale(:,:,jk) * zfrac * (1.0 - fbcoef_stscale(:,:) ) 736 sbias_i(:,:,jk) = ( sbias_asm_stscale(:,:,jk) * zfrac * (1.0 - fbcoef_stscale(:,:) ) 713 737 ENDDO 714 738 715 IF ( kt == nn_bias_itwrt ) THEN 716 DO jk = 1, jpk 717 tbias_asm_stscale_out(:,:,jk) = ( t_bkginc(:,:,jk) * zwgt * zfrac ) + ( tbias_asm_stscale(:,:,jk) * zfrac1 ) 718 sbias_asm_stscale_out(:,:,jk) = ( s_bkginc(:,:,jk) * zwgt * zfrac ) + ( sbias_asm_stscale(:,:,jk) * zfrac1 ) 719 ENDDO 720 ENDIF 739 IF (lwp) THEN 740 WRITE(numout,*) 'tra_bias : bias weights' 741 WRITE(numout,*) '~~~~~~~~~~~~' 742 WRITE(numout,* ) "IPC - proportion of increments + historical pcbias applied ",zfrac 743 ENDIF 721 744 722 745 ENDIF … … 733 756 tbias_asm_out(:,:,jk) = ztfrac * tbias_asm(:,:,jk) 734 757 sbias_asm_out(:,:,jk) = ztfrac * sbias_asm(:,:,jk) 735 END DO 758 END DO 759 760 IF ( ln_incpc ) THEN 761 DO jk = 1, jpkm1 762 tbias_asm_stscale_out(:,:,jk) = tbias_asm_stscale(:,:,jk) * zfrac 763 sbias_asm_stscale_out(:,:,jk) = sbias_asm_stscale(:,:,jk) * zfrac 764 ENDDO 765 ENDIF 766 736 767 ENDIF 768 737 769 ENDIF 738 770 … … 764 796 765 797 DO jk = 1, jpkm1 766 tbias_i(:,:,jk) = -( tbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) )767 sbias_i(:,:,jk) = -( sbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) )798 tbias_i(:,:,jk) = ( tbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 799 sbias_i(:,:,jk) = ( sbias_asm_stscale(:,:,jk) * zfrac1 * (1.0 - fbcoef_stscale(:,:)) ) 768 800 ENDDO 769 801 770 802 IF ( kt == nn_bias_itwrt ) THEN 771 DO jk = 1, jpk 803 DO jk = 1, jpkm1 772 804 tbias_asm_stscale_out(:,:,jk) = ( tbias_asm_stscale(:,:,jk) * zfrac1 ) 773 805 sbias_asm_stscale_out(:,:,jk) = ( sbias_asm_stscale(:,:,jk) * zfrac1 ) -
branches/UKMO/dev_r5518_pcbias_ipc/NEMOGCM/NEMO/OPA_SRC/step.F90
r6411 r7284 33 33 USE step_oce ! time stepping definition modules 34 34 USE iom 35 36 35 IMPLICIT NONE 37 36 PRIVATE
Note: See TracChangeset
for help on using the changeset viewer.