- Timestamp:
- 2014-03-26T11:24:30+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/OPATAM_SRC/step_tam.F90
r3658 r4589 152 152 ! apply tracer assimilation increment ... not needed in tangent 153 153 CALL tra_sbc_tan( kstp ) ! surface boundary condition 154 IF( ln_traqsr ) CALL tra_qsr_tan( kstp ) ! penetrative solar radiation qsr154 !IF( ln_traqsr ) CALL tra_qsr_tan( kstp ) ! penetrative solar radiation qsr 155 155 IF( ln_trabbc ) CALL tra_bbc_tan( kstp ) ! bottom heat flux 156 156 IF( lk_trabbl ) CALL tra_bbl_tan( kstp ) ! diffusive bottom boundary layer scheme … … 279 279 280 280 IF( ln_dynhpg_imp ) THEN ! semi-implicit hpg 281 IF( ln_zps ) CALL zps_hde_adj( kstp, jpts, tsa, gtsu, gtsv,tsa_ad, & ! Partial steps: time filtered hor. gradient281 IF( ln_zps ) CALL zps_hde_adj( kstp, jpts, tsa, tsa_ad, & ! Partial steps: time filtered hor. gradient 282 282 & rhd_ad, gtsu_ad, gru_ad, gtsv_ad, & ! of t, s, rd at the bottom ocean level 283 283 & grv_ad ) … … 286 286 ELSE ! centered hpg (default case) 287 287 CALL tra_nxt_adj( kstp ) ! tracer fields at next time step 288 IF( ln_zps ) CALL zps_hde_adj( kstp, jpts, tsn, gtsu, gtsv,tsn_ad, & ! Partial steps: time filtered hor. gradient288 IF( ln_zps ) CALL zps_hde_adj( kstp, jpts, tsn, tsn_ad, & ! Partial steps: time filtered hor. gradient 289 289 & rhd_ad, gtsu_ad, gru_ad, gtsv_ad, & ! of t, s, rd at the bottom ocean level 290 290 & grv_ad ) … … 303 303 IF( ln_trabbc ) CALL tra_bbc_adj( kstp ) ! bottom heat flux 304 304 305 IF( ln_traqsr ) CALL tra_qsr_adj( kstp ) ! penetrative solar radiation qsr305 !IF( ln_traqsr ) CALL tra_qsr_adj( kstp ) ! penetrative solar radiation qsr 306 306 307 307 CALL tra_sbc_adj( kstp ) ! surface boundary condition … … 499 499 500 500 501 !DO jpert = 1, jpertmax502 jpert = 6501 DO jpert = jpertmax, 1, -1 502 503 503 !-------------------------------------------------------------------- 504 504 ! Reset the tangent and adjoint variables … … 580 580 ENDIF 581 581 582 IF (jpert>0) THEN 582 CALL oce_tam_init( 1 ) ! allocate/initialize tl variables 583 CALL sbc_oce_tam_init( 1 ) 584 CALL sol_oce_tam_init( 1 ) 585 #if defined key_tradmp 586 CALL trc_oce_tam_init( 1 ) 587 strdmp_tl = 0.0_wp 588 ttrdmp_tl = 0.0_wp 589 #endif 583 590 584 591 !CALL oce_tam_init( 1 ) ! allocate/initialize tl variables … … 591 598 592 599 emp_tl(:,:) = 0.0_wp 593 #if defined key_tradmp594 strdmp_tl = 0.0_wp595 ttrdmp_tl = 0.0_wp596 #endif597 600 a_fwb_tl = 0.0_wp 598 601 … … 639 642 & * e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) & 640 643 & * umask(ji,jj,jk) * wesp_u 641 END DO642 END DO643 END DO644 645 DO jk = 1, jpk646 DO jj = nldj, nlej647 DO ji = nldi, nlei648 644 zvn_adin(ji,jj,jk) = zvn_tlout(ji,jj,jk) & 649 645 & * e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) & 650 646 & * vmask(ji,jj,jk) * wesp_u 651 END DO652 END DO653 END DO654 655 DO jk = 1, jpk656 DO jj = nldj, nlej657 DO ji = nldi, nlei658 647 ztn_adin(ji,jj,jk) = ztn_tlout(ji,jj,jk) & 659 648 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) & 660 649 & * tmask(ji,jj,jk) * wesp_t(jk) 661 END DO662 END DO663 END DO664 665 DO jk = 1, jpk666 DO jj = nldj, nlej667 DO ji = nldi, nlei668 650 zsn_adin(ji,jj,jk) = zsn_tlout(ji,jj,jk) & 669 651 & * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) & … … 696 678 ! Call the adjoint routine: dx^* = L^T dy^* 697 679 !-------------------------------------------------------------------- 698 !CALL oce_tam_init( 2 ) ! allocate/initialize adj variables 699 !CALL sbc_oce_tam_init( 2 ) 700 !CALL sol_oce_tam_init( 2 ) 701 !CALL trc_oce_tam_init( 2 ) 702 680 CALL oce_tam_init( 2 ) ! allocate/initialize adj variables 681 CALL sbc_oce_tam_init( 2 ) 682 CALL sol_oce_tam_init( 2 ) 683 #if defined key_tradmp 684 CALL trc_oce_tam_init( 2 ) 685 strdmp_ad = 0.0_wp 686 ttrdmp_ad = 0.0_wp 687 #endif 703 688 qrp_ad = 0.0_wp 704 689 erp_ad = 0.0_wp 705 690 emp_ad(:,:) = 0.0_wp 706 #if defined key_tradmp 707 strdmp_ad = 0.0_wp 708 ttrdmp_ad = 0.0_wp 709 #endif 691 710 692 a_fwb_ad = 0.0_wp 711 693 … … 720 702 !CALL sol_oce_tam_deallocate( 1 ) 721 703 !CALL trc_oce_tam_deallocate( 1 ) 704 istp = nitend 705 CALL trj_rea( istp, -1 ) 722 706 723 707 DO istp = nitend, nit000, -1 … … 762 746 END SELECT 763 747 CALL prntst_adj( cl_name, kumadt, zsp1, zsp2 ) 764 endif 765 !END DO 748 END DO 749 750 nitsor(:) = jp_it0adj ! restore nitsor to avoid non reproducible results with or without the tests 766 751 767 752 DEALLOCATE( &
Note: See TracChangeset
for help on using the changeset viewer.